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

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

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

66
задан 5 November 2018 в 17:48

7 ответов

Ввод:

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
119
ответ дан 5 November 2018 в 17:48

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

( Кредит )

19
ответ дан 5 November 2018 в 17:48

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

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

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

16
ответ дан 5 November 2018 в 17:48
  • 1
    I' m не эксперт по Gnome (я использую Единицу), но что относительно календаря? Сделал Вы удаляете учетную запись из " Account" Онлайн; прежде, чем удалить эволюцию и такой? Это могло бы быть вызвано непосредственно 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
1
ответ дан 5 November 2018 в 17:48
  • 1
    Я удалил эволюцию из своего каландра, и я отключил автоматическую дату & время. И на моем ' нет никаких учетных записей онлайн; Gnome Accounts' Онлайн; – lino 15 October 2015 в 20:04

Я столкнулся с той же проблемой, но моя конкретная проблема была уникальной. Я работал в каталоге пользователя (с использованием 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.

4
ответ дан 8 October 2019 в 00:20

Мой случай был немного другим. Я обновился с 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
1
ответ дан 22 November 2019 в 23:46

Для людей, которые нашли этот пост от 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>
1
ответ дан 5 January 2021 в 23:10

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

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