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/.
Квантовий фізик

1
Можливий дублікат PHP-скрипту, не
виконаний

Відповіді:


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. Апач просто бракував потрібного пакету.
знаменитийГаркін

0

Я знайшов рішення тут . Виявляється, мені довелося включити деякі модулі ...


Взяте з цієї відповіді на переповнення стека користувачем1075581 :

Це нарешті поставило мене на правильний шлях:

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.