Невозможно зафиксировать в SVN-хранилище через http

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

Не могу создать каталог '/usr/local/svn/myproj/db/transactions/0-1.txn': разрешение отклонено

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

[Ср. 17 фев. 23:56:33 2010] [ошибка] [клиент 24.205.225.190] Не удалось создать действие /svn/myproj/! Svn/act/9c0a8481-8edd-4be0-be2d-164c700616ba.  [500, #0]
[Среда, 17 февраля, 23:56:33 2010] [ошибка] [клиент 24.205.225.190] не может начать транзакцию [500, #13]
[Среда, 17 февраля, 23:56:33 2010] [ошибка] [клиент 24.205.225.190] Невозможно создать каталог '/usr/local/svn/myproj/db/transactions/0-1.txn': разрешение отклонено [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

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

4 ответа

Решение

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

Вы можете настроить 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 создать /usr/local/svn/insert_your_projectname

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

chown -R httpd:httpd /usr/local/svn
chmod -R 755 /usr/local/svn
перезапуск службы httpd

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

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

<Местоположение / svn>
    DAV свн
    SVNParentPath / var / www / svn
    
        AuthType Basic
        AuthName "Репозитории Subversion"
        AuthUserFile /etc/svn-auth-conf
        Требуется действительный пользователь
    
Другие вопросы по тегам