У меня есть сервер 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.