Не работают perl-модули с 'use nginx'

snick nginx-forum на nginx.us
Пн Авг 23 15:25:32 MSD 2010


Не проходит тест пустого perl-модуля, в
котором только 'use nginx' - XSLoader не может
найти символ 'ngx_http_core_module' в nginx.so.

Steps to reproduce:
[code]
> h2xs -X testmod
> cd Testmod
> vi lib/Tesmod.pm # add "use nginx;" after "# Preloaded methods go
here."
> perl Makefile.PL
> make
> make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/Testmod.t .. 1/1 
#   Failed test 'use Testmod;'
#   at t/Testmod.t line 9.
#     Tried to use 'Testmod'.
#     Error:  Can't load
'/usr/local/lib/perl5/site_perl/5.8.9/mach/auto/nginx/nginx.so' for
module nginx:
/usr/local/lib/perl5/site_perl/5.8.9/mach/auto/nginx/nginx.so: Undefined
symbol "ngx_http_core_module" at
/usr/local/lib/perl5/5.8.9/mach/XSLoader.pm line 70.
#  at /usr/local/lib/perl5/site_perl/5.8.9/mach/nginx.pm line 53
# Compilation failed in require at
/home/snick/Testmod/blib/lib/Testmod.pm line 33.
# BEGIN failed--compilation aborted at
/home/snick/Testmod/blib/lib/Testmod.pm line 33.
# Compilation failed in require at (eval 6) line 2.
# BEGIN failed--compilation aborted at (eval 6) line 2.
# Looks like you failed 1 test of 1.
t/Testmod.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 

Test Summary Report
-------------------
t/Testmod.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  0 wallclock secs ( 0.03 usr  0.01 sys +  0.03 cusr 
0.01 csys =  0.08 CPU)
Result: FAIL
Failed 1/1 test programs. 1/1 subtests failed.
*** Error code 1
[/code]

Проверено в конфигурациях:
FreeBSD 7.2-RELEASE, nginx 0.7.67/0.7.65, perl 5.8.9
Debian 5.0.5, nginx 0.7.65/0.7.67/0.8.49, perl 5.10.0
Mac OS X 10.6.4, nginx 0.7.65, perl 5.10.0

Все перловые модули устанавливались
через CPAN непосредственно перед сборкой
nginx.

nginx -V для FreeBSD:
[code]
--prefix=/usr/local/etc/nginx \
--with-cc-opt='-I /usr/local/include' \
--with-ld-opt='-L /usr/local/lib' \
--conf-path=/usr/local/etc/nginx/nginx.conf \
--sbin-path=/usr/local/sbin/nginx \
--pid-path=/var/run/nginx.pid \
--error-log-path=/var/log/nginx-error.log \
--user=www --group=www \
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp \
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp \
--http-log-path=/var/log/nginx-access.log \
--with-http_perl_module \
--with-http_stub_status_module \
--with-pcre
[/code]

Как решить эту проблему?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,122673,122673#msg-122673




Подробная информация о списке рассылки nginx-ru