Следовал инструкции:
jonathannicol.com/blog/2013/11/19/automated-git-de...
Сервер VPS, Ubuntu 14.04
Сделал на тестовом поддомене - всё работает.
На радостях тут же всё удалил и решил проделать тоже самое на основном, с улучшениями.
Не получилось.
Сейчас вернулся к простому варианту с тестовым поддоменом.
И так, есть приватный репозиторий на bitbucket, добавлены 2 Deployment keys:
1. Для пользователя username (лежит в /home/username/.ssh)
2. Для пользователя www-data (под ним работает Apache, лежит в /var/www)
В репозитории только 1 файл - index.php
Далее следую строго по инструкции, изменив в bitbucket-hook.php только пути (для git тоже пробовал менять). Ну и ветка у меня только master
После выполнения команд
git clone --mirror git@bitbucket.org:username/deploy.git
cd deploy.git
GIT_WORK_TREE=/var/www/deploy.example.com git checkout -f master
В папке /var/www/deploy.example.com появился index.php
так же были даны права (уже и так и эдак пробовал) на папку с сайтом и на репозиторий:
sudo chown -R username:www-data /var/www
sudo chown -R username:www-data deploy.git
Таким образом, у всех нужных папок владелец указан как:
Владелец/группа
username/www-data
Клонирую репозиторий на компьютер, вношу изменения, отправляю коммит на сервер...
До bitbucket-hook.php всё доходит, лог пишется.
Дальше я заметил происходит следующее:
1. В папке deploy.git у файла index меняется владелец на www-data/www-data
2. В папке /var/www/deploy.example.com у файла index.php меняется владелец на www-data/www-data
И всё, никаких изменений.
Если сейчас выполнить команды, которые прописаны в bitbucket-hook.php
cd ~/deploy.git
git fetch
GIT_WORK_TREE=/var/www/deploy.example.com git checkout -f
То файлы обновятся.
При этом у
/var/www/deploy.example.com/index.php
~/deploy.git/head
~/deploy.git/index
владелец станет username/username
После этого если ещё раз отправить коммит вообще ничего не произойдёт кроме записи логов с bitbucket...
Что делать?
UPD:
Подозреваю всё же проблему прав у www-data, но как её решить...
Вручную выполняю команду из скрипта от www-data
Та же команда от моего пользователя