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
,因为您没有更改它,它仍然是继承的。
如果之前已经回答过此问题,请提前致歉。很难找到完全像这样的东西。正如标题所说,我正在尝试生成一个 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
,因为您没有更改它,它仍然是继承的。