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


    DocumentRoot /path/to/vhosts/folder1
    ServerName www.mydomain.com



    DocumentRoot /path/to/vhosts/folder2
    ServerName blog.mydomain.com


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
задан 05.05.2020, 20:26

5 ответов

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

0
ответ дан 05.05.2020, 20:27
  • 1
    Когда у Вас есть разумное количество машин и it' s довольно поздно вечером, это - определенно действительный ответ. – RobC_CTL 05.05.2020, 20:27
  • 2
    Действительный ответ действительно. У меня была проблема при манипулировании php5, php5-cli, php5-fpm, и php-этажерка. Apache просто отсутствовал право пакет. – Eduardo Baitello 05.05.2020, 20:28
  • 3
    Я едва думаю, что это можно назвать реальным ответом, но я предполагаю его, вид. – 4c74356b41 05.05.2020, 20:28

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


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

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

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

0
ответ дан 05.05.2020, 20:28

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

chmod -R u=rwX,go=rX my_publishing_directory

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

0
ответ дан 05.05.2020, 20:28

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

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

sudo service apache2 restart
0
ответ дан 05.05.2020, 20:29
  • 1
    Спасибо за именование этой библиотеки. Я знал, что должен был установить библиотеку для фиксации этого, но не знал имя. – SovietFrontier 05.05.2020, 20:29
  • 2
    libapache2-mod-php7.0 пакет не существует в основном репозитории Ubuntu. Только в 16.04 выпущен. Необходимо использовать libapache2-mod-php5 вместо этого. – MichaelTiefenbacher 05.05.2020, 20:29

Теги

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