У меня есть скрипт, который использует 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?
Ограничен ли я проверкой существования переменной в текущей среде и прошу пользователя установить ее вручную?