apache无法加载mod_authz_svn.so与mod_dav_svn.so的解决方法

发布时间:2020-04-02编辑:脚本学堂
在apache下配置svn,提示无法加载mod_authz_svn.so与mod_dav_svn.so模块,这里分享下我的解决方法,供遇到相同问题的朋友参考。

安装svn的步骤如下:
1:安装Berkeley DB(版本:db-4.2.52.NC.tar.gz)到 /usr/local/subversion 下面

2:安装apache (版本:httpd-2.0.55.tar.gz)到/usr/local/subversion下。
命令:
 

复制代码 代码示例:
./configure --prefix=/usr/local/subversion
--enable-dav --enable-so
--with-dbm=db4 --with-berkeley-db=/usr/local/subversion

3:安装SVN(版本:subversion-1.2.3.tar.gz)到/usr/local/subversion下:
 

复制代码 代码示例:
./configure --prefix=/usr/local/subversion --with-berkeley-db=/usr/local/subversion --with-apxs=/usr/local/subversion/bin/apxs

4:在httpd.conf中有如下片断:
 

复制代码 代码示例:
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 

启动Apache,老是显示:Cannot load /usr/local/apache/modules/mod_dav_svn.so into server

解决方法:
svn安装在 /usr/local/subversion,检查/usr/local/subversion/modules,里面已包含mod_authz_svn.so 与 mod_dav_svn.so。
要将他们复制或链接到apache的modules目录中才可以。

例如:
 

复制代码 代码示例:
#ln -s /usr/local/subversion/modules mod_authz_svn.so /etc/httpd/modules/mod_authz_svn.so
#ln -s /usr/local/subversion/modules mod_dav_svn.so /etc/httpd/modules/mod_dav_svn.so

然后,再返回上面的操作,加载模块,重启apache即可。

另外,补充下,如果是yum方式安装的 mod_dav_svn.so与mod_authz_svn.so模块,则它们已自动添加到/etc/httpd/conf.d中的subversion目录中了。
无需在apache配置文件中二次配置