Когда я пытаюсь импортировать проект в свой репозиторий 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>