Apache Ubuntu+;SVN:无法打开请求的SVN文件系统
我知道这个问题已经被问了很多次了。我相信我理解答案,但我仍然没有运气 我尝试了Apache Ubuntu+;SVN:无法打开请求的SVN文件系统,apache,svn,ubuntu,webdav,Apache,Svn,Ubuntu,Webdav,我知道这个问题已经被问了很多次了。我相信我理解答案,但我仍然没有运气 我尝试了one repo和multiple repo配置,这两种配置都有相同的问题 因此,对于我感兴趣的配置: <Location /svn> DAV svn #SVNPath /media/ssd/svn/test SVNParentPath /media/ssd/svn SVNListParentPath On AuthType Basic AuthName "Subversion Re
one repo
和multiple repo
配置,这两种配置都有相同的问题
因此,对于我感兴趣的配置:
<Location /svn>
DAV svn
#SVNPath /media/ssd/svn/test
SVNParentPath /media/ssd/svn
SVNListParentPath On
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
项目内部
luso@bender:/media/ssd/svn/test$ ls -lart
total 32
-rw-r--r-- 1 www-data svn 229 2012-09-24 22:13 README.txt
drwxr-sr-x 2 www-data svn 4096 2012-09-24 22:13 locks
drwxr-sr-x 2 www-data svn 4096 2012-09-24 22:13 hooks
drwxr-sr-x 2 www-data svn 4096 2012-09-24 22:13 conf
-r--r--r-- 1 www-data svn 2 2012-09-24 22:13 format
drwxr-sr-x 6 www-data svn 4096 2012-09-24 22:13 .
drwxrwsr-x 4 www-data svn 4096 2012-09-24 22:31 ..
drwxr-sr-x 6 www-data svn 4096 2012-09-24 22:40 db
用户luso和www-data都在svn和www数据组中。但是,当/system/administration/users and groups时,如果我选择www数据用户,则会出现一个警告:此帐户已禁用??如果我尝试启用它,它会要求我设置密码。不是我干的
/介质/ssd是我的/dev/sdc驱动器(ssd驱动器)
我可以共同使用file://协议
luso@bender:~$ svn co file:///media/ssd/svn/test test
A test/.classpath
A test/.project
A test/target
A test/target/test-my-app-0.0.1-SNAPSHOT.jar
...
...
但是,
luso@bender:~$ svn co http://localhost/svn/test test and
luso@bender:~$ svn co http://localhost/svn/test/trunk test
带我到:
Authentication realm: <http://localhost:80> Subversion Repository
Password for 'luso':
svn: Could not open the requested SVN filesystem
与:
SVNPath /media/ssd/svn/test
#SVNParentPath /media/ssd/svn
#SVNListParentPath On
并重新加载/重新启动apache2
同样,当尝试通过https://访问时也会发生同样的情况,而https://工作正常
我读到一些东西表明SELinux有事要做,但我不敢改变这一点。我真的不知道如何
这可能是与权限的某种冲突吗?/media/ssd驱动器归luso所有。。。(不知道,只是猜测)
还有其他线索吗
我正在运行Ubuntu 10.04、Apache2和StackOverflow:D
谢谢大家
编辑:根据p_strand的建议,我添加了一行
AuthzSVNAccessFile /etc/apache2/svn-policy-file
在dav_svn.conf配置中
现在,如果我尝试http://localhost/svn/test
它保持不变,如果我尝试http://localhost/svn
我得到了一个403禁止
luso@bender:/media/ssd/svn$ ls -lart
total 16
drwx------ 7 luso luso 4096 2012-09-15 16:20 ..
这可能是您的问题-虽然www数据用户可以访问存储库目录,但其父目录
/media/ssd
却不能。它及其树上的所有父目录至少需要world execute权限(rwx--x--x
或711)。不需要允许www数据用户读取这些目录,但它确实需要能够进入这些目录(这是目录的执行位的含义)。如果有人遇到类似问题,我的解决方案如下:
我将文件“/var/svn/format”归root所有,尽管设置了所有权限(777),apache不想读取root所有的文件。
只要一个简单的
chown
命令就解决了这个问题 太好了,成功了!我猜这和那件事有关。@luso你是怎么解决的?你能解释一下答案吗?对不起,我不明白你在说什么?伙计,请不要把加密的答案放在只有你和上帝才能理解的地方
SVNPath /media/ssd/svn/test
#SVNParentPath /media/ssd/svn
#SVNListParentPath On
AuthzSVNAccessFile /etc/apache2/svn-policy-file
luso@bender:/media/ssd/svn$ ls -lart
total 16
drwx------ 7 luso luso 4096 2012-09-15 16:20 ..