Проблемы с получением Subversion + Apache для работы
Следуя инструкциям в этом полезном руководстве, я пытался настроить Subversion на своем сайте, используя Apache вместо svnserve. После того, как все настроено, у меня будет хранилище в /srv/svn/myrepository, которое доступно с code.mydomain.com.
Однако после выполнения всех инструкций в руководстве, указанном выше, при посещении code.mydomain.com отображается содержимое сайта Apache по умолчанию / var / www (то есть "Это работает!"). Это также генерирует следующую ошибку в моем журнале Apache:
[Sat Nov 06 10:11:33 2010] [notice] caught SIGTERM, shutting down
[Sat Nov 06 10:11:34 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Sat Nov 06 10:11:34 2010] [notice] mod_python: using mutex_directory /tmp
[Sat Nov 06 10:11:34 2010] [notice] Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_jk/1.2.26 PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 configured -- resuming normal operations
Вот отредактированная версия конфигурации моего сайта:
<VirtualHost my.server.ip:80>
ServerAdmin me@mydomain.com
ServerName code.mydomain.com
ErrorLog /srv/www/code.mydomain.com/logs/error.log
CustomLog /srv/www/code.mydomain.com/logs/access.log combined
<Location />
DAV svn
SVNPath /srv/svn/myrepository
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /srv/auth/svn/myrepository.htpasswd
Require valid-user
</Location>
</VirtualHost>
Заранее благодарим за любую помощь, которую вы можете оказать!
Вот результаты некоторого устранения неполадок, которые я сделал согласно советам других пользователей (большое спасибо). В каждом случае я перезапускал Apache после внесения изменений, затем проверял сайт, чтобы проверить результаты:
0) Я не подключаюсь через SSL.
1) SVNParentPath необходим только тогда, когда используются несколько репозиториев - здесь я использую только один. Тем не менее, я заново сделал мою конфигурацию, используя SVNParentPath в качестве теста, и получил тот же результат.
2) Я попытался поместить параметры Auth в раздел Limit, и получил тот же результат. Затем я удалил все параметры аутентификации, но получил тот же результат.
3) После удаления всех параметров аутентификации из файла конфигурации и получения того же результата, я не думаю, что это связано с модулем авторизации; тем не менее, я могу подтвердить, что, хотя у меня загружен модуль dav_svn, у меня не загружен модуль authz_svn.
4) Я уже создал хранилище в папке /srv/svn/myrepository. Я запустил проверку svnadmin на этом месте, и инструмент сообщил, что все хорошо.
5) Я нахожусь на Debian 5, где Apache работает как www-data; и до этого я дал www-data:www-data владение / srv / svn, а также /srv/svn/myrepository. Я проверил stat в этих каталогах, чтобы проверить это.
6) Pinging code.mydomain.com показывает, что он действительно разрешается на правильный IP
7) Я запустил a2ensite code.mydomain.com, что, очевидно, не было сделано (упс), и перезапустил Apache. Папка /srv/www/code.mydomain.com/logs теперь содержит access.log и error.log, но оба файла остаются пустыми. Между тем, попытка доступа к code.mydomain.com приводит к тому же результату, что и раньше, и файл Apache error.log по умолчанию содержит те же сообщения об ошибках, что и раньше.
8) Ни один из файлов конфигурации Apache не содержит строку NameVirtualHost *:80.
2 ответа
Прежде всего, убедитесь, что вы идете на http, а не на https.
Я использую Centos 5.5. Сравнение моего /etc/httpd/conf.d/subversion.conf с тем, что вы предоставляете, приводит к следующим наблюдениям.
проверять:
- SVNPath должен быть SVNParentPath
попробуйте закомментировать AuthType, AuthName, AuthUserFile и Require, чтобы увидеть, работает ли это. Попробуйте заключить их в:
<LimitExcept GET PROPFIND OPTIONS REPORT> ... </LimitExcept>
эти строки где-то
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
что ты сделал
svnadmin create /srv/svn/myrepository
что ты сделал
chown -R apache.apache /srv/svn/myrepository
(если вы используете Debian / Ubuntu, apache.apache будет www-data: www-data).
кажется, что вы не должны помещать эти вещи в файл /etc/apache2/sites-available/code.domain.com, вместо этого вы должны редактировать /etc/apache2/mods-available/dav_svn.conf (он уже должен быть там и содержат более или менее те же самые вещи, которые вы пытаетесь поместить в файл conf сайта. удалите все дубликаты из файла conf сайта).
вам нужно будет указать путь в этом месте, / svn.
Я думаю, что вам просто нужно убедиться, что виртуальный домен SVN сайтов остается на вершине иерархии. По умолчанию в системах Debian порт по умолчанию настроен на домен по умолчанию. Вы могли бы хотеть изменить это определенное для домена.
проверьте эту ссылку http://www.daniweb.com/forums/thread268331.html для получения подробных инструкций.
Последняя строка "sudo a2ensite svn.example.com" будет важна.