对于拥有多个虚拟主机的Apache2用户的重要信息。
在``块内使用时,`php_flag`指令在Apache 2下的行为似乎与1.3下有所不同。
如果您使用`php_flag`覆盖其中一个虚拟主机的全局php.ini设置,那么其他未定制的虚拟主机也可能使用此已覆盖的设置。在单个Apache 2服务器下,不同虚拟主机之间的`php_flag`记录会出错。这可能是由于Apache 2的多线程特性造成的。
这是一个例子
假设您有两个虚拟主机:V1和V2。
在Apache配置中,对于V1,您使用
php_flag magic_quotes_gpc 1
V2应该使用全局php.ini设置,因此您没有将任何php_flag记录放入V2的Apache配置中(这在Apache 1.3下有效)。
您的默认php.ini设置是
php_flag magic_quotes_gpc 0
当您运行服务器时,您会注意到magic_quotes在V2中(有时)设置为On!
当之前有对V1的请求时,V2的值变为On。
要解决此问题,请将`php_flag`移动到位于自定义虚拟主机目录中的`.htaccess`文件中,或者将具有默认设置的`php_flag`放入所有未自定义的``块中。因此,对于V2,请使用
php_flag magic_quotes_gpc 0
非常小心使用`php_flag engine 0`至关重要。
我的配置是
PHP 4.3.4,Apache 2.0.50,Linux RedHat 9