windows — Symfony2 Процесс падает при передаче переменных env

Заранее извиняюсь, если на этот вопрос уже был дан ответ. Трудно найти что-то подобное. Как уже сказано в заголовке, я пытаюсь создать процесс Symfony2, который выполняет cmd-файл в Windows, сценарий оболочки в linux.

На линуксе все работает просто отлично. Однако в Windows происходит сбой при попытке передать переменные среды моему процессу.

http://symfony.com/doc/current/components/process.html

Код выглядит примерно так:

$process = new Process('Z:\bin\webpack.cmd', 'Z:\var\www\webpacktest\www\app\cache\dev');
$process->setEnv([
'PATH'      => getenv('path')
'NODE_PATH' => 'Z:\\bin\\node_modules'
]);

$process->run();

Процесс завершается с кодом выхода (-1073741819) и не производит никакого вывода вообще.

Когда я удаляю setEnv метод и не передать никаких env-переменных, процесс работает отлично.

редактировать: я использую Windows 10 Home. Запуск PHP 5.6

2

Решение

У меня была точно такая же проблема, так как для обхода я использовал putenv:

putenv("NODE_PATH=Z:\\bin\\node_modules");
$process = new Process('Z:\bin\webpack.cmd', 'Z:\var\www\webpacktest\www\app\cache\dev');
$process->run();
putenv("NODE_PATH=");

В вашем примере вам не нужно проходить PATH как вы не меняете его, и он все равно наследуется.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]