我刚刚升级到 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
答案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-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
确实已安装),但这不是全部。:-)