mod_perl.so for apache 2.4 required by bugzilla

ε祈祈猫儿з 提交于 2019-12-12 20:34:21

问题


Environment:

    SuSE SLES11 SP4, Kernel 3.0.101-68-default
    http-Server: apache 2.4.18 with OpenSSL 1.0.2e
    MySQL 5.6.29

Further either:

    SLES 11 preinstalled SW:
    Perl 5.10.0 with mod_perl v2.000004 and
    bugzilla 4.2.4 being running before.

Or new versions built from source i.e.

    perl 5.22.1 and mod_perl 2.0.9 and bugzilla -5.0.2

Starting position:

The SLES 11 preinstalled http-server Apache 2.2 with OpenSSL 0.9.8 doesn't support TLS1.2 as required today. Hence Apache 2.4 with the mentioned OpenSSL was compiled, built and installed. This runs well. To run bugzilla as before perl and mod_perl is required. Though trying hard, no attempt was successful. Neither with the preinstalled perl / mod_perl, nor with the versions built from source!

Try 1:

copy the mod_perl.so from /usr/lib64/apache2/ to the modules directory of the apache 2.4 installation and load the module within the http.conf. This results in error:

    modules/mod_perl.so: undefined symbol: ap_log_error.

Hence going on this way much more errors may appear!

Try 2:

using preinstalled perl 5.10.0 and source mod-perl 2.0.9 to build and install, using:

    perl Makefile.PL MP_APXS=/opt/apache/http/bin/apxs

this results in:

    Please repair your Module::CoreList at lib/Apache2/Build.pm line 50.
    BEGIN failed--compilation aborted at lib/Apache2/Build.pm line 65.
    Compilation failed in require at Makefile.PL line 38.
    BEGIN failed--compilation aborted at Makefile.PL line 38.

Apparently a problem with incompatible perl versions. No go!

Try 3:

Compile, build and install perl-5.22.1

In fact this was never a real problem all possible mutations tried, resulted in pass for all tests using make test. make install was always OK too, but building mod-perl failed with:

    [  error] Using Perl 5.022001 w/o ithreads and httpd-2.4.
    [  error] Failed requirements:
    [  error]   - Perl built with ithreads (build perl with -Duseithreads)

A frustrating exercise, because even using -Duseithreads I got the same error again, even after make clean. Finally after deleting the source unpacking from tar and the command:

    ./Configure -Dprefix=/opt/perl -Duseithreads -Accflags=-fPIC

I got a mod_perl.so as desired. However starting the apache server resulted in:

    ./apachectl: line 79:  5760 Segmentation fault      $HTTPD "$@"

I got stuck! I lost enough time! Is anybody out there with experience of this kind of problems? I appreciate any useful hint.


回答1:


The best answer to this question is: Don't use mod_perl! mod_perl seams to be deprecated and there is simply no mean to make it work. Use CGI instead! This works. My fault was having forgotten this. I set up bugzille 2009 using cgi. I have forgotten this fact because since it was just working fine. I never touched again until upgrading for new versions. While mod_php is still in use, for perl use cgi and reverse proxy!



来源:https://stackoverflow.com/questions/35742834/mod-perl-so-for-apache-2-4-required-by-bugzilla

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!