zoukankan      html  css  js  c++  java
  • 关于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默认加载的库路径)下就行了。

  • 相关阅读:
    我的第一个作业
    团队任务3:第一次冲刺
    课后作业3:个人项目(词频统计及其效能分析)
    课后作业2:个人项目
    一切的开始,从未有过的改变——课后作业1:准备
    Fiddler 添加IP显示、响应时间功能
    Jmeter所有结果分析
    云盘资源爬取利器 fmv
    python 中的 sys , os 模块用法总结
    Python 编写登录接口
  • 原文地址:https://www.cnblogs.com/yoyotl/p/4698958.html
Copyright © 2011-2022 走看看