mod_perl.so用于bugzilla所需的apache 2.4

时间:2016-03-02 09:14:39

标签: linux apache perl bugzilla

环境:

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

进一步:

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

或者 从源代码构建的新版本,即

    perl 5.22.1 and mod_perl 2.0.9 and bugzilla -5.0.2

起始位置:

SLES 11预装的http-server Apache 2.2与OpenSSL 0.9.8并不支持今天所需的TLS1.2。 因此编译,构建和安装了Apache 2.4与提到的OpenSSL。运行良好。像以前一样运行bugzilla perl和mod_perl是必需的。虽然努力,但没有尝试成功。既不预装perl / mod_perl,也不使用源代码构建的版本!

尝试1:

将mod_perl.so从/ usr / lib64 / apache2 /复制到apache 2.4安装的modules目录,并在http.conf中加载模块。这会导致错误:

    modules/mod_perl.so: undefined symbol: ap_log_error.

因此,这样会出现更多错误!

尝试2:

使用预安装的perl 5.10.0和source mod-perl 2.0.9构建和安装,使用:

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

这导致:

    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.

显然是perl版本不兼容的问题。不行!

尝试3:

编译,构建和安装perl-5.22.1

事实上,所有可能的突变尝试都不是真正的问题,导致使用make测试通过所有测试。 make install也一直没问题,但构建mod-perl失败了:

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

令人沮丧的练习,因为即使使用-Duseithreads我也会再次出现同样的错误,即使在make clean之后也是如此。最后在从tar和命令中删除源解包后:

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

我根据需要得到了一个mod_perl.so。 但是,启动apache服务器导致:

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

我被卡住了!我失去了足够的时间!是否有人有这种问题的经验? 我感谢任何有用的提示。

1 个答案:

答案 0 :(得分:1)

这个问题的最佳答案是:不要使用mod_perl! mod_perl接缝被弃用,没有任何意义可以使它工作。请改用CGI!这有效。我的错是忘记了这一点。我使用cgi设置了bugzille 2009。我忘记了这个事实,因为它只是工作正常。在升级到新版本之前,我再也没有碰过。虽然mod_php仍然在使用,但对于perl使用cgi和反向代理!