Windows上PHP中插件的Env变量

时间:2010-06-29 01:25:01

标签: php windows plugins environment-variables

我在Windows上运行PHP。 Windows上的PHP插件只是扩展文件夹中的DLL,我可以很少配置这些插件。

例如,ADAP插件(OpenLDAP本身)具有我无法在运行时更改的设置。幸运的是,OpenLDAP允许我通过弄乱环境变量来改变其中一些设置。我尝试通过添加两者来设置它们:

// this apparently works on Linux
putenv('VARIABLE=value');
// tried this one as well
$_ENV['VARIABLE'] = 'value';

但那没用。我不得不将其添加到Windows的环境变量中(这确实有效),但是后面的太多痛苦并且在移动它时会破坏代码。有没有更好的方法来做到这一点,或者我只是要处理它?<​​/ p>

由于

1 个答案:

答案 0 :(得分:0)

尝试在加载dll扩展名之前设置环境变量。也就是说,不要通过php.ini加载dll,而是使用putenv()然后使用dl()。通常DLL应该与主进程共享环境变量,但你永远不知道。

或者使用 SetEnv 在.htaccess中设置所有必需的选项。对于Apache Web服务器来说,这至少是可移植的。想想看,如果你运行mod_php而不是FastCGI版本,你也应该尝试 apache_setenv()

顺便说一句,putenv一直存在PHP错误,http://bugs.php.net/50690,可能就是这种情况。