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

Не удается выполнить фиксацию в репозиторий SVN через http

Когда я пытаюсь импортировать проект в свой репозиторий Subversion через http, я получаю такую ​​ошибку:

Can't create directory '/usr/local/svn/myproj/db/transactions/0-1.txn': Permission denied

Я установил httpd LogLevel для отладки и получил это в конце вывода:

[Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190] Could not create activity /svn/myproj/!svn/act/9c0a8481-8edd-4be0-be2d-164c700616ba.  [500, #0]
[Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190] could not begin a transaction  [500, #13]
[Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190] Can't create directory '/usr/local/svn/myproj/db/transactions/0-1.txn': Permission denied  [500, #13]

Вот соответствующий раздел моего файла httpd.conf:

<Location /svn>
    DAV svn
    SVNParentPath /usr/local/svn
    AuthType Basic
    AuthName "Subversion Repositories"
    AuthUserFile /etc/svn-auth-conf
    Require valid-user
</Location>

Я пытаюсь импортировать проект из NetBeans, используя URL-адрес http: // myhostname / svn / myproj.

Я использую CentOS linux.

Исправления этой проблемы, которые я нашел в Интернете, заключаются в том, чтобы установить репозиторий (и включающую папку), чтобы он принадлежал пользователю apache, и измените разрешения для него. Я безуспешно пробовал следующее:

$ chown -R apache.apache /usr/local/svn
$ chmod -R 755 /usr/local/svn
$ service httpd restart

Я не могу понять, что еще попробовать. Пожалуйста помоги!

Вы можете настроить SVN в SVNParentPath / usr / local / svn или по любому пути, который хотите, но вам нужно что-то сделать.

Следуйте этому шагу.

  run command 
                chcon -t httpd_sys_content_t  /usr/local/svn

Ps, - chcon - это команда переименовывает файлы.

- The httpd_sys_content_t type allows the httpd process to access that file.

Вы уже создали или переместили существующий каталог репозитория в это место?

svnadmin create /usr/local/svn/insert_your_projectname

Затем обновите разрешения

chown -R httpd:httpd /usr/local/svn
chmod -R 755 /usr/local/svn
service httpd restart

Я предполагаю, что у вас включен SELinux (нормально для установки CentOS по умолчанию). Я считаю, что политика безопасности для httpd запрещает ему доступ к файлам вне /var/www по умолчанию. Это, конечно, не позволяет получить доступ к /usr/local. С помощью /var/www/svn поскольку расположение репозитория предотвратит отказ в доступе со стороны SELinux.

Я получил его, работая со следующими изменениями, хотя я не уверен, в чем проблема.

Я переместил каталог svn в / var / www и внес следующие изменения в файл httpd.conf:

<Location /svn>
    DAV svn
    SVNParentPath /var/www/svn
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        AuthType Basic
        AuthName "Subversion Repositories"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
    </LimitExcept>
</Location>