У меня есть скрипт, который использует passthru () для запуска команды. Мне нужно установить некоторые переменные среды оболочки перед запуском этой команды, иначе она не сможет найти свои библиотеки.
Я пробовал следующее:
putenv("LD_LIBRARY_PATH=/path/to/lib");
passthru($cmd);
Использование putenv () не распространяется на команду, которую я запускаю. Он не говорит, что не может найти библиотеки. Когда я запускаю export LD_LIBRARY_PATH=/path/to/lib
в bash, он работает нормально.
Я также попробовал следующее (напрасно):
exec("export LD_LIBRARY_PATH=/path/to/lib");
passthru($cmd);
Как установить переменную оболочки из PHP, которая распространяется на дочерние процессы моего сценария PHP?
Могу ли я проверить, не существует ли переменная в текущей среде, и попросить пользователя установить ее вручную?