PHP-скрипт не выполняется на сервере Apache

54

Я только что переустановил Apache и PHP5, но когда я захожу в мой корень документа, он просто загружает файл «download». И когда я пытаюсь использовать documentroot /index.php, он просто загружает файл PHP.

У меня установлен PHP, но Apache, похоже, не хочет его выполнять.
Люди предложили добавить строку «Загрузить модуль» в мой, httpd.confно у меня нет этого файла.

user2919631
источник

Ответы:

103

Typing:

sudo apt-get install apache2 php5 libapache2-mod-php5

установит все необходимое и запустит сервер apache с поддержкой PHP.

Чтобы убедиться, что модуль php загружен, введите:

a2query -m php5

если не включен, то загрузить с:

sudo a2enmod php5

и перезапустите apache:

sudo service apache2 restart

Обновление для php7.x (протестировано на Ubuntu 16.04, 16.10, 18.04, 18.10 )

Благодаря комментариям я обновляю ответ для php7.x.

Установка:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

Убедитесь, что:

a2query -m php7.x

Загрузить:

sudo a2enmod php7.x

Перезапустите Apache:

sudo service apache2 restart
Girardengo
источник
Было бы лучше использовать, a2enmodчем копировать файл вручную между модами и модами. a2enmodсоздает символическую ссылку, и поэтому у вас будет только одна копия конфигурации.
jkt123
@ jkt123 ты прав. спасибо за совет, я редактирую свой ответ.
Girardengo
В моем случае он говорит: «ОШИБКА: модуль php5 не существует!» это установлено
Marian Klühspies
3
Для Ubuntu 16.04 с php7 я выполнил эти команды в порядке apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
Марло
Для Ubuntu 14.04: # a2query -m php7.0 php7.0 (включено администратором сайта) Тем не менее php-код не выполняется
Ашиш Карпе
19

Другой распространенной причиной является то, что короткие теги php <?не включены в конфигурации php.ini по умолчанию, поэтому после обновления или переустановки этот параметр может быть отключен, и от него может зависеть код php. Попробуйте заменить <?на <?php.

( Кредит )

tufelkinder
источник
13

Ubuntu 16.04 перешел на PHP 7. Эта единственная команда сделает всю работу за вас:

sudo apt-get install apache2 php libapache2-mod-php

Вот libapache2-mod-phpмета-пакет, который устанавливает libapache2-mod-php7.

daltonfury42
источник
2

Открыть php.iniс помощью nanoтерминала:

sudo nano /etc/php/php5.6/apache2/php.ini

Затем измените:

short_open_tag = Off

в

short_open_tag = On

Затем сохраните и перезапустите apache2:

sudo systemctl restart apache2
Сатрио Прасохо
источник
1
Или исправьте сценарии PHP :-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
Николас Рауль
1

Я столкнулся с той же проблемой, но моя конкретная проблема была уникальной. Я работал в пользовательском каталоге (используя mod_userdir) - это значит, что вы заходите на мою веб-страницу с http://host.name.com/~username/example.php

По умолчанию это отключено в php * .conf в моей директории с поддержкой модов. Я должен был изменить это, чтобы закомментировать это:

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

Это было боль, чтобы выяснить ..

Ну, я сомневаюсь, что у кого-то была ЭТА конкретная проблема, но я решил добавить ее, потому что она была для меня непонятной, и МОЖЕТ, что кто-то делает то же самое. Полагаю, никто не использует ~ / user, кроме меня.

Вы должны перезагрузить Apache после этого, конечно.

Джимини Идиот
источник
0

Мой случай был немного другим. Я обновился с Ubuntu 19.04 до 19.10. При обновлении был установлен php 7.3 (где уже был установлен php 7.2). При 2 установленных версиях a2query -m php7.3 return Нет модуля, совпадающего с php7.3 .

Решение, которое я нашел, было от how-to-install-php-7-3-on-ubuntu .

Чтобы установить PHP 7.0 по умолчанию, запустите

update-alternatives --set php /usr/bin/php7.0

Чтобы установить PHP 7.2 по умолчанию, запустите

update-alternatives --set php /usr/bin/php7.2

Чтобы установить PHP 7.3 по умолчанию, запустите

update-alternatives --set php /usr/bin/php7.3

Прежде чем мы сможем настроить Apache для использования PHP 7.3, нам нужно отключить старую версию PHP 7.0, набрав

a2dismod php7.2

Теперь включите только что установленную версию PHP 7.3 с помощью следующей команды:

a2enmod php7.3

Перезапустите веб-сервер Apache, чтобы изменения вступили в силу:

sudo systemctl restart apache2
Адель Раза Азими
источник