Can't commit to SVN configured in root of Apache named virtual host

При попытке комита в репозиторий с таким вот конфигом:

# SVN in root of virtual host
<VirtualHost x.y.z.s:pppp>
ServerName svn.domain.com
ServerAdmin info@svn.domain.com
DocumentRoot /home/admin/web/svn.domain.com/public_html
ErrorLog /var/log/httpd/domains/svn.domain.com.error.log

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location />

DAV svn
SVNListParentPath on
SVNParentPath /home/admin/web/svn.domain.com/public_svn
AuthType Basic
AuthName "Restricted Area"
Deny from all
AuthUserFile /home/admin/web/svn.domain.com/conf/htpasswd
Satisfy Any
Require valid-user
</Location>
<Files ~>
Order allow,deny
Allow from all
Satisfy all
</Files>
</VirtualHost>

будет происходить ошибка. В логах Apache:
(20014)Internal error: Can't open file '/home/admin/web/svn.domain.com/public_svn/error/format': No such file or directory


К проблеме могут приводить несколько причин:

  • SVNParentPath находится внутри DocumentRoot. Лучше разнести их в разные папки одного уровня.
  • Наличие ErrorDocument XXX /pathtofile, в том числе в главных конфигах Apache.


Так что, чтобы избавится от проблемы можно изменить location c / на /svn
Или удалить все кастомные эрроры (ErrorDocument 403 /error/403.html) которые могут быть применены к этому виртуальному хосту. Как минимум из конфигов httpd.conf и localized-error-pages.


Shortly for english-speaking users
If you have errors with committing to svn (mod_svn) configured in root of apache virtual host:
(20014)Internal error: Can't open file '/home/admin/web/svn.domain.com/public_svn/error/format': No such file or directory


  • You just need remove all affecting this vhost custom errors - ErrorDocument XXX /pathtofile
    You can find them in httpd.conf etc.
  • Don't set SVNParentPath inside DocumentRoot

Коментарі

Популярні публікації