Невозможно зафиксировать в 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 / svnAuthType Basic AuthName "Репозитории Subversion" AuthUserFile /etc/svn-auth-conf Требуется действительный пользователь LimitExcept> Location>