Сервер 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 для совместного использования и защиты доступа к нашему репозиторию, и хотя шаги по совместному использованию всегда одинаковы, у нас есть три варианта для защиты репозитория.

  1. Публичный репозиторий - Публичный репозиторий означает, что любой пользователь может загружать и просматривать (checkout) и загружать (commit) файлы в любое время без ограничений. Это обычно не рекомендуется как способ развертывания репозитория, так как это может привести к вандализму вашего кода.
  2. Совместный репозиторий - “Совместный” репозиторий означает, что любой может загружать и просматривать (checkout) код, но только авторизованные пользователи могут вносить изменения в репозиторий. Это самый распространенный метод защиты репозитория, аналогично тому, как такие сайты, как Sourceforge и Google Code, обмениваются данными.
  3. Приватный репозиторий - Приватный репозиторий означает, что любое действие с репозиторием требует аутентифицированного пользователя и полезен, когда код не предназначен для совместного использования или открытого исходного кода.

Предполагая, что вы выбрали либо совместный, либо приватный репозиторий, вам нужно создать файл паролей, который хранит имена пользователей и пароли “авторизованных” пользователей (чтобы добавить дополнительных пользователей, опустите опцию ‘-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. Если вы хотите добавить больше, просто повторите все, начиная с ‘Создание репозитория’.

Спасибо

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.