Структурирование центрального Git-пульта для обслуживания производственных сайтов Apache - PullRequest
1 голос
/ 14 сентября 2010

Я имел в виду http://toroid.org/ams/git-website-howto как отправную точку для рабочего веб-сервера, работающего на управляемом VPS.VPS работает cPanel и WHM, и в конечном итоге он будет содержать несколько клиентских веб-сайтов, каждый со своей учетной записью cPanel (таким образом, каждый со своим собственным пользователем Linux и домашним каталогом, из которого обслуживаются сайты).Сайт каждого клиента - это отдельный репозиторий Git.

В настоящее время я помещаю каждый репозиторий через SSH в пустое хранилище в домашней папке клиента, например, /home/username/git/repository.git/.В соответствии с приведенным выше руководством каждый репозиторий был настроен на возврат в другой каталог с помощью перехвата после получения.В этом случае каждый репо выдает свою собственную /home/username/public_html (по умолчанию DocumentRoot для новых учетных записей cPanel), где файлы затем обслуживаются Apache.Хотя это работает, мне требуется настроить (в моей локальной среде разработки) мои пульты управления следующим образом:

url = ssh://username@example.com/home/username/git/repository.git/

Требуется также вводить пароль пользователя каждый раз, когда я нажимаю на него, что меньшечем в идеале.

В попытке централизовать все свои репозитории в одной папке я также попытался перейти на /root/git/repository.git с правами root и затем оттуда перейти к соответствующему домашнему каталогу.Однако это приводит к тому, что все извлеченные файлы принадлежат пользователю root, что не позволяет Apache обслуживать сайт с такими ошибками, как

[error] [client xx.xx.xx.xx] SoftException in Application.cpp:357: UID of script "/home/username/public_html/index.php" is smaller than min_uid

(что является проблемой с правами владения / разрешениями файлов, посколькуЯ могу сказать)

Я могу решить , что проблема с командами chown и chgrp в каждом репо-хуке репо - однако это также поднимает флаг "не совсем верно" в моей голове,Я также рассмотрел gitosis (чтобы централизовать все мои репозитории в /home/git/), но я предполагаю, что столкнусь с той же проблемой владения файлами, поскольку извлеченные файлы будут принадлежать пользователю git.

Я просто подхожу ко всему этому неправильно?Я чувствую, что мне совершенно не хватает третьего, более элегантного решения общей проблемы.Или я должен просто придерживаться одного из методов, которые я описал выше?

1 Ответ

1 голос
/ 14 сентября 2010

Требуется также вводить пароль пользователя каждый раз, когда я нажимаю на него, что не идеально

В этом нет необходимости, если вы публикуете свой открытый ssh-ключ в файле учетной записи назначения ".ssh/authorized_keys".

См. Также например, блокировка авторизованных ключей ssh ​​.
А также официальный справочник Pro Git Book "Настройка сервера" .

...