Сервер Subversion · 3 min read · Jan 01, 2026
Идеальный сервер Subversion - Debian Lenny [ISPConfig3]
Идеальный сервер Subversion - Debian Lenny [ISPConfig3]
Subversion — это бесплатная/с открытым исходным кодом система контроля версий. То есть, Subversion управляет файлами и директориями, а также изменениями, внесенными в них, с течением времени. Это позволяет вам восстанавливать более старые версии ваших данных или изучать историю изменений ваших данных. В этом отношении многие люди рассматривают систему контроля версий как своего рода “машину времени”. Этот гид поможет вам настроить систему subversion и интегрировать ее с вашей существующей установкой ISPConfig3, позволяя вам контролировать использование диска, квоты и другие факторы очень привычным способом. Возможно, однажды кто-то сможет использовать этот процесс для создания плагина для ISPConfig3, который будет делать все это автоматически.
Требования
Очевидно, что этот гид требует, чтобы у вас уже была настроена и работала ISPConfig3. Шаги, описанные ниже, могут также работать с ISPConfig2, но это не было протестировано и не будет поддерживаться. Если вы еще этого не сделали, следуйте руководству фалько по Идеальному серверу - Debian Lenny [ISPConfig3] перед тем, как продолжить.
Чтобы позволить одному веб-сайту иметь несколько репозиториев, мы поместим все в папку ‘svn’, и в конечном итоге публичный путь к вашему репозиторию будет выглядеть примерно так: http://example.com/svn/myrepo. Но прежде чем мы сможем начать, вам нужно создать сайт для ‘example.com’. Создание сайта и установка параметров квоты выходит за рамки этого руководства, но это довольно просто, если вы еще этого не делали.
Установка Subversion
Установка Subversion и необходимых модулей Apache довольно проста (выполняйте от имени root или используйте sudo):
apt-get install subversion libapache2-svnСоздание репозитория
По умолчанию ISPConfig хранит сайты в /var/clients/clientx/weby/, вам нужно знать, какой идентификатор клиента (x) и идентификатор сайта (y) соответствуют сайту, на котором вы хотите настроить репозиторий. Если вы внесли какие-либо изменения в стандартные пути, вам нужно будет изменить команды ниже, чтобы они соответствовали вашей структуре каталогов. Начните с создания директории svn (это нужно сделать только один раз для каждого сайта):
mkdir /var/clients/clientx/weby/svnДалее вам нужно создать репозиторий и исправить права доступа ко всему (это важно для проверки квоты).
svnadmin create /var/clients/clientx/weby/svn/myrepo
chown -R weby:clientx /var/clients/clientx/weby/svn
chmod -R 770 /var/clients/clientx/weby/svnСовместное использование и защита репозитория
Мы будем использовать apache для совместного использования и защиты доступа к нашему репозиторию, и хотя шаги по совместному использованию всегда одинаковы, у нас есть три варианта для защиты репозитория.
- Публичный репозиторий - Публичный репозиторий означает, что любой пользователь может загружать и просматривать (checkout) и загружать (commit) файлы в любое время без ограничений. Это обычно не рекомендуется как способ развертывания репозитория, так как это может привести к вандализму вашего кода.
- Совместный репозиторий - “Совместный” репозиторий означает, что любой может загружать и просматривать (checkout) код, но только авторизованные пользователи могут вносить изменения в репозиторий. Это самый распространенный метод защиты репозитория, аналогично тому, как такие сайты, как Sourceforge и Google Code, обмениваются данными.
- Приватный репозиторий - Приватный репозиторий означает, что любое действие с репозиторием требует аутентифицированного пользователя и полезен, когда код не предназначен для совместного использования или открытого исходного кода.
Предполагая, что вы выбрали либо совместный, либо приватный репозиторий, вам нужно создать файл паролей, который хранит имена пользователей и пароли “авторизованных” пользователей (чтобы добавить дополнительных пользователей, опустите опцию ‘-c’ из команды).
htpasswd -c /var/clients/clientx/weby/svn/myrepo.passwd [username1] <-- вам будет предложено ввести пароль для username1Наконец, вам нужно добавить соответствующую директиву, чтобы сказать Apache, что делать, когда пользователь запрашивает http://example.com/svn/myrepo. В зависимости от метода безопасности, который вы хотите использовать, скопируйте соответствующую директиву ниже и вставьте ее в поле ‘Apache Directives’ на вкладке ‘Options’ вашего сайта в ISPConfig (не забудьте исправить директории с соответствующими значениями x и y).
Публичный репозиторий
DAV svn
SVNPath /var/clients/clientx/weby/svn/myrepo
Совместный репозиторий
DAV svn
SVNPath /var/clients/clientx/weby/svn/myrepo
AuthType Basic
AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd
Require valid-user
Приватный репозиторий
DAV svn
SVNPath /var/clients/clientx/weby/svn/myrepo
AuthType Basic
AuthName "Indemnity83 Scripts"
AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd
Require valid-user
Может потребоваться минутка, чтобы сайт начал работать после внесения изменений, но на этом этапе у вас должен быть работающий и защищенный репозиторий Subversion. Если вы хотите добавить больше, просто повторите все, начиная с ‘Создание репозитория’.
Спасибо
Надеюсь, вы найдете этот гид полезным. Пожалуйста, не стесняйтесь добавлять комментарии или исправления.
Get new posts in your inbox
No spam. Unsubscribe anytime.