Как установить переменную среды командной строки в PHP shell_exec - PullRequest
9 голосов
/ 26 августа 2010

Скрипт, который я пытаюсь запустить через shell_exec в PHP, требует установки переменной окружения, которая выполняется через:

export VARIABLE=value

Однако для запуска скрипта я вынужден сделать:

<?PHP
$sOutput = shell_exec("export VARIABLE=value && my_command_goeth_hereth");

Кажется бессмысленным экспортировать переменную каждый раз, когда я запускаю какие-либо команды.

Это единственный способ сделать это, или я упускаю гораздо более простой способ?

Ответы [ 2 ]

16 голосов
/ 26 августа 2010

Поскольку переменные среды наследуются, установка их в вашем скрипте будет устанавливать их и для команд, которые он запускает.Вам просто нужно использовать putenv.

putenv("VARIABLE=value");
6 голосов
/ 26 августа 2010

Не просто:

<?PHP
shell_exec('SOMEVAR=SOMEVAL /some/program');

сделать трюк?

Если вы используете несколько сценариев оболочки, то, как указал zneak, putenv - ваш друг.

РЕДАКТИРОВАТЬ с примером:

env.php:

<?PHP
echo $_ENV['FOO'];
echo "\n";

runenv.php:

<?PHP
echo shell_exec('FOO=bar php env.php');

тогда попробуй $ php runenv.php

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