windows - Symfony2 进程在传递环境变量时崩溃

windows - Symfony2 Process crashes when passing env variables

如果之前已经回答过此问题,请提前致歉。很难找到完全像这样的东西。正如标题所说,我正在尝试生成一个 Symfony2 进程,它在 Windows 上执行一个 cmd 文件,在 linux.

上执行一个 shell 脚本

在 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 方法并且不传递任何环境变量时,该过程运行完美。

编辑:我 运行 Windows 10 岁。 运行 PHP 5.6

我遇到了完全相同的问题,作为解决方法我使用了 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,因为您没有更改它,它仍然是继承的。