我正在运行 PHP 版本 => 5.3.0
正如你所见,我默认关闭了php的引擎。
1)我可以在主虚拟主机容器中的 httpd.conf 中全局默认关闭 php 吗?
2) 我没有尝试上面的 #1,但尝试了下面的“php_value engine on”。当我加载任何页面时,它都会下载文件,php 实际上处于关闭状态。如果我删除该行,php 就会恢复运行。
我找不到有关 5.3 版此特定设置的文档,所以我不确定这是一个错误还是正常行为。
我希望将服务器范围默认为关闭,并且必须为每个虚拟主机明确启用它,而不必记住在虚拟主机块中有该行。
我一直在使用的示例模板...
<VirtualHost *:80>
DocumentRoot "/path"
ServerName example.com
ServerAlias www.example.com
DirectoryIndex index.php
# php setttings
php_admin_value open_basedir "/path/:/private/var/tmp/:"
php_value engine off
<Directory "/path">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
答案1
是的,您可以在 Apache httpd 配置中全局关闭 PHP,然后为某些虚拟主机激活它。
除了使用 LoadModule 指令实际加载模块之外,你还必须分配应用程序/x-httpd-php处理某些文件或文件扩展名。
必要的配置可能类似于以下代码片段:
<FilesMatch "\.ph(p5?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
此代码片段将使 mod_php 解析带有扩展名的文件.php,.php5和.phtml。