Переменные env для плагинов в PHP на Windows - PullRequest
3 голосов
/ 29 июня 2010

Я использую PHP на Windows. Плагины PHP в Windows - это просто библиотеки DLL в папке расширений, и я мало что могу сделать для настройки этих плагинов.

Например, плагин ADAP (то есть сам OpenLDAP) имеет настройки, которые я не могу изменить во время выполнения. К счастью, OpenLDAP позволяет мне изменять некоторые из этих настроек, связываясь с переменными среды. Я попытался настроить их во время выполнения, добавив оба:

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

Но это не сработало. Я должен был добавить это к переменным среды Windows (и это сработало), но это слишком большая боль в задней части и сломает код, когда я его переместу. Есть ли лучший способ сделать это, или мне просто придется иметь дело с этим?

Спасибо

1 Ответ

0 голосов
/ 29 июня 2010

Попробуйте установить переменные окружения перед загрузкой расширения dll.То есть не загружайте dll через php.ini, а используйте putenv (), а затем dl ().Обычно DLL должна совместно использовать переменные среды с основным процессом, но вы никогда не узнаете.

В качестве альтернативы установите любые необходимые параметры из .htaccess, используя SetEnv .Это по крайней мере переносимо для веб-серверов Apache.Если подумать, вы должны также попробовать apache_setenv () , если вы используете mod_php, а не версию FastCGI.

Кстати, всегда были ошибки PHP для putenv, http://bugs.php.net/50690, здесь может быть дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...