apache2未在Debian stretch上执行php脚本

apache2未在Debian stretch上执行php脚本,php,linux,apache,debian-stretch,Php,Linux,Apache,Debian Stretch,最近,我将我的Debian服务器从Jessie升级到Stretch(Debian9.5)。一切都进行得很顺利,只是当web浏览器请求时,php生成的网站没有执行。至于我得到的响应是php源代码而不是生成的html的实例。 如果我使用ssh连接到服务器上,并使用php index.php执行相同的脚本,我将获得生成的html,不会出现错误 php--version是PHP7.0.30-0+deb9u1(cli) apache2已启用模块php7.0 已卸载并清除php5 完整的phpinfo()在

最近,我将我的Debian服务器从Jessie升级到Stretch(Debian9.5)。一切都进行得很顺利,只是当web浏览器请求时,php生成的网站没有执行。至于我得到的响应是php源代码而不是生成的html的实例。 如果我使用ssh连接到服务器上,并使用
php index.php
执行相同的脚本,我将获得生成的html,不会出现错误

php--version是PHP7.0.30-0+deb9u1(cli)

apache2已启用模块
php7.0

已卸载并清除php5

完整的
phpinfo()在中提供

php错误日志没有显示任何错误

任何人都知道为什么会发生这种情况,以及如何解决?这可能与从mysql到mariadb的转换有关吗?

解决了! 这是因为/etc/apache2/mods available/php7.0.conf有以下行,只需要注释

# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
 <Directory /home/*/public_html>
     php_admin_flag engine Off
 </Directory>
</IfModule>
默认情况下,在用户目录中运行PHP脚本是禁用的 # #要在用户目录中重新启用PHP,请注释以下行 #(从到)不要将其设置为打开,因为 #防止.htaccess文件禁用它。 php_管理_标志引擎关闭

之后,禁用apache模块php7.0只是一个问题;重新启动apache并启用模块,然后重新启动完成了任务!谢谢大家!

我也有这个问题。您可以使用这些命令修复此问题。您需要安装libapache2 mod并启用apachephp模式

安装:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 
核实:

a2query -m php7.x
负载:

重新启动apache:

sudo service apache2 restart

您可以检查。

这里可能确实显示了解决方案;就像答案里说的那样!这是因为/etc/apache2/mods available/php7.0.conf具有“默认情况下禁用在用户目录中运行PHP脚本”。因此,评论该指令;禁用apache模块php7.0;重新启动apache并启用模块,然后重新启动完成了任务!非常感谢。
sudo service apache2 restart