我有一些脚本:/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”不存在。
此文件夹存在,交响处理程序以正确的用户身份运行,该用户对该文件夹具有正确的权限。从另一个文件夹运行此脚本的正确方法是什么?
答案 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
的完整路径。