apache2: Syntax error on line 203 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/authz_svn.load: Cannot load /usr/lib/apache2/modules/mod_authz_svn.so into server: /usr/lib/apache2/modules/mod_authz_svn.so: undefined symbol: dav_svn_get_repos_path Action 'configtest' failed.
当我尝试重新启动服务器时,在更新Ubunutu(12.10 Quantal)上的SVN后出现此错误。 所有的模块dav,dav_svn和authz_svn都在运行。 不幸的是,在我select的search引擎中search错误并没有让我更进一步。 当通过浏览器访问svn它仍然告诉版本是1.7.5.x做一个'svn帮助'它显示1.8.3.x
降级到1.7.5后,我得到这个:
Syntax error on line 203 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/authz_svn.load: Cannot load /usr/lib/apache2/modules/mod_authz_svn.so into server: libsvn_repos-1.so.0: cannot open shared object file: No such file or directory
在Ubuntu 12.04中安装了自定义的Subversion 1.7 Apache模块之后,我得到了类似的错误。 必须按照以下顺序加载模块:dav – > dav_svn_module – > authz_svn_module,以便正确加载库。 libapache2-svn Ubuntu包似乎可以在.load文件的顶部使用'Depends:'注释来处理这个问题:
/etc/apache2/mods-available/dav_svn.load:
# Depends: dav LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
/etc/apache2/mods-available/authz_svn.load
# Depends: dav_svn LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
根据我的经验,我的自定义模块基于这些依赖关系被启用/禁用,但是Apache仍然尝试按字母顺序加载/ etc / apache2 / mods-enabled / *,因此首先加载authz_svn.load并获得上述错误。 我不知道libapache2-svn包如何避免这个问题,而自定义模块则没有。
我已经解决了这个问题,完全删除了mods-available / mods-enabled dav_svn.load和authz_svn.load文件。 然后我把它放到/etc/apache2/httpd.conf中:
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
订单很重要,显然。 Apache启用mods之后加载httpd.conf,所以现在Apache为我启动。