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


8

我刚刚升级到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 "-" "-"

可能您应该安装并启用正确的Apache的php模块libapache2-mod-php7.2(并清除旧的php模块)。
pa4080 '18

libapache2-mod-php7.2已经是最新版本。:(
Benedikt Wutzi,

也许您应该启用它:sudo a2enmod php7.2
pa4080 '18

1
模块php7.2已启用。;)
Benedikt Wutzi 18-4-26的

1
那你能把答案写成答案吗?如果其他人偶然发现相同的情况,这将很有帮助
Lily Bergonzat

Answers:


23

这就是我的安装排序的原因

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

2
谢谢,对我来说,启用php7.2模块可以正常工作,-似乎多个版本的php之间存在冲突
Agnius Vasiliauskas 18/08/28

1
我只需要第二行a2enmod。启用后,应用程序启动。谢谢!
user1794918

4

实际上,除了此答案中的命令外,您还需要

sudo apt install libapache2-mod-php

也一样 不知何故它消失了!


0

看起来这可能与升级后同时安装并启用2个PHP版本有关。以上都不适合我,因此我卸载了Apache,PHP 7.1和PHP 7.2,重新安装了Apache和PHP 7.2,现在一切正常。


0

我在使用该do-release-upgrade工具从Ubuntu 16.04.6 LTS升级到18.04 LTS时遇到了这个问题。就我而言,以下帮助:

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确实安装了软件包中的命令行内容),但这还不是全部。:-)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.