ОС - Ubuntu 14.04
Я работаю над развертыванием, используя GIT webhooks для него.
Я добавил ключи развертывания в GIT repo, и теперь я хочу запускать команду git pull origin master
, когда нажатие происходит из моего локального репо.
Это test.php
файл, который я вызываю через браузер:
<?php
//echo "THis is a test file on a test repo for testing the deploy functionality using github webhooks!!!!";
echo exec('whoami');
echo exec('sh -x /var/www/proj/test/git.sh');
?>
Это файл оболочки git.sh
:
#!/bin/bash
cd /var/www/proj-dir/test
git pull origin master
Когда я запускаю это на терминале с помощью php test.php
, я получаю правильный результат, как ожидалось:
ubuntu From github.com:repo/test
* branch master -> FETCH_HEAD
Already up-to-date.
ubuntu
для whoami
, за которым следует вывод git pull
.
Теперь, когда я вызываю тот же http://example.com/test.php
через браузер, он показывает пользователя или whoami
вывод как www-data
, который является пользователем apache, но я попробовал обновить разрешения для файла php для выполнения и меняя пользователя на www-data
, но не работает.
проверял журналы apache, и когда я выполняю через браузер, я получаю ошибку разрешения
Please make sure you have the correct access rights and the repository exists. + cd /var/www/proj/deploy-test + git pull origin master
Ошибка проверки ключа хоста. fatal: Не удалось прочитать из удаленного репозитория. Убедитесь, что у вас есть правильные права доступа и существует репозиторий.
Какие обновления мне нужно сделать, чтобы файл работал через запрос браузера?
Если мне нужно обновить файл sudoers, какие обновления должны быть?
Обновление
Я добавил ключи .ssh
в директорию var/www/
, поскольку это является домом для пользователя apache. Но я все еще получаю
git pull origin master
error: cannot open .git/FETCH_HEAD: Permission denied
Также я добавил строку для пользователя www-data для выполнения файла sh.
www-data ALL=(anthony) NOPASSWD: /var/www/mysite/vendor/tmd/auto-git-pull/scripts/git-pull.sh
Ссылка здесь Все еще не удача
Обновлены разрешения для папки .git для пользователя www-datap >
sudo chown www-data:www-data /var/www/proj/test/.git