Я пытаюсь настроить 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 или по крайней мере ствол, филиал и тег папки.
Любая помощь или направление будут оценены.
svnadmin create repos1
команда.Установка и настройка 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.