Назад | Перейти на главную страницу

Настройка репозитория Subversion (SVN) через Apache на Bluehost VPS Server

Я пытаюсь настроить Subversion (SVN) на нашем VPS-сервере Bluehost, на котором CentOS v6.5. Пока установка прошла гладко, следуя этому руководству -> http://wiki.centos.org/HowTos/Subversion

Однако теперь я застрял на своем Шаг 4.2 [конфигурации Apache Subversion].

Итак, вот история.

В основном в Интернете руководства по установке Subversion (svn) на bluehost предназначены для общего сервера, для которого действия на официальной вики-странице CentOS Subversion (назовем это А) не работает, поэтому они следуют этому руководство (назовем это B).

Модуль mod_dav_svn позволяет обслуживать subverion через Apache, поскольку его установка не разрешено на общем сервере вот что я узнал. Следовательно, многие люди попадают в руководство B, который может работать для нас, установив svn-соединение через ssh (svn + ssh), однако я пытаюсь согнуть ложку, чтобы посмотреть, можно ли установить svn-соединение через apache.

Следующее руководство А

У меня есть URL svn.domain.com указывает на /home/username/public_html/svn.domain.com/ в котором я установил репозитории с именем repos1

и установите файл subversion.conf в /etc/httpd/conf.d/subversion.conf как следующее

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /repos1>
        DAV svn
        SVNPath /home/username/public_html/svn.domain.com/repos1
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

и открытие http://svn.domain.com/repos1 он отображает простое содержимое каталога, расположенного в /home/username/public_html/svn.domain.com/repos1.

Где я предполагаю, это должно спросить пароль и дисплей Редакция 0 или по крайней мере ствол, филиал и тег папки.

Любая помощь или направление будут оценены.

Установка и настройка Subversion (SVN) на BlueHost VPS Server (CentOS)

Все мои шаги - это просто продолжение этой красивой статьи в вики на http://wiki.centos.org/HowTos/Subversion . В статье всего 8 шагов, однако для установки на BlueHost VPS требуется расширение для шага 3 и шага 4.2.

Шаг 3 - При установке yum install mod_dav_svn subversion это даст ошибку

Error: Missing Dependency: httpd-mmn = 20051115 is needed by package mod_dav_svn

Чтобы решить эту проблему, выполните следующие действия.

[$] find / -name "yum.conf"                 --- Note the path
[$] vim /path/yum.conf                          --- Edit the file

Удалить httpd* из следующей строки

exclude=apache* bind-chroot courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* perl* php* proftpd* pure-ftpd* ruby* spamassassin* squirrelmail*

Сохраните и выйдите из файла :wq!

[$] yum install mod_dav_svn subversion      --- If Success, then you can revert back yum.conf file to its original.

Шаг 4 - Перед тем как перейти к этому шагу, создайте домен или субдомен (svn.domain.com) предпочтительно и назначьте его любой папке (в основном /home/username/public_html/svn.domain.com)

/home/username/public_html/svn.domain.com     --- will be main folder under which I will have many repositories (not just one, but many)

Шаг 4.1 - Пропустите этот шаг из статьи, BlueHost позаботится о нем.

Шаг 4.2 - По умолчанию Subversion создает файл .conf с именем subversion.conf в /etc/httpd/conf.d/subversion.conf

Для BlueHost любые файлы на этом пути не действуют (мне потребовалось четыре часа, чтобы выяснить), потому что он использует C-Panel, которому необходимо следовать -> http://docs.cpanel.net/twiki/bin/view/EasyApache3/InsideVHost

Так что отредактируйте /etc/httpd/conf/httpd.conf файл в вашем любимом редактировании

[$] vim /etc/httpd/conf/httpd.conf`         --- Edit the main Apache config file
[Editor] /svn.domain.com                        --- Hit Enter and search for your domain configurations, scroll through up or down keys or n for next hit

Чуть выше для svn.domain.com вы встретите что-то похожее на строки ниже

# To customize this VirtualHost use an include file at the following location
#Include "/usr/local/apache/conf/userdata/std/2/username/svn.domain.com/*.conf"

Раскомментируйте Include, удалив хэш (#) в начале и скопируйте путь между Include до * .conf (удалите * .conf) и вставьте, как показано ниже, в mkdir команда

[$] mkdir -p /usr/local/apache/conf/userdata/std/2/username/svn.domain.com/             --- Creates all parents directory as well if they don't exist
[$] vim /usr/local/apache/conf/userdata/std/2/username/svn.domain.com/subversion.conf   --- Create subversion configuration file

В subversion.conf файл, находясь в режиме редактирования (нажмите i), вставьте ниже и измените путь к SVNParentPath и AuthUserFile как требуется

Обратите внимание, что DocumentRoot в конфигурациях VirtualHost и SVNParentPath в subversion.conf не могут иметь одинаковый путь к каталогу. SVNParentPath должен замещать или находиться в другом каталоге в целом, он не может находиться в пути DocumentRoot.

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location />
    DAV svn
    SVNParentPath /home/username/public_html/svn.domain.com/
    SVNListParentPath ON
    AuthType Basic
    AuthName "DFR Visualization Images Repository"
    AuthUserFile /home/username/public_html/svn.domain.com/svn-auth-conf
    Require valid-user
</Location>`

Сейчас :wq! и сохраните и выйдите из файла.

Теперь выполните следующие команды, чтобы создать файл аутентификации по пути, указанному в AuthUserFile переменная в файле subversion.conf

В команде htpasswd используйте аргумент -cm для создания пользователей впервые, а для последующих пользователей просто используйте -m, иначе данные предыдущих пользователей будут потеряны.

[$] htpasswd -cm /home/username/public_html/svn.domain.com/svn-auth-conf username       --- Press enter and input password

Еще один последний шаг. По умолчанию Subversion устанавливает модули, необходимые для загрузки для правильной работы SVN, в соответствующем каталоге, но поскольку BlueHost использует C-Panel, он имеет другой каталог для той же цели, что Subversion не реализует.

Поэтому нам нужно вручную скопировать модули Subversion, установленные в каталоге модулей по умолчанию, в каталог модулей C-Panel.

Сначала найдите, где Subversion установила следующие два модуля, которые мы указали в файле subversion.conf

[$] find / -name "mod_dav_svn.so"           --- Find and note subversion installation path
[$] find / -name "mod_authz_svn.so"         --- Find and note subversion installation path

Скопируйте их в папку модулей C-Panel (обычно /usr/local/apache/modules/), пожалуйста, проверьте путь перед копированием.

[$] cp /subversion_modules_path/mod_dav_svn.so /usr/local/apache/modules/
[$] cp /subversion_modules_path/mod_authz_svn.so /usr/local/apache/modules/

Теперь войдите в свою C-Panel на bluehost и перезапустите службу Apache, расположенную по адресу C-Panel -> WHM -> Restart Services -> HTTP Server (Apache)

Следуйте остальным шагам, как в статье.

Попробуй это

<Location "/"> AuthType Basic AuthName "Subversion repos" AuthUserFile /etc/svn-auth-conf Require valid-user </Location> <Location /repos1> DAV svn SVNPath /home/username/public_html/svn.domain.com/repos1 </Location>

Не забудьте перезагрузить Apache.