首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载mod_perl.so时出错

加载mod_perl.so时出错
EN

Stack Overflow用户
提问于 2013-02-26 17:08:15
回答 1查看 7.4K关注 0票数 2

我已经安装了perl-5.8.9、mod_perl-2.0.7、Embperl-2.3.0和httpd-2.2.22。在启动apache时,我得到如下错误信息(为了可读性,我将其分成多行):

代码语言:javascript
复制
httpd: Syntax error on line * of ../conf/httpd.conf:
   Cannot load ../Apache2/mod_perl.so into server:
      libperl.so: cannot open shared object file:
         No such file or directory

通过执行ldd ../Apache2/mod_perl.so,我得到了如下输出

代码语言:javascript
复制
    linux-gate.so.1 =>  (0x00735000)
    libperl.so => not found
    libnsl.so.1 => /lib/libnsl.so.1 (0x005e5000)
    libdl.so.2 => /lib/libdl.so.2 (0x00fab000)
    libm.so.6 => /lib/libm.so.6 (0x0041f000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x0084d000)
    libutil.so.1 => /lib/libutil.so.1 (0x00110000)
    libc.so.6 => /lib/libc.so.6 (0x00197000)
    /lib/ld-linux.so.2 (0x00163000)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-01 03:03:39

这个问题可以有效地转移到Unix和Linux SE上。

您似乎安装了不太兼容的软件包,或者一个或多个软件包没有正确安装,或者安装说明缺少一个步骤,或者动态链接器的默认设置不是预期的。

libperl (毫不奇怪)是perl的一部分。在某些平台上,普通的perl默认构建将只创建libperl.a静态库,但也可以改为创建动态库libperl.so,或者两者都创建。一些人喜欢.so方法,尽管它可能有一些性能开销。

您的问题最可能的原因是:

  1. 已安装的perl只有静态的libperl.a,但mod_perl是在动态perl的基础上构建的,其中安装了perl libperl.so包,而动态链接器看起来并不像

解决原因#1意味着找到不同的、兼容的软件包(或者可能是组合的软件包)。

如果它是#2,你应该能够找到libperl.so (像/usr/local/lib/perl5/5.8.9/mach/CORE/这样的地方),或者直接运行ldd /usr/local/bin/perl (无论新的perl二进制文件安装到哪里),看看它是否知道它在哪里。

在尝试下面建议的任何更改之前,只需以根用户身份运行ldconfig,然后重试,以防修复它。

如果在新的lib/安装目录下找到libperl.so,那么可以将该文件复制到ApacheELF子目录中,因为应该构建lib/(使用ELF )以将该目录包括在库搜索路径中。如果您在/usr/local/lib下找到它,那么您应该修改默认链接器配置(/etc/ld.so.conf)以包含该目录,然后刷新(以根用户身份运行ldconfig )。

您的平台显然是Linux,但是您没有说明包的类型和来源,或者它是否是源代码构建,所以我不能更准确地说……

我有点怀疑有什么东西没有正确安装,因为Apache模块的常规位置是在modules/子目录中,而不是直接在ServerRoot中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15085095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档