用户特定的Php.ini当php作为模块运行?

我有一个只能在ini文件中更改的php设置。 由于冲突,我无法在全局php.ini中更改此设置,所以我需要具有此用户特定的。 如果php作为模块运行,可以这样做吗? 或者我必须更改PHP运行为CGI?

似乎最好的答案是“不是真的”,但你可以偷偷改变一些参数使用下面的技巧。

当使用PHP作为Apache模块时,我不知道有什么方法可以指定一个单独的php.ini,只有当使用PHP作为CGI时。 也就是说,php.ini中的任何configuration选项都可以在.htaccess文件中更改,如http://php.net/configuration.changes中所示,只要您将Apacheconfiguration中的AllowOverride设置为OptionsAll

我已经在我的许多网站上做了这个改变常见的PHPconfiguration。 我会假设你不需要改变每一个设置,所以通过在需要修改的目录中添加选项到你的.htaccess文件,可以很容易地pipe理这个数字。

以下是我在一对夫妇的网站上用来更改include_path以及设置auto_prepend_fileauto_append_file设置。 对于布尔标志项目,只需使用php_flag而不是php_value

 <IfModule mod_php5.c> php_value auto_prepend_file 'header.inc.php' php_value auto_append_file 'footer.inc.php' php_value include_path '/path/to/private/includes:/usr/share/pear' </IfModule> 

我重写了PHP的CGI封装处理程序,并能够指定一个php.ini文件

要做到这一点:在你想修改的文件夹中创build一个htaccess文件,如下所示:

 Action php5-cgi /cgi-bin/php5-cgi.cgi AddHandler php5-cgi .php 

然后用这样的东西创build一个文件'php5-cgi.cgi':

 #!/bin/sh exec /usr/bin/php-cgi "$@" -c "/home/user/php.ini" 

设置权限在这个文件作为“用户”执行。 然后用phpinfo(1)运行一个testing文件; 看看你有没有加载你的ini文件。

感谢大家的帮助!

所有的细节在这里: http : //php.net/configuration.changes

基本上没有。

从PHP手册 :

PHP启动时读取configuration文件(php.ini)。 对于PHP的服务器模块版本,这仅在Web服务器启动时发生一次。 对于CGI和CLI版本,它发生在每个调用。

您可以使用每个虚拟主机/用户的Apache“php_admin_value”。

IIRC,你可以使用这个命令重新定义每个php.ini的值