2016-09-05 3 views
0

터미널에서 실행중인 Envoy 작업을 작성했습니다. 이제 앱에서 버튼을 눌러 실행 해 보았습니다. 컨트롤러에서 envoy 작업 실행하기

sh: 1: /home/vagrant/.config/composer/vendor/bin/envoy: not found 

가 어떻게이 문제를 해결 할 수 있습니다 문제는 특사 전에 내 사용자에 의해 실행되고 있었다하지만 지금은 그렇지 특사는 작곡가에서 설치 한 nginx를 사용자로 실행되고 내가이 오류를 얻고 있다는 것입니다?

+0

이 방법은 PHP를 실행하려는 사용자로 PHP를 실행하는 것입니다. – Devon

+0

그런 다음 모든 개발 환경에 설치된 패키지로 사용자를 복제해야합니까? 좋은 해결책이 아닙니다. – Alan

+0

나는 당신이 무엇을 기대하는지 모른다. 특사를 수동으로 실행하면 사용자로 실행됩니다. 사용자 nginx에서 PHP를 제공하도록 nginx를 구성해야합니다. 그들은 서로 다른 환경과 권한을 갖게 될 것입니다. – Devon

답변

0

global 태그를 사용하지 않고 composer require laravel/envoy을 실행하면 웹 서버가 액세스 할 수있는 공급 업체 폴더에 envoy가 설치되어 있습니다.

작업을 실행하려면 공급 업체 폴더의 특사 경로를 사용하십시오. 예를 들어,

$command = base_path().'/vendor/bin/envoy run mytask'; 

당신은 프로세스를 통해이 작업을 실행할 수 $process = new Process($command); 같은이 과정은 웹 서버가 귀하의 사례의 nginx에 사용하고 어떤 사용자로 실행됩니다.

관련 문제