Windows上PHP插件的环境变量

Windows上PHP插件的环境变量,php,windows,plugins,environment-variables,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['VA

我正在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的环境变量中(这确实有效),但这太麻烦了,当我移动它时会破坏代码。有没有更好的方法来解决这个问题,否则我就只能处理它了


谢谢

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

或者使用SetEnv从.htaccess中设置任何必需的选项。这至少对于Apache Web服务器是可移植的。仔细想想,如果您运行的是mod_php而不是FastCGI版本,那么还应该尝试使用apache_setenv()

顺便说一句,putenv一直存在PHP错误,这里可能就是这种情况