Я только что обновил до Ubuntu 18.04. Теперь апач служит 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 "-" "-"
Это - то, что отсортировало мою установку
sudo apt install php7.2 php7.2-common php7.2-cli
sudo a2enmod php7.2
На самом деле, в дополнение к командам в этом ответе, Вам нужно
sudo apt install libapache2-mod-php
также. Так или иначе это исчезло!
Похоже, что это могло бы быть связано с наличием 2 версий PHP, установленного и включенного одновременно после обновления. Ни одно из вышеупомянутого не работало на меня, таким образом, я удалил Apache, PHP 7.1 и PHP 7.2, переустановленный Apache и PHP 7.2, и вещи работают теперь.
Я столкнулся с этим при обновлении из 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
.
BTW, можно диагностировать эту проблему путем создания файла /var/www/html/phpinfo.php
со следующим содержанием:
<?php phpinfo(); ?>
и затем указывая на Ваш браузер на URL http://your.server/phpinfo.php
. Необходимо получить хорошую веб-страницу со всеми настройками PHP. Если Вы добираетесь <?php phpinfo(); ?>
текст вместо этого затем необходимо установить пакеты, описанные выше.
Я упоминаю это, потому что сначала я просто работал php -v
на командной строке и это сказало мне, что PHP 7.2 был установлен. Который является видом - истинных (как материал командной строки от пакета php7.2-cli
был действительно установлен), но это не целая история.:-)