一次纠结的 svn apache 配置

in linux •  7 years ago 

今天我要配置 svn 服务器通过 web 来访问, svn 那本海龟书上介绍了通过 apache 的 mod_dav_svn 模块来完成这一目的的方法, 于是我研究了一下打算直接按照书上说的来(不知 nginx 能否实现这一目的)

我的服务器上 apache 是自己编译源码安装的, svn 是从 debian wheezy 源下的, wheezy 源中将 svn 和 svn 的 mod_dav_svn 模块分在了两个包里, mod_dav_svn 在 libapache2-svn 这个包中, 而且, 安装这个包会导致 apache2 服务器也直接被安装(这依赖关系太 TMD 犯贱了!)

我又轻微的强迫症和洁癖, 我已经有自己编译的 apache 了, 绝对不会接收 apt-get 给我的, 于是安装了 libapache2-svn 这个包后我把 mod_dav_svn.so 和 mod_authz_svn.so 这两个模块考到我的 apache 安装目录的 modules 下, 然后

sudo apt-get purge libapache2-svn 
sudo apt-get autoremove 

把刚才装的东西删了

然后运行

apxs -i -a -n dav_svn /path/to/mod_dav_svn.so
apxs -i -a -n authz_svn /path/to/mod_authz_svn.so

来将这两个模块以动态加载的方式安装, 完成后重启 apache 却启动失败, 报错 undefined symbol: ap_log_perror 之类的错误

到网上查了一下, 原因是我的 apache 是2.4版, 而debian wheezy 源上的svn是1.6版, 1.7 版的svn才开始和apache 2.4 兼容, 我查了一下 wheezy 源上的apache 版本, 是2.2版, 为了避免以后不必要的麻烦, 我下了一个apache 2.2 的源代码包, 把自己服务器上的apache 降级为 2.2 版, 重新上述过程.

仍然报错, undefined symbol: dav_do_find_liveprop 之类, google 之, 原因是未启用 mod_dav, 于是乎重新编译 apache 2.2, ./configure 加上 --enable-dav 参数, 重复上述过程, 成功!

PS: apache 2.2 似乎是默认将通过 --enable-MODULE 启用的模块静态编译, 这点通过 apachectl -M 可以看出来, 安装后的 modules/ 子目录下也没有任何生成的 so 文件. 不过这一点应该也是可以通过 ./configure 参数来控制的

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

@cifer, 棒棒哒~~~ img

hey girl, 你老公呢