环境:
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 "$@"
我被卡住了!我失去了足够的时间!是否有人有这种问题的经验? 我感谢任何有用的提示。
答案 0 :(得分:1)
这个问题的最佳答案是:不要使用mod_perl! mod_perl接缝被弃用,没有任何意义可以使它工作。请改用CGI!这有效。我的错是忘记了这一点。我使用cgi设置了bugzille 2009。我忘记了这个事实,因为它只是工作正常。在升级到新版本之前,我再也没有碰过。虽然mod_php仍然在使用,但对于perl使用cgi和反向代理!