Apache не выполняет файлы PHP, но заставляет меня их скачивать


15

Поэтому я настраиваю свой сервер, используя это руководство, и когда файл test.php работает без проблем, когда я ввожу адрес, используя IP-адрес своего сервера как

http://1.2.3.4/test.php

Однако, если я использую виртуальные хосты, браузер просто предлагает загрузить файл, а не выполнить его. Итак, это:

http://blog.mydomain.com/test.php

предлагает скачать файл, а не выполнять скрипт.

Код, который я использую в /etc/apache2/apache2.conf для виртуальных хостов, выглядит следующим образом:

Include /etc/phpmyadmin/apache.conf
Include /etc/apache2/mods-available/php5.conf

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder1
    ServerName www.mydomain.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder2
    ServerName blog.mydomain.com
</VirtualHost>

NameVirtualHost *:80

Хотя я должен сказать, что при перезапуске сервера apache2 я получаю предупреждение:

[....] Restarting web server: apache2
[Sun Jan 19 13:33:40 2014] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting [Sun Jan 19 13:33:41 2014] [warn] NameVirtualHost *:80 has no VirtualHosts

Знаете ли вы, что это сервер LAMP?
Брайам

@ Braiam, честно говоря, я потерял между LAMP и Apache ... Я не знаю разницы ... однако, вы получили ответ на мой вопрос?
Квантовый физик

где я могу найти этот каталог? у меня не работает. пожалуйста помоги? Как перезагрузить Vhost Vie терминал?
Бог мира

@Godworld Какой каталог? Конфигурационные файлы Apache находятся в /etc/apache2/.
Квантовый физик

Ответы:


19

Я получил его для работы с линией:

sudo apt-get install libapache2-mod-php7.0

sudo service apache2 restart

Спасибо за наименование этой библиотеки. Я знал, что должен был установить библиотеку, чтобы исправить это, но не знал названия.
Рахул Прасад

libapache2-mod-php7.0Пакет не существует в главном репозитории Ubuntu. Только до 16.04 выпущен. Вы должны использовать libapache2-mod-php5вместо этого.
Dan

4

Иногда могут случиться еще худшие вещи ... Я просто забыл установить php


5
Я не думаю, что это можно назвать реальным ответом, но я полагаю, что это так.
Сет

3
Если у вас есть достаточное количество машин, и довольно поздно вечером, это, безусловно, правильный ответ.
Авио

1
Действительно правильный ответ. У меня была проблема с жонглированием php5, php5-cli, php5-fpm и php-whatnot. Апаче просто не хватало нужного пакета.
знаменитый Garkin

0

Я нашел решение здесь . Оказывается, мне пришлось включить некоторые модули ...


Взятые из этого ответа переполнением стека на user1075581 :

Это наконец поставило меня на правильный путь:

http://www.linuxquestions.org/questions/linux-server-73/php-not-working-on-one-vhost-but-works-on-all-others-851093/

Вот решение:

В <Directory>раздел я включил эти строки:

<IfModule sapi_apache2.c>
    php_admin_flag engine on
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>

Или отредактированную копию решения на моем сервере:

<Directory "/var/www/vhosts/A2/httpdocs">
    <IfModule sapi_apache2.c>
        php_admin_flag engine on
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine on
    </IfModule>

    (Other configuration parameters)

</Directory>

0

Я искал это в течение долгого времени, и я просто нашел решение, которое работает в моем случае. Я поместил свой файл ( processorder.php5) в каталог /var/wwwв стандартной установке Ubuntu. Я думал, что это место, которое посмотрел php. Но для HTML (или PHP-файлов, которые, вероятно, считаются одним и тем же), это выглядело в/var/www/html , то есть в htmlподкаталоге /var/www.

Когда я переместил свой файл в каталог, он работал. Я подозреваю, потому что я не думаю, что я видел это где-то задокументировано


0

проблемы с разрешениями также могут привести к этому странному поведению

chmod -R u=rwX,go=rX my_publishing_directory

избавит от проблем с разрешениями (644 для файлов и 755 для каталогов)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.