У меня есть следующая установка:
Два пользователя: пример и git
Внутри /home/git/repositories/project.git/hooks/post-receive
у меня есть касса /home/example/public_html/dev
Таким образом, при каждом нажатии Git файлы проекта публикуются на http://dev.example.com.
Проблема в том, что проверка выполняется от пользователя git, поэтому все файлы внутри каталога dev принадлежат git: git, а разрешения равны 600.
Таким образом, при посещении http://dev.example.com страница отображаться не будет. так как пользователь apache не имеет к нему доступа.
Кто-то предложил сделать chown внутри хука post-receive. Ну, тогда пользователь git должен быть sudo. Поэтому я добавил пользователя git в качестве sudoer. Следующая проблема была "извините, для запуска sudo требуется tty". Поэтому я закомментировал #Default requiretty, но столкнулся со следующей проблемой.
Делать пользователя git sudoer - это не то, что я хотел (не безопасно), поэтому я вернул все в нормальное состояние.
Есть ли другие более безопасные варианты, чтобы попробовать?
Возможно, пусть хук после получения запускает php-файл внутри папки dev, и этот php-файл будет выполнять проверку?
Или я могу связать папку dev с папкой внутри /home/git так, чтобы apache мог показать их в браузере?