Php Symfony/进程无法从目录运行sh脚本

Php Symfony/进程无法从目录运行sh脚本,php,symfony,symfony4,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;

我有一些脚本:
/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“/主页/用户/项目”不存在


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

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

$process = new Process(['/home/user/project/bin/console', '--version']);
$process->run();
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}
echo $process->getOutput();
如果确实有效,请尝试:

  • 新流程(['/home/user/project/deploy.sh'])
  • 新流程(['sh/home/user/project/deploy.sh'])
  • Process::fromShellCommandline('/home/user/project/deploy.sh')

您可能需要使用
sh
的完整路径,因为Web服务器使用不同的用户和
path
变量。

可以尝试$process->setWorkingDirectory(getcwd());getcwd()-获取当前目录。。。不同目录中的php处理程序和sh脚本我需要从一个目录到另一个目录设置工作目录进程是否也具有访问/home和/home/user的正确权限?php还可以配置为限制对某些basedir的访问,主目录可能不属于这些basedir?