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

Псевдоним Apache работает в браузере, но не работает при попытке доступа через svn-клиент

Я столкнулся с проблемой, которая сводит меня с ума. Я установил с нуля машину ubuntu 14.04, установил стек LAMP и Subversion. Я создал новую папку / var / www / svn и импортировал свои различные дампы SVN. Удостоверился, что все они были настроены в файле svnserve.conf для доступа через svn: //, а также убедился, что в файле passwd есть пользователь, с которым я могу получить к нему доступ. Я добавил себя и пользователя www-data в этот каталог, чтобы убедиться, что он доступен в Интернете. Чтобы не беспокоиться о слишком большом количестве атрибутов, я запустил svnserve с помощью следующей команды svnserve -d.

Затем я добавил в свой 000-default.conf псевдоним Alias /svn /var/www/svn, перезапустил сервис apache2, и он отлично заработал в браузере.

Теперь к моей реальной проблеме, когда я пытаюсь получить доступ к репо с tortoisesvn, я получаю сообщение об ошибке, что в этом месте нет svn. Проведя некоторое время в исследованиях, я вижу, как кто-то упоминает, что он смог получить к нему доступ при использовании «полного» пути. Итак, я попробовал следующее svn://mydomain.com/var/www/svnи это работает ...

Поскольку псевдоним работает в браузере, но не работает в SVN-клиенте, я полностью ошеломлен.

Любые идеи?


Подводя итог: я использую www.example.com/svn/myrepo, когда он не работает, а когда я использую www.example.com/var/www/svn/myrepo, тогда он работает.

Полный 000-default.conf:

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com

    ServerAdmin my-email@example.com
    DocumentRoot /var/www/html

    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>

    <Directory /var/www/html/>
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    Alias /svn /var/www/svn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Выход apachectl -S

VirtualHost configuration:*:80 www.example.com (/etc/apache2/sites-enabled/000-default.conf:1) ServerRoot: "/etc/apache2" Main DocumentRoot: "/var/www" Main ErrorLog: "/var/log/apache2/error.log" Mutex default: dir="/var/lock/apache2" mechanism=fcntl Mutex mpm-accept: using_defaults Mutex watchdog-callback: using_defaults Mutex rewrite-map: using_defaults PidFile: "/var/run/apache2/apache2.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG User: name="www-data" id=33 not_used Group: name="www-data" id=33 not_used

Файл конфигурации apache используется только при доступе к репозиторию с помощью http или https. Когда вы используете svn, соединение обрабатывается svnserve это совершенно отдельная программа.

Документация для svnserve доступна по адресу книга SVN или страница руководства man svnserve и man svnserve.conf. Вы можете установить корневой путь при его вызове, например:

svnserve -r /var/www

чтобы он начал искать файлы и репозитории в /var/www вместо того, чтобы сразу под /.