PHP-скрипт не виконується на сервері Apache


54

Щойно я перевстановив Apache та PHP5, але коли я відвідую свій кореневий документ, він просто завантажує файл "завантажити". І коли я намагаюся documentroot /index.php, він просто завантажує файл PHP.

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

Відповіді:


103

Введення тексту:

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

Перезавантажте апаш:

sudo service apache2 restart

Було б краще використовувати, a2enmodніж копіювати файл вручну між доступними модами та модами. a2enmodстворює символьне посилання, і тому у вас буде лише одна копія конфігурації.
jkt123

@ jkt123 ти маєш рацію. дякую за пораду, я редагую свою відповідь.
girardengo

У моєму випадку написано "ПОМИЛКА: модуль php5 не існує!" він встановлений
Marian Klühspies

3
для Убунту 16,04 з php7 я виконав ці команди в порядку apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
MARLO

Для ubuntu 14.04: # a2query -m php7.0 php7.0 (увімкнено адміністратором сайту) Ще не виконується код php
Ashish Karpe

19

Ще однією поширеною причиною є те, що короткі теги php <?не увімкнено конфігурацією php.ini за замовчуванням, тому після оновлення чи перевстановлення це налаштування може бути вимкнено і від нього може залежати php-код. Спробуйте замінити <?на <?php.

( Кредит )


13

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

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

Ось libapache2-mod-phpметапакет, який встановлює libapache2-mod-php7.


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, окрім мене.

Після цього, звичайно, вам потрібно перезапустити апаш.


0

У моєму випадку було трохи інакше. Я пройшов модернізацію з Ubuntu 19.04 до 19.10. Під час оновлення він встановив php 7.3 (де вже було встановлено php 7.2). З двома версіями встановлено a2query -m php7.3 return Жоден модуль не відповідає php7.3 .

Я знайшов рішення, яке потрібно виконати з установки-php-7-3-на-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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.