Использование Laravel 5.6.Я пытаюсь настроить webhook на gitlab, чтобы сделать git pull
для событий push.Я создал пост-маршрут, добавил контроллер и метод, который запускает сценарий оболочки:
use Symfony\Component\Process\Process;
class WebhookController extends Controller
{
public function handle(Request $request) {
$root_path = base_path();
$process = Process::fromShellCommandline('cd ' . $root_path . '; ./deploy.sh');
$process->run(function($type, $buffer) {
echo $buffer;
});
}
}
Сам сценарий оболочки содержит только одну строку:
#!/bin/sh
git pull
Но в запросе gitlabдетали, я вижу ошибку после нажатия:
error: cannot open .git/FETCH_HEAD: Permission denied
Я уже chmod 777 deploy.sh
, но я думаю, что он пытается запустить этот скрипт от другого пользователя?Если я запускаю скрипт от моего пользователя, он просто работает (я использую ключ ssh без пароля).
ОБНОВЛЕНИЕ
Я сделал sudo chown -R $USER:www-data .
- сейчасон не показывает ошибку с разрешениями, кроме одного:
Could not create directory '/var/www/.ssh'.
Host key verification failed.
fatal: Could not read from remote repository.
Он пытается сделать git pull
, используя пользователя www-data (я проверил с whoami), поэтому у него нетПравильный ключ SSH, как я могу переключиться на свое ИМЯ ПОЛЬЗОВАТЕЛЯ?