使用 PHP 管理器在单个网站上禁用 PHP

使用 PHP 管理器在单个网站上禁用 PHP

我从http://php.iis.net/,效果很好。但是,我的机器上只有一个网站使用 PHP,我想为其他网站禁用它。有没有办法让我选择哪些网站可以使用 PHP,哪些网站不使用?

答案1

如果你可以使用 php 管理器设置 php 标志,那么你可以像这样禁用 php:

php_admin_flag  engine 0

在 apache 上,您可以选择在虚拟主机或 htaccess 中设置 php 标志。

阿帕奇示例:

<virtualhost host1...>
php_admin_flag  engine 1
php_value error_reporting 8191
php_flag apc.enabled 1
</virtualhost>

<virtualhost host2...>
php_admin_flag  engine 0
php_value error_reporting 8191
php_flag apc.enabled 0
</virtualhost>

对于 iis,我没有直接经验,但我找到了以下链接: http://forums.iis.net/t/1150190.aspx

导致:http://www.iis-aid.com/articles/how_to_guides/setting_per_directory_php_configuration_values

上周我写了一篇关于在 Windows 中加载 php.ini 的不同位置的文章。php.ini 配置文件中设置的值是全局的,将为服务器上的每个 PHP 环境设置。但是,如果您想为服务器上的每个站点配置不同的 PHP 环境设置,甚至为站点内的目录配置不同的 PHP 设置,会发生什么情况?这可以通过 ini_set() 函数来完成,但由于我们并非所有人都是程序员或有时间进行代码修改,因此还有另一种选择;注册表,这是我们将在本文中讨论的方法。

在 PHP4 时代,使用 IIS 时除了全局 PHP 指令之外没有其他配置方式。现在,使用 PHP5 时,可以通过配置 HKLM\SOFTWARE\PHP\Per Directory Values 注册表值来实现,这是一种非常快速简便的配置 PHP_INI_USER 值的方法。使用此注册表设置,您可以为网站内的任何和所有目录指定不同的 PHP 指令。

要做到这一点,只需使用 regedit 在注册表中的 HKLM\SOFTWARE\PHP\Per Directory Values 下创建一个键,使用目录路径的结构,然后使用要更改的 PHP 指令的名称创建一个字符串值。例如,如果您希望将位于 X:\path\to\php 的目录中的 memory_limit PHP 指令设置为 24M,您可以执行以下操作;

   Create a key with the path of HKLM\SOFTWARE\PHP\Per Directory Values\x\path\to\php
   Create a string value with the name memory_limit

   Set the string name value to 24M 

相关内容