PHP отображается в виде обычного текста после обновления до 18.04


8

Я только что обновился до Ubuntu 18.04. Теперь Apache выполняет php моего сайта как обычный текст php. Я уже пробовал: почему мои файлы PHP отображаются в виде простого текста? (на переполнение стека) и PHP 7 и апача отображает простой текст и не может быть перезапущен . Установленные пакеты php:

php              php7.2-cli       php7.2-fpm       php7.2-mbstring  php7.2-pgsql     php7.2-sqlite3   php7.2-zip       php-curl         php-igbinary     php-pgsql        php-xml
php7.2           php7.2-common    php7.2-gd        php7.2-mysql     php7.2-readline  php7.2-xml       php-bz2          php-fpm          php-mbstring     php-soap         php-xmlrpc
php7.2-bz2       php7.2-curl      php7.2-json      php7.2-opcache   php7.2-soap      php7.2-xmlrpc    php-common       php-gd           php-mysql        php-sqlite3      php-zip

Один из рассматриваемых веб-сайтов можно увидеть здесь .

Апач error.log:

[Thu Apr 26 16:02:12.740886 2018] [mpm_prefork:notice] [pid 6504] AH00169: caught SIGTERM, shutting down

[Thu Apr 26 16:02:13.001806 2018] [mpm_prefork:notice] [pid 7704] AH00163: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.0g configured -- resuming normal operations

[Thu Apr 26 16:02:13.001900 2018] [core:notice] [pid 7704] AH00094: Command line: '/usr/sbin/apache2'

И то access.log:

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

Вероятно, вам следует установить и включить нужный php-модуль Apache libapache2-mod-php7.2(и очистить старый).
pa4080

libapache2-mod-php7.2 уже самая новая версия. :(
Бенедикт Вутци

Может быть , вы должны включить его: sudo a2enmod php7.2.
pa4080

1
Модуль php7.2 уже включен. ;)
Бенедикт Вутци

1
Не могли бы вы написать ответ в качестве ответа, пожалуйста? Было бы полезно, если бы другие люди столкнулись с такой же ситуацией
Лили Бергонзат

Ответы:


23

Это то, что отсортировало мою установку

sudo apt install php7.2 php7.2-common php7.2-cli
sudo a2enmod php7.2

2
Спасибо, что включение модуля php7.2 сработало отлично, - похоже, были конфликты между несколькими версиями php
Agnius Vasiliauskas

1
Мне нужна была только вторая строка a2enmod. Как только это было включено, приложение появилось. Спасибо!
user1794918

4

На самом деле, в дополнение к командам в этом ответе , вам нужно

sudo apt install libapache2-mod-php

также. Каким-то образом это исчезло!


0

Похоже, это может быть связано с одновременной установкой и включением двух версий PHP после обновления. Ничто из вышеперечисленного не помогло мне, поэтому я удалил Apache, PHP 7.1 и PHP 7.2, переустановил Apache и PHP 7.2 и все работает.


0

Я столкнулся с этим при обновлении Ubuntu 16.04.6 LTS до 18.04 LTS с помощью do-release-upgradeинструмента. В моем случае помогло следующее:

sudo apt-get install php7.2 libapache2-mod-php

Это также добавлено libapache2-mod-php7.2. php7.2-commonи php7.2-cliбыли уже установлены, поэтому они были проигнорированы. sudo a2enmod php7.2был выполнен автоматически apt-get.

Кстати, вы можете диагностировать эту проблему, создав файл /var/www/html/phpinfo.phpсо следующим содержимым:

<?php phpinfo(); ?>

а затем указав в браузере URL-адрес http://your.server/phpinfo.php. Вы должны получить хорошую веб-страницу со всеми настройками PHP. Если вы получили <?php phpinfo(); ?>вместо этого текст, вам нужно установить пакеты, описанные выше.

Я упоминаю об этом, потому что сначала я просто запустил php -vкомандную строку, и он сказал мне, что PHP 7.2 был установлен. Что-то вроде истины (так как содержимое командной строки из пакета php7.2-cliдействительно было установлено), но это еще не все. :-)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.