将文件解析为 PHP 的常用方式.html
是将以下行的第一行(PHP 作为 Apache 模块)或两行(PHP 作为 CGI)添加到文件中.htaccess
:
AddType application/x-httpd-php .html .htm
AddHandler application/x-httpd-php .html .htm
有时,这需要x-http-php5
取决于主机:
AddType application/x-httpd-php5 .html .htm
AddHandler application/x-httpd-php5 .html .htm
但是,我现在在一个新的主机上,这些线路的渗透都不起作用。在所有情况下,原始文件都会被发送到浏览器,并wget
显示它x-httpd-php
被呈现为 Content-Type!
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Tue, 07 Aug 2012 14:16:40 GMT
Server: Apache
Last-Modified: Tue, 07 Aug 2012 07:46:44 GMT
ETag: "862239-14-4c6a83216c100"
Accept-Ranges: bytes
Content-Length: 20
X-Powered-By: PleskLin
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/x-httpd-php
Length: 20 [application/x-httpd-php]
Remote file exists.
请注意,这Length: 20
正是的长度<?php phpinfo(); ?>
,这就是它所服务的内容。我已经确认 PHP 正在作为模块运行,并提供了极好的提示在这个SO答案中。我已与服务器维护人员(一名员工,因此即使我更换主机,我仍然愿意帮助他解决问题)进行了交谈,但他不知道问题是什么或正确的配置是什么。如果这很重要的话,服务器正在基于 Debian 的发行版上运行 Plesk。
答案1
这实际上是一个 Apache 配置问题,此页面有解决方案: http://kb.parallels.com/en/124
为供后人转载于此:
可以通过将以下内容放入“/etc/httpd/conf.d/zz010_psa_httpd.conf”文件中来启用.htaccess 文件:
AccessFileName .htaccess <Directory "/var/www/vhosts"> Options +All AllowOverride All Order allow,deny Allow from all </Directory>
然后重新启动Apache:
#service httpd stop #service httpd start