apache2未在Debian stretch上执行php脚本
最近,我将我的Debian服务器从Jessie升级到Stretch(Debian9.5)。一切都进行得很顺利,只是当web浏览器请求时,php生成的网站没有执行。至于我得到的响应是php源代码而不是生成的html的实例。 如果我使用ssh连接到服务器上,并使用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()在
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