Laravel Envoy Permissions?

Итак, я пытаюсь вызвать 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"

1

Решение

Я считаю, что это разрешение для пользователя приложения laravel. Следует учитывать, что процесс laravel принадлежит другому пользователю (предположительно www-data) кто не имеет разрешения на казнь envoy,

Чтобы исправить это, вы должны настроить разрешения envoy что может привести к слабым местам безопасности и отнимает много времени в различных развертываниях.

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

тем не мение, Я рекомендую вам использовать composer require laravel/envoy в вашем проекте и выполнить его из vendor/bin/envoy,

1

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

Я нашел решение, используя: laravelcollective.com/docs/5.0/ssh

0

По вопросам рекламы [email protected]