apr dbd mysql.so_关于apache服务器加载so的报错

早上突然发现我的虚拟机上的WEB应用访问不了了,后台检查httpd服务,无法启动,出现一行提示:

①starting httpd: httpd: Syntax error on line 163 of /etc/httpd/conf/httpd.conf:

②Cannot load /etc/httpd/modules/mod_ldap.so into server:

③/etc/httpd/modules/mod_ldap.so: undefined symbol: apr_ldap_ssl_init

不得不说,apache的错误抛出机制写的真心不错,原因很清晰:

①启动httpd,httpd.conf的163行出错了:

②未能加载mod_ldap.so到apache服务器:

③未知的符号:apr_ldap_ssl_init

这个错误提示原因多是头文件缺失或者头文件和执行程序不匹配导致。

以前运行好好的,怎么突然就出错了呢?

apr_?想起来上周刚安装了最新版本的apache apr,应该是版本冲突。

执行httpd -V,看到如下信息:

========================================

[root@localhost src]# httpd -V

Server version: Apache/2.2.15 (Unix)

Server built: Oct 16 2014 14:45:47

Server's Module Magic Number: 20051115:25

Server loaded: APR 1.5.1, APR-Util 1.5.4

Compiled using: APR 1.3.9, APR-Util 1.3.9

Architecture: 32-bit

Server MPM: Prefork

threaded: no

forked: yes (variable process count)

Server compiled with....

-D APACHE_MPM_DIR="server/mpm/prefork"

=======================================

得到确认了,编译使用的是APR 1.3.9,运行时加载了APR 1.5.1(这个是我上周装的最新版),版本冲突了。

解决思路:

①重新编译apache服务器,使用高版本的APR库。

②降低我项目所使用的APR版本,保持和apache一致。

由于产品默认的apache服务器是较低版本,我选择了第二种思路。

新的问题出现了:提示找不到apr_dbd_mysql.so库。

这个看了一下编译后的APR包路径,就比较容易解决了,将apr_dbd_mysql.so文件拷贝到

/usr/lib/apr-util-1(这是低版本的APR默认加载的库路径)下就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值