Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Nikki Chumakov                       2:5020/400     19 Jul 2005  01:27:40
 To : All
 Subject : конфликт .so объектов под apache mod_perl (GD, libgd.so) и php(gd.so)
 -------------------------------------------------------------------------------- 
 
 Привет,
 
 Стоит FC4 и стандартно в нее входящие httpd-2.0.54, mod_perl-2.0.1,
 php-5.0.4, gd-2.0.33 (libgd).
 
 В апаче нужны и php и mod_perl. php использует разделяемые модули, в
 частности php-gd (/usr/lib/php/modules/gd.so), который ему нужен. Скипты
 на mod_perl используют GD, точнее GD::SecurityImage. GD использует
 /usr/lib/libgd.so.2.
 
 libgd.so содержит функции с тем же именами, что и в gd.so от php-gd, но
 с несовместимым интерфейсом или функциональностью. В результате
 происходит следующее: скрипт под mod_perl GD::SecurityImage зовет GD,
 который зовет функцию из libgd.so.2, которая зовет свои внутренние
 функции, но некоторый момент вместо них зовутся одноименные функции из
 php-gd(/usr/lib/php/modules/gd.so) и тут сервер падает.
 
 Стек в момент падения выглядит так (gdCacheGet есть в libgd.so.2 и
 gd.so, вызывается не оттуда, откуда надо).
 
 #0  0x0285653b in gdCacheGet () from /usr/lib/php/modules/gd.so
 #1  0x05d9cf90 in gdImageStringFTEx () from /usr/lib/libgd.so.2
 #2  0x05d9e384 in gdImageStringFT () from /usr/lib/libgd.so.2
 #3  0x00c641e6 in XS_GD__Image_stringFT (my_perl=0xa3e3658, cv=0xa6ef520)
       at GD.xs:2166
 #4  0x00b4998c in Perl_pp_entersub ()
      from /usr/lib/perl5/5.8.6/i386-linux-thread-multi/CORE/libperl.so
 #5  0x00b2b6e1 in Perl_runops_debug ()
      from /usr/lib/perl5/5.8.6/i386-linux-thread-multi/CORE/libperl.so
 #6  0x00ad8b9e in Perl_get_cv ()
      from /usr/lib/perl5/5.8.6/i386-linux-thread-multi/CORE/libperl.so
 #7  0x00add2e5 in Perl_call_sv ()
      from /usr/lib/perl5/5.8.6/i386-linux-thread-multi/CORE/libperl.so
 #8  0x0026de84 in modperl_callback () from /etc/httpd/modules/mod_perl.so
 #9  0x0026e819 in modperl_callback_run_handlers ()
      from /etc/httpd/modules/mod_perl.so
 #10 0x0026eac4 in modperl_callback_per_dir ()
      from /etc/httpd/modules/mod_perl.so
 #11 0x00268fa7 in modperl_response_finish ()
      from /etc/httpd/modules/mod_perl.so
 #12 0x00269241 in modperl_response_handler_cgi ()
      from /etc/httpd/modules/mod_perl.so
 #13 0x00ee2f3c in ap_run_handler () from /usr/sbin/httpd
 #14 0x00ee32d7 in ap_invoke_handler () from /usr/sbin/httpd
 #15 0x00edfe11 in ap_process_request () from /usr/sbin/httpd
 #16 0x00eda693 in _start () from /usr/sbin/httpd
 #17 0x00eedafb in ap_run_process_connection () from /usr/sbin/httpd
 #18 0x00eede30 in ap_process_connection () from /usr/sbin/httpd
 #19 0x00ee0d9e in ap_graceful_stop_signalled () from /usr/sbin/httpd
 #20 0x00ee100e in ap_graceful_stop_signalled () from /usr/sbin/httpd
 #21 0x00ee112a in ap_graceful_stop_signalled () from /usr/sbin/httpd
 #22 0x00ee1b0b in ap_mpm_run () from /usr/sbin/httpd
 #23 0x00ee888e in main () from /usr/sbin/httpd
 
 Как это можно починить, если в одном сервере хочется иметь и mod_perl:GD
 и php-gd, с минимальным изменением дистрибутива? Пересобирать все подряд
 статически не очень хочется. Может быть есть более простой способ?
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 конфликт .so объектов под apache mod_perl (GD, libgd.so) и php(gd.so)   Nikki Chumakov   19 Jul 2005 01:27:40 
 Re: конфликт .so объектов под apache mod_perl (GD, libgd.so) и php(gd.s   Sergey Leschenko   19 Jul 2005 10:33:16 
Архивное /ru.perl/657733578fac.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional