我通过以下方式安装了 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 可能会停止但无法重新启动。