升级到 18.04 后 PHP 显示为纯文本

升级到 18.04 后 PHP 显示为纯文本

我刚刚升级到 Ubuntu 18.04。现在 apache 将我的网站的 php 作为纯文本 php 提供。我已经尝试过: 为什么我的 PHP 文件显示为纯文本?(Stack Overflow 上)PHP 7 和 apache 显示纯文本并且无法重新启动.已安装的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 "-" "-"

答案1

这就是我的安装过程

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

答案2

实际上,除了这个答案, 你需要

sudo apt install libapache2-mod-php

也一样。不知为何它消失了!

答案3

看起来这可能与升级后同时安装并启用了 2 个版本的 PHP 有关。以上两种方法对我来说都不起作用,所以我卸载了 Apache、PHP 7.1 和 PHP 7.2,重新安装了 Apache 和 PHP 7.2,现在一切正常。

答案4

我在使用该工具从 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-commonphp7.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确实已安装),但这不是全部。:-)

相关内容