【问题标题】:Error when trying to use XML::Parser under modperl2 - Could not load module尝试在 modperl2 下使用 XML::Parser 时出错 - 无法加载模块
【发布时间】:2012-04-16 23:17:33
【问题描述】:

我在生产中(在 AIX 5.3 上)的 modperl 设置下使用 XML::Parser 时遇到了问题。它在开发中工作正常,但在生产中失败并出现以下错误:

    [Tue Apr 03 08:44:03 2012] [error] Can't load '/wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so' for mo
ule XML::Parser::Expat: Could not load module /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so.\n\tDepe
dent module /wload/es1p/app/usr/local/apache2/lib/libexpat.a(libexpat.so.1) could not be loaded.\n\tMember libexpat.so.1 is not fou
d in archive \nCould not load module /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so.\n\tDependent mod
le /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so could not be loaded. at /wload/es1p/app/perl/lib/5.
0.1/aix/DynaLoader.pm line 200.\n at /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/XML/Parser.pm line 18\nCompilation failed in req
ire at /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/XML/Parser.pm line 18.\nBEGIN failed--compilation aborted at /wload/es1p/app/p
rl/lib/site_perl/5.10.1/aix/XML/Parser.pm line 22.\nCompilation failed in require at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/
Path/XMLParser.pm line 7.\nBEGIN failed--compilation aborted at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/XPath/XMLParser.pm li
e 7.\nCompilation failed in require at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/XPath.pm line 13.\nBEGIN failed--compilation a
orted at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/XPath.pm line 13.\nCompilation failed in require at /wload/es1p/app/perl/lib
site_perl/5.10.1/Net/SAML2/IdP.pm line 23.\nBEGIN failed--compilation aborted at /wload/es1p/app/perl/lib/site_perl/5.10.1/Net/SAML
/IdP.pm line 23.\nCompilation failed in require at /wload/es1p/app/perl/lib/site_perl/5.10.1/Net/SAML2.pm line 69.\nBEGIN failed--c
mpilation aborted at /wload/es1p/app/perl/lib/site_perl/5.10.1/Net/SAML2.pm line 69.\nCompilation failed in require at /wload/es1p/
pp/usr/local/apache2/perl-bin/sso.pl line 4.\nBEGIN failed--compilation aborted at /wload/es1p/app/usr/local/apache2/perl-bin/sso.pl

expat/expat-devel 库使用一个包安装到 /opt/freeware/lib 中(开发和实时版本相同),两者都显示来自 ldd Expat.so 的相同输出:

Expat.so needs:
     /usr/lib/libc.a(shr.o)
     /opt/freeware/lib/libexpat.a(libexpat.so.1)
     /unix
     /usr/lib/libcrypt.a(shr.o)

我尝试在我们的 dotfiles 和 mod_env 配置中设置 LIBPATH,但没有成功。我不希望有人知道确切的答案,但我已经没有什么可以尝试的想法了,所以我希望有一些建议可以尝试。

编辑:我还应该指出,使用 XML::Parser 的相同脚本在我们的实时服务器上与普通 cgi-bin 脚本一样完美。

【问题讨论】:

    标签: perl aix mod-perl2 expat-parser


    【解决方案1】:

    一个想法:也许在您的产品服务器上安装了两个不同的 XML::Parser。您的 CGI 选择一个,您的脚本选择另一个?

    从脚本(在 prod 和 dev 上)和您的工作 CGI 中打印出 @INC 并比较结果。

    问候,

    【讨论】:

      猜你喜欢
      • 2018-03-05
      • 2012-03-09
      • 2020-04-30
      • 2017-12-27
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      相关资源
      最近更新 更多