Ошибка при попытке использовать XML :: Parser под modperl2 - не удалось загрузить модуль - PullRequest
0 голосов
/ 03 апреля 2012

Я столкнулся с проблемой при использовании XML :: Parser в нашей настройке modperl на производстве (в AIX 5.3).Он отлично работает в разработке, но не работает на производстве со следующей ошибкой:

    [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 с использованием пакета (один и тот же в dev и live), и обапоказать тот же вывод из 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)

Я пытался настроить LIBPATH как в наших точечных файлах, так и в нашей конфигурации mod_env, но безуспешно.Я не ожидаю, что кто-то узнает точный ответ, но у меня закончились идеи относительно того, что я могу попробовать, поэтому я надеюсь, что некоторые предложения будут опробованы.

РЕДАКТИРОВАТЬ: Я должен также указать начто тот же скрипт, использующий XML :: Parser, прекрасно работает как обычный скрипт cgi-bin на нашем живом сервере.

1 Ответ

0 голосов
/ 03 апреля 2012

Одна мысль: может быть, на вашем сервере Prod установлены два разных XML :: Parser.Ваш CGI выбирает один, а ваш скрипт - другой?

Распечатайте @INC из скрипта (на prod и dev) и из вашего рабочего CGI и сравните результат.

regards,

...