在Ubuntu上使用ApacheconfigurationSVN的问题 – 500提交时出错

我正在尝试在Apache上使用DAVconfigurationSVN服务器。 根据互联网资源(例如https://help.ubuntu.com/10.04/serverguide/subversion.html ),在Ubuntu上安装所有这些应该是非常简单的。 而且,在安装和创build第一个存储库期间,没有任何错误,除了在项目文件的初始导入期间(我通过HTTP访问存储库)的问题。 我在SVN客户端(KDESVN)中看到的是以下消息:

Server sent unexpected return value (500 Internal Server Error) in response to PROPFIND request for 'http://.../svn/myproject/trunk/test.txt' 

在Apache的error.log中没有任何关于这个错误的信息,而且在DAV中我configuration了自定义日志svn.log 。 在access.log有几行logging活动,这其中包括:

 {IP} - - [18/Mar/2014:22:47:24 -0300] "PROPFIND /svn/myproject/trunk/test.txt HTTP/1.1" 500 1150 "-" "SVN/1.7.9/SvnQt wrapper client neon/0.29.6" 

没有更多的细节。

我的configuration如下。

/etc/apache2/mods-enabled/dav_svn.conf:

 <Location /svn> DAV svn SVNParentPath /var/www/svn-repos SVNListParentPath On #SVNPathAuthz Off AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/passwd Require valid-user LimitXMLRequestBody 0 </Location> CustomLog ${APACHE_LOG_DIR}/svn.log "%t %u %{SVN-ACTION}e" env=SVN-ACTION 

/var/www/svn-repos权限:

 sudo chmod -R 777 /var/www/svn-repos sudo chown -R www-data:www-data /var/www/svn-repos 

有一个用户添加到/etc/apache2/passwd哪些数据用在KDESVN和命令行中--username--password参数。

版本:

  • Ubuntu 12.04.4 LTS i386
  • 阿帕奇/ 2.2.22
  • SVN 1.6.17(r1128011)

我能够创build初始库结构(/ trunk,/ tags,/ branches),使用file:///...在本地提交,并且能够在客户端或浏览器中列出它。 但是当我使用http://从远程机器commit时,出现上述错误。

我尝试了每个解决scheme,我可以find这个错误:

  • 将存储库位置从/ home / svn更改为/ var / www / svn-repos
  • 更改存储库的权限和所有权(我检查了两次,www-data是Apache的用户) – 即使使用可笑的777也没有帮助
  • 在DAVconfiguration中只保留DAV svn \ SVNParentPath /var/www/svn-repos
  • 更改日志loglevel以在apache2.conf进行debug – 在日志中我看不到更多有用的信息

没什么帮助。 还是一样的错误。

有没有一种configuration更好的日志logging的方法,只是看看这个神秘的500 Internal Server Error什么? 如何找出我错过了什么?

为了您的build议,请提前致谢。

尝试启用重写日志来validation您没有与dav_svn干扰的mod_rewrite规则。 对于usvn,我遇到了同样的症状。

您可以启用重写日志logging(确保在完成debugging后禁用):

 RewriteLog "/usr/local/var/apache/logs/rewrite.log" RewriteLogLevel 3 

我通过在我的.htaccess文件中添加一行来解决我的问题,以排除dav_svn存储库的子目录:

 <Files *.ini> Order Allow,Deny Deny from all </Files> php_flag short_open_tag on php_flag magic_quotes_gpc off RewriteEngine on #RewriteCond RewriteBase "//usvn/" RewriteRule ^svn/ - [L,NC] # This is the line I added to exclude this path RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]