Я только что переустановил Apache и PHP5, но когда я захожу в мой корень документа, он просто загружает файл «download». И когда я пытаюсь documentroot /index.php, он просто загружает файл PHP.
У меня установлен PHP, но Apache, похоже, не хочет его выполнять.
Люди предложили добавить строку «Load Module» в мой httpd.conf
, но у меня нет этого файла.
Ввод:
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.
Установить:
sudo apt-get install apache2 php7.x libapache2-mod-php7.x
Проверить:
a2query -m php7.x
Загрузить:
sudo a2enmod php7.x
Перезапустить apache:
sudo service apache2 restart
Другой распространенной причиной является то, что короткие теги php
не включены в конфигурации php.ini по умолчанию, поэтому после обновления или переустановки этот параметр может быть выключенным, и от этого может зависеть код PHP. Попробуйте заменить
на Php
.
( Кредит )
Ubuntu 16.04 переместился на PHP 7. Эта единственная команда выполнит работа для вас:
sudo apt-get install apache2 php libapache2-mod-php
Здесь libapache2-mod-php
- это мета-пакет, который устанавливает libapache2-mod-php7.
gir1.2-goa
(Gnome Учетная запись Онлайн)?
– dadexix86
15 October 2015 в 19:59
Откройте 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
Я столкнулся с той же проблемой, но моя конкретная проблема была уникальной. Я работал в каталоге пользователя (с использованием 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.
Мой случай был немного другим. Я обновился с 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
Для людей, которые нашли этот пост от Google почти на 6 лет в будущем (и позже!), Вы можете столкнуться с этой проблемой с Apache 2 и PHP 7, одновременно используя модуль UserDir
.
Другой возможной причиной этой проблемы может быть то, что вы пытаетесь запустить сценарий в «каталоге пользователя» из модуль UserDir
. По умолчанию выполнение сценариев PHP в пользовательских каталогах отключено. Вы столкнетесь с этой проблемой, если сценарий находится в каталоге public_html
в вашей домашней папке, и вы пытаетесь получить к нему доступ с http: // localhost / ~ your_username
.
Чтобы исправить это, откройте /etc/apache2/mods-enabled/php7.2.conf
. Вы должны прокомментировать или удалить блок тегов внизу, который гласит
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>