PHP 脚本未在 Apache 服务器上执行

PHP 脚本未在 Apache 服务器上执行

我刚刚重新安装了 Apache 和 PHP5,但当我访问我的文档根目录时,它只会下载一个“下载”文件。当我尝试文档根目录/index.php 它只是下载 PHP 文件。

我安装了 PHP,但 Apache 似乎不想执行它。
有人建议在我的文件中添加“加载模块”行,httpd.conf但我没有该文件。

答案1

键入:

sudo apt-get install apache2 php5 libapache2-mod-php5

将安装您需要的所有内容并启动支持 PHP 的 apache 服务器。

要验证 php 模块是否已加载,请输入:

a2query -m php5

如果未启用,则加载:

sudo a2enmod php5

然后重新启动 Apache:

sudo service apache2 restart

针对 php7.x 进行更新(已在 Ubuntu 16.04、16.10、18.04、18.10 上测试)

感谢评论,我更新了 php7.x 的答案。

安装:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

核实:

a2query -m php7.x

加载:

sudo a2enmod php7.x

重新启动apache:

sudo service apache2 restart

答案2

另一个常见原因是<?默认的 php.ini 配置未启用 php 短标签,因此升级或重新安装后,该设置可能会被关闭,而 php 代码可能依赖于它。请尝试<?用替换<?php

信用

答案3

Ubuntu 16.04已移至 PHP 7。此命令将为您完成该工作:

sudo apt-get install apache2 php libapache2-mod-php

libapache2-mod-php是一个安装 libapache2-mod-php7 的元包。

答案4

UserDir对于那些在未来近 6 年(甚至更久)后从 Google 找到这篇帖子的人来说,您在使用该模块时可能会遇到 Apache 2 和 PHP 7 的这个问题。

导致此问题的另一个可能原因是您尝试从模块的“用户目录”中运行脚本。默认情况下,禁用在用户目录中运行 PHP 脚本。如果脚本位于主文件夹中的目录中,并且您尝试从中访问它,UserDir则会遇到此问题。public_htmlhttp://localhost/~your_username

要解决此问题,请打开/etc/apache2/mods-enabled/php7.2.conf。您必须评论或删除底部的标签块,内容如下

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

相关内容