Laravel Envoy Permissions?

时间:2017-06-05 09:02:03

标签: php laravel laravel-5 devops laravel-envoy

好的,所以我试图从一个控制器函数调用Envoy,但遇到了其他人似乎无法获得的权限问题?

我已在全局安装了envoy并对/ usr / local / bin做了一个符号链接,以便我的网站可以看到它。但我无法弄清楚为什么它没有许可。

我从Ubuntu 16.04,Nginx,PHP 7.0运行

感谢任何帮助:

$result = [];
         $live = false;

         $process = new \Symfony\Component\Process\Process('envoy run deploy --domain="test"');
         $process->setTimeout(3600);
         $process->setIdleTimeout(300);
         $process->setWorkingDirectory(base_path());
         $process->run(
             function ($type, $buffer) use ($live, &$result) {
                 $buffer = str_replace('[127.0.0.1]: ', '', $buffer);

                 if ($live) {
                     echo $buffer . '</br />';
                 }

                 $result[] = $buffer;
             }
         );

         dd($result);

但是得到:

0 => "sh: 1: "
  1 => "envoy: Permission denied"
  2 => "\n"

2 个答案:

答案 0 :(得分:1)

我相信这是laravel app用户的权限。您应该考虑到laravel进程由不具有执行www-data权限的其他用户(可能是envoy)拥有。

要解决此问题,您必须调整envoy的权限,这可能会导致安全漏洞并在不同的部署上耗费时间。

sudo chown www-data:www-data ~/.composer/vendor/laravel/envoy/envoy

,我建议您在项目中使用composer require laravel/envoy并从vendor/bin/envoy执行。

答案 1 :(得分:0)

我使用以下方法找到了解决方案:laravelcollective.com/docs/5.0/ssh