Symfony / Process无法从目录

时间:2019-06-28 12:35:15

标签: php symfony symfony4

我有一些脚本:/home/user/project/deploy.sh
我试图从另一个目录中的php处理程序运行Symfony / Process组件:

$process = new Process(['./deploy.sh']);
    $process->setWorkingDirectory('/home/user/project');
    $process->run(function ($type, $buffer) {
        echo $buffer;
});

但是我得到一个错误:

  

提供的cwd“ / home / user / project”不存在。

此文件夹存在,交响处理程序以正确的用户身份运行,该用户对该文件夹具有正确的权限。从另一个文件夹运行此脚本的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

仅出于调试目的,请测试下面的代码。

$process = new Process(['/home/user/project/bin/console', '--version']);
$process->run();
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}
echo $process->getOutput();

如果可以,请尝试:

  • new Process(['/home/user/project/deploy.sh']);
  • new Process(['sh /home/user/project/deploy.sh']);
  • Process::fromShellCommandline('/home/user/project/deploy.sh');

由于网络服务器使用其他用户和sh变量,因此您可能需要使用PATH的完整路径。