Проблемы с получением 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 с тем, что вы предоставляете, приводит к следующим наблюдениям.

проверять:

  1. SVNPath должен быть SVNParentPath
  2. попробуйте закомментировать AuthType, AuthName, AuthUserFile и Require, чтобы увидеть, работает ли это. Попробуйте заключить их в:

    <LimitExcept GET PROPFIND OPTIONS REPORT>
    ...
    </LimitExcept>
    
  3. эти строки где-то

    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
    
  4. что ты сделал

    svnadmin create /srv/svn/myrepository
    
  5. что ты сделал

    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" будет важна.

Другие вопросы по тегам