无法使用SVN模块启动apache

时间:2015-03-27 23:48:04

标签: php apache svn mod-dav-svn

启动apache + SVN时出错

以下是错误 -

-bash-4.1$ ./apachectl configtest
httpd: Syntax error on line 149 of /ngs/app/istsvnp/httpd/conf/httpd.conf: Cannot load modules/mod_dav_svn.so into server: /ngs/app/istsvnp/httpd/modules/mod_dav_svn.so: undefined symbol: svn_error_purge_tracing

检查mod_dav_svn.so -

的共享库依赖项时
bash-4.1$ ldd -r /ngs/app/istsvnp/httpd/modules/mod_dav_svn.so

            linux-vdso.so.1 =>  (0x00007fff9f7ff000)
            libsvn_repos-1.so.0 => /usr/lib64/libsvn_repos-1.so.0 (0x00007f42a4b58000)
            libsvn_fs-1.so.0 => /usr/lib64/libsvn_fs-1.so.0 (0x00007f42a4950000)
            libsvn_fs_fs-1.so.0 => /usr/lib64/libsvn_fs_fs-1.so.0 (0x00007f42a4728000)
            libsvn_fs_util-1.so.0 => /usr/lib64/libsvn_fs_util-1.so.0 (0x00007f42a4526000)
            libsvn_delta-1.so.0 => /usr/lib64/libsvn_delta-1.so.0 (0x00007f42a431a000)
            libsvn_subr-1.so.0 => /usr/lib64/libsvn_subr-1.so.0 (0x00007f42a40c9000)
            libaprutil-1.so.0 => /ngs/app/istsvnp/library/lib/libaprutil-1.so.0 (0x00007f42a3ea4000)
            libexpat.so.0 => /ngs/app/istsvnp/library/lib/libexpat.so.0 (0x00007f42a3c7c000)
            libapr-1.so.0 => /ngs/app/istsvnp/library/lib/libapr-1.so.0 (0x00007f42a3a4a000)
            librt.so.1 => /lib64/librt.so.1 (0x00007f42a3842000)
            libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f42a360a000)
            libz.so.1 => /lib64/libz.so.1 (0x00007f42a33f4000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007f42a31f0000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f42a2fd2000)
            libc.so.6 => /lib64/libc.so.6 (0x00007f42a2c3e000)
            libsvn_fs_base-1.so.0 => /usr/lib64/libsvn_fs_base-1.so.0 (0x00007f42a2a0f000)
            libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007f42a277f000)
            libexpat.so.1 => /ngs/app/istsvnp/Libexpat/lib/libexpat.so.1 (0x00007f42a2557000)
            libdb-4.7.so => /lib64/libdb-4.7.so (0x00007f42a21e3000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f42a4fb9000)
            libfreebl3.so => /lib64/libfreebl3.so (0x00007f42a1f6b000)
            undefined symbol: ap_filter_flush   (/ngs/app/istsvnp/httpd/modules/mod_dav_svn.so)
            undefined symbol: svn_error_purge_tracing   (/ngs/app/istsvnp/httpd/modules/mod_dav_svn.so)
            undefined symbol: svn_repos_fs_change_rev_prop4 (/ngs/app/istsvnp/httpd/modules/mod_dav_svn.so)
            undefined symbol: svn_repos__fs_type    (/ngs/app/istsvnp/httpd/modules/mod_dav_svn.so)
            undefined symbol: dav_register_provider (/ngs/app/istsvnp/httpd/modules/mod_dav_svn.so)
            undefined symbol: ap_fputstrs   (/ngs/app/istsvnp/httpd/modules/mod_dav_svn.so)
            ......
            ......

我可以在测试框中以相同的配置启动apache,我已经安装了Apache + SVN而没有任何问题。

但是将所有必要的二进制文件复制到Production框并在那里启动apache会产生上述错误。

我已经确认LD_LIBRARY_PATH没有问题,并且通过创建tar文件和执行sftp将测试框的所有内容复制到生产框。

即使我从生产框中删除了所有Apache + SVN引用,并在测试框中重新安装了Apache + SVN模块,并再次从测试框复制二进制文件到生产框,但同样的错误发生了。

但我只能在没有SVN模块的情况下启动apache模块(即从httpd.conf中删除mod_dav_svn.so和mod_authz_svn.so)

以下是我在测试框中安装SVN的方法。

tar jxf subversion-1.8.11.tar.bz2
cd subversion-1.8.11           

./configure --prefix=/ngs/app/apstoold/ApacheAndSVN/subversion --disable-static --with-expat=/ngs/app/apstoold/ApacheAndSVN/Libexpat/include:/ngs/app/apstoold/ApacheAndSVN/Libexpat:lib --with-apxs=/ngs/app/apstoold/ApacheAndSVN/httpd/bin/apxs --with-apr=/ngs/app/apstoold/ApacheAndSVN/library/bin/apr-1-config --with-apr-util=/ngs/app/apstoold/ApacheAndSVN/library/bin/apu-1-config

make
make install

我安装了以下版本。

Server: Apache/2.4.12 (Unix) OpenSSL/1.0.2 SVN/1.8.11 PHP/5.5.21 

有人可以帮帮我吗。

由于

1 个答案:

答案 0 :(得分:1)

您显然存在依赖性问题。我不知道你正在使用哪个发行版,但我想(!)你已经手动将SVN更新到1.8.x并遇到了这些问题。可能存在多个问题:

  1. 你遇到了libapache2-svn 2.2与2.4
  2. 的问题
  3. 您遇到libsvn1 1.6.x / 1.7.x vs 1.8.x
  4. 的问题
  5. 你可能有一个loadmodule依赖问题,请看这里: https://serverfault.com/questions/540873/problems-after-updating-svn-to-1-8-3-on-ubuntu-12-10-using-wandisco-package