让 Apache 在 Ubuntu 上的 .html 文件中解析 PHP

让 Apache 在 Ubuntu 上的 .html 文件中解析 PHP

我通过以下方式安装了 Apache 和 PHP:

sudo apt-get install apache2
sudo apt-get install php5

然后我在 /var/www 中创建了一个 .htaccess 文件,内容如下:

AddHandler application/x-httpd-php5 .html

它可以很好地解析 .php 文件中的 PHP,但不能解析 .html 文件中的 PHP。

GATEWAY_INTERFACE CGI/1.1

答案1

您确定已设置为允许.htaccess 文件中的指令吗?

在 Apache 配置文件中查找 AllowOverride 指令。类似这样的内容:

<Directory /var/www/>
      AllowOverride None

您需要更新 AllowOverride 行,将“None”替换为“FileInfo”。另一个选择(在我看来更好)是只更新现有的 php AddHandler 行以包含 .html 扩展名:

添加处理程序应用程序/x-httpd-php5.php.html

Apache 文档链接:http://httpd.apache.org/docs/2.2/mod/mod_mime.html#addhandler

答案2

您可以安装 mod-php。

# for Ubuntu
apt-get install mod-php
#for Debian
apt-get install libapache2-mod-php5

软件包名称可能因发行版而异。使用 apt-cache search 或 aptitude search 查找适当的软件包。

下一步是在 apache 中启用该模块:

a2nmod php5

这会在 /etc/apache2/mods-enabled/ 中创建一个名为 php5.conf 的配置文件。它应该已经包含标准安装所需的所有配置,因此您可以从 .htaccess 文件中删除 AddHandler 行。

最后你应该重新启动 Apache2:

apache2ctl configtest && /etc/init.d/apache2 restart

这将首先检查配置是否有错误,并且只有在一切正常的情况下才重新启动 Apache2。否则 apache2 可能会停止但无法重新启动。

相关内容