Как выполнить git pull origin master из php?

Есть репозиторий на bitbucket, когда туда делается push, то срабатывает хук и на боевой сервер отправляется запрос, который запускает deploy скрипт. Этот скрипт должен делать pull из репозитория. Но почему то он его не делает, никих ошибок не выводит. Обращение к репозиторию идёт через ssh, все нужные ключи есть, ssh-add делать не надо так как там всё настроено на автоматическое добавление и т.д. Права на папку стоят, владелец тот же, что и запускает php. Короче всё тлично, причем перед get pull, я делаю git reset --hard HEAD и всё отлично выполняется. Вот сам скрипт:
<?php

/**
* 
*/
class Deploy implements DeployInterface
{
	private $payload;

	function __construct()
	{
		$this->payload = json_decode(file_get_contents('php://input'));
	}

	public function pull()
	{
		$output = '';
		if ($this->payload) {
			chdir('/var/www/'.$this->payload->repository->name);
			exec('git reset --hard HEAD', $output);
			file_put_contents('test.txt', $output, FILE_APPEND);
			exec('git pull origin master', $output);
			file_put_contents('test.txt', $output, FILE_APPEND);
		}
	}
}

В чём может быть проблема?
  • Вопрос задан
  • 1604 просмотра
Решения вопроса 1
@MrBikus Автор вопроса
Короче в директории /var/www/ надо создать директорию .ssh для юзера www-data. Затем создать приватный и публичный ключи. При создании ключей не ставить на них пароль. И все будет работать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы