1

У меня есть настройка SVN на моем домашнем сервере, я пытаюсь заставить работать htaccess, чтобы я мог защитить паролем папку /var /www /html /svn /repos, где хранится весь мой код.

Файл subversion.conf выглядит так:

<Location /repos>
   DAV svn
   SVNPath /var/www/html/svn/repos

   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthBasicProvider file
      AuthName "Subversion repos"
      # AuthUserFile /etc/svn-auth-conf
      AuthUserFile /home/myname/passwordfile
      Require valid-user
   </LimitExcept>
</Location>

Файл паролей на месте, и я добавил имя пользователя и пароль. Я подтвердил его работу, поместив тестовую папку в каталог html (/var/www/html/test/index.html), я также добавил файл .htaccess, поэтому при включении apache и попытке доступа к http://IP_ADDRESS_OF_HOME_SERVER/test/index.html , мне предлагается ввести имя пользователя и пароль.

По какой-то причине у меня просто не запрашивается имя пользователя и пароль при попытке доступа к http://IP_ADDRESS_OF_HOME_SERVER/repos/

Любая помощь приветствуется.

2 ответа2

1

Когда вы настраиваете SVN-доступ следующим образом, URL-адрес http://IP_ADRESS_OF_HOME_SERVER/repos/ указывает на виртуальную папку. Из-за этого веб-сервер не будет знать, где искать файл .htaccess для этого адреса.

Вы включили LimitExcept в вашу конфигурацию, и это говорит Apache не запрашивать действительное имя пользователя и пароль для простого просмотра хранилища.

Из-за этого вы должны настроить доступ к хранилищу, как у вас уже есть, за одним исключением, вы делаете это для всех запросов, а не только для записей. Файл .htaccess предназначен для файлов, размещенных на вашем сервере и не используемых вообще, так как пути SVN являются виртуальными.

Ваша конфигурация должна выглядеть примерно так:

<Location /repos>
   DAV svn
   SVNPath /var/www/html/svn/repos

   # Require SSL connection for password protection.
   # SSLRequireSSL

   #Require all access to log in
   AuthType Basic
   AuthBasicProvider file
   AuthName "Subversion repos"
   # AuthUserFile /etc/svn-auth-conf
   AuthUserFile /home/myname/passwordfile
   Require valid-user
</Location>
0

Ойвинд на правильном пути, он пропустил только директиву NameVirtualHost, которая позволяет SVN обрабатывать запросы на основе IP и запрашивать действительного пользователя.

Вот пример:(замените 127.0.0.1 на ваш ip, а 80 на ваш порт)

NameVirtualHost 127.0.0.1:80
<VirtualHost your.svnhost.tld:80>
    ServerName your.svnhost.tld
    <Location /repos>
    DAV svn
    SVNPath /your/svn/path
    AuthType Basic
    AuthUserFile /your/svn-auth-file
    Require valid-user
    </Location>
</VirtualHost>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .