Запуск задания посланника из контроллера

Я написал задание посланника, которое я запускал из терминала. Теперь я сделал вид в своем приложении, чтобы запустить его, нажав кнопку. Проблема в том, что раньше envoy запускался моим пользователем, но теперь он запускается с пользователем nginx, на котором Envoy не установлен из Composer, и я получаю эту ошибку:

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

Как я могу решить это?

0

Решение

Если вы бежите composer require laravel/envoy без использования глобального тега вы найдете посланника, установленного в папке поставщика, где веб-сервер может получить к нему доступ.

Для запуска задачи используйте путь к посланнику в папке поставщика. Например,

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

Вы можете запустить это через процесс, что-то вроде $process = new Process($command); Процесс будет запускаться от имени любого пользователя, которого использует веб-сервер, в вашем случае nginx.

0

Другие решения

Других решений пока нет …