Настройка удаленного доступа Subversion в Fedora Core 9 по http
В статье описывается как настроить доступ к SVN репозитарию через http с использованием Apache + Apache Portable Runtime Utility Library |
Для этого пропишем в конфигурационном файле httpd.conf несколько строк:
LoadModule dav_svn_module /usr/lib/apache/mod_dav_svn.so LoadModule authz_svn_module /usr/lib/apache/mod_authz_svn.so(Пути прописываем свои)DAV svn SVNPath /home/svn/svn.repo/ AuthType Basic AuthName "SVN Repo" AuthUserFile /etc/httpd/svn.htpasswd Require valid-user
Если этих модулей для апача нет, качаем их отсюда:
http://rpm.pbone.net/index.php3/stat/3/limit/4/srodzaj/1/dl/40/search/mod_dav_svn.so/field[]/1/field[]/2
Например mod_dav_svn-1.5.2-1.fc9.x86_64.rpm
Теперь создаем пользователя, под которым будем работать с svn удаленно:
sudo /usr/sbin/htpasswd -c -m /etc/httpd/svn.htpasswd ваш_логинМодули нашлись, пробуем перезапустить апач:
sudo /etc/init.d/httpd restartИ вот теперь самое интересное.
Если он пишет что-то вроде
Starting httpd: httpd: Syntax error on line 185 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/mod_dav_svn.so into server: /usr/lib64/libsvn_fs_base-1.so.0: undefined symbol: db_createЗначит у вас SVN скомпилен без поддержки Berkeley DB, и для хранения данных используется FSFS. Одним из решений этой проблемы было бы перекомпилить subversion из исходников с поддержкой этой самой Berkeley DB.
Итак, для начала установим BerkleyDB
Установка BerkleyDB
Качаем:Download (HTTP):
http://download-east.oracle.com/berkeley-db/db-4.8.26.tar.gz
Download (FTP):
ftp://mirror.ovh.net/gentoo-distfiles/distfiles/db-4.8.26.tar.gz
Распаковываем и инсталлим
tar -xvzf db-4.8.26.tar.gz cd db-4.8.26.tar.gz cd build_unix && ../dist/configure --prefix=/usr/local/BerkeleyDB.4.8 \ --enable-compat185 \ --enable-cxx && makeтеперь будучи root'ом
make docdir=/usr/share/doc/db-4.8.26 install && chown -v -R root:root \ /usr/bin/berkeley_db_svc \ /usr/bin/db_* \ /usr/include/db{,_185,_cxx}.h \ /usr/lib/libdb{{,_cxx}.a,{,_cxx,_java,_tcl}-4.8.{so,a,la}} \ /usr/share/doc/db-4.8.26Теперь поставим APR и APR-util. Если уони у вас есть, можно смело пропустить этот пункт.
Установка APR и APR-UTIL
Для начала их надо скачать. Например отсюда:http://www.apache.org/dist/apr/
Разархивируем, входим в каталог, и компилим. Сначала Apr, потом Apr-utils:
./configure --prefix=/usr/local/apr/ make make install ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-dbm=db48 --with-berkeley-db=/usr/local/BerkeleyDB.4.8 make make installЕсли в процессе configure вываливается ошибка наподобие
... apr-util +Berkeley db4 not foundзначит линкер не может найти библиотеки. Говорим ему где искать:
echo /usr/local/BerkeleyDB.4.8/lib > /etc/ld.so.conf ldconfig export CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include" export LD_LIBRARY_PATH="/usr/local/BerkeleyDB.4.8/lib/" export LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib"и опять
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-dbm=db48 --with-berkeley-db=/usr/local/BerkeleyDB.4.8 make make installвсе, APR и APR-UTIL установлены. Теперь собираем сам сабвершн
Собираем SVN с поддержкой BerkleyDB
# Качаем и разархивируем Subversion mkdir /tmp/svnbuild cd /tmp/svnbuild wget http://subversion.tigris.org/downloads/subversion-1.5.5.tar.gz tar xvzf /tmp/svnbuild/subversion-1.5.5.tar.gz cd subversion-1.5.5Далее заменяем пути к апачу на свои. Заметьте, все должно писаться в одну строку:
./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-apxs=/usr/sbin/apxs # build and install Subversion make make install # restart Apache /etc/init.d/httpd restartЕсли в процессе make вываливается что-то типа
... /neon/src/.libs/libneon.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [subversion/libsvn_ra_dav/libsvn_ra_dav-1.la] Fehler 1Значит делаем следующее (не спрашивайте как и почему это поможет, но оно помогает ))
cd neon/ ./configure --enable-shared make make installДалее возвращаемся в свою директорию и заканчиваем собирать subversion
make make installВсе, сабвершн установлен, получить доступ удаленно вы можете по http://yourdomain.ru/svn, где вас попросят сначала ввести логин и пароль )
« Назад