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

Apache выбирает неправильную версию установленной Subversion

У меня есть сервер Debian Squeeze с Apache2 и Subversion на борту. Версия Subversion - 1.6.12 (r955767). Это из репозиториев Debian. Но недавно я установил Subversion v1.7.7 из источников в / usr / local /, и теперь в консоли я вижу

root@test:~# svn --version
svn, version 1.7.7 (r1393599)
   compiled Dec  6 2012, 17:28:19

   ...

root@test:~# svnadmin --version
svnadmin, version 1.7.7 (r1393599)
   compiled Dec  6 2012, 17:28:19

   ...

root@test:~# svnserve --version
svnserve, version 1.7.7 (r1393599)
   compiled Dec  6 2012, 17:28:19

   ...

Но когда я обращаюсь к этому серверу через Apache, я получаю следующую подпись сервера

Powered by Subversion version 1.6.12 (r955767).

Конфигурация виртуального хоста Apache

<VirtualHost XXX.XXX.XXX.XXX:80>
        ServerAdmin aboritskiy@XXXXXXXXX.XX
        ServerName svn.XXXXXXXXX.XX
        HostnameLookups Off
        UseCanonicalName Off
        ServerSignature On

        <IfModule mod_userdir.c>
                UserDir public_html
                Include /etc/apache2/mod_userdir.conf
        </IfModule>
        <Directory "/var/svn/">
                Options FollowSymLinks
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        <Location />
                DAV svn
                SVNParentPath /var/svn/repos

                AuthType Basic
                AuthName "Advance Digital Subversion Repository."
                AuthUserFile /etc/apache2/dav_svn.passwd
                Require valid-user
        </Location>
</VirtualHost>

Возникает вопрос: как Apache выбирает версию Subversion для работы? Как изменить эту настройку?

Если вы посмотрите в /etc/apache2/mods-enabled/dav_svn.load, вот увидишь

LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

Вы можете подтвердить, что они указывают на модуль Debian Subversion 1.6.12:

$ strings /usr/lib/apache2/modules/mod_dav_svn.so | grep 'Powered by'
 <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a> version 1.6.12 (r955767).</em>

Вы должны изменить /etc/apache2/mods-available/dav_svn.load чтобы указать на ваши собственные модули Subversion для Apache.

Вам также необходимо обновить модуль Apache webDav / SVN (libapache2-svn), чтобы вам либо нужно было взять исходный код Apache и скомпилировать обновленную версию Apache и библиотеки, либо получить последнюю версию Apache, SVN и пакеты libapache2-svn.