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

Поэтому я настроил свой сервер, используя это руководство , и когда файл 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
15
задан 19 January 2014 в 20:09

5 ответов

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

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

sudo service apache2 restart
0
ответ дан 19 January 2014 в 20:09

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

0
ответ дан 19 January 2014 в 20:09

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


Взято из этого ответа о переполнении стека пользователем 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
ответ дан 19 January 2014 в 20:09

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

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

0
ответ дан 19 January 2014 в 20:09

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

chmod -R u=rwX,go=rX my_publishing_directory

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

0
ответ дан 19 January 2014 в 20:09

Другие вопросы по тегам:

Похожие вопросы: