使用Apache 2.4.26和Perl 5.10.1安装mod_perl 2.0.10时出现“undefined symbol:mg_free_type”

时间:2017-06-26 19:28:30

标签: linux apache perl centos6 mod-perl2

我正在尝试安装mod_perl 2.0.10以用于新的Apache 2.4实例。我已经启动并运行了Apache 2.4.26,但我还需要安装mod_perl才能使用几个模块。

问题在于:mod_perl总是无法通过其测试声明:

Syntax error on line 82 of .../t/conf/httpd.conf: Cannot load .../src/modules/perl/mod_perl.so into server: .../src/modules/perl/mod_perl.so: undefined symbol: mg_free_type

我能找到的唯一信息是:Error when installing mod_perl2。不幸的是,它没有解决问题。

使用CentOS 6.8版(最终版) x86_64 x86_64 x86_64 GNU / Linux

日志中的更多内容:

> make test
cd "src/modules/perl" && make
make[1]: Entering directory `/software/apa/mod_perl/mod_perl-2.0.10/src/modules/perl'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/software/apa/mod_perl/mod_perl-2.0.10/src/modules/perl'
...
make[1]: Leaving directory `/software/apa/mod_perl/mod_perl-2.0.10/xs'
/usr/bin/perl -Iblib/arch -Iblib/lib \
    t/TEST -clean
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/bin/perl /software/apa/mod_perl/mod_perl-2.0.10/t/TEST -clean
APACHE_TEST_APXS= APACHE_TEST_GROUP= APACHE_TEST_HTTPD= APACHE_TEST_PORT= APACHE_TEST_USER= \
    /usr/bin/perl -Iblib/arch -Iblib/lib \
    t/TEST -bugreport -verbose=0 
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/bin/perl /software/apa/mod_perl/mod_perl-2.0.10/t/TEST -bugreport -verbose=0
/software/apa/apa24/bin/httpd.prefork  -d /software/apa/mod_perl/mod_perl-2.0.10/t -f /software/apa/mod_perl/mod_perl-2.0.10/t/conf/httpd.conf -D APACHE2 -D APACHE2_4 -D PERL_USEITHREADS
using Apache/2.4.26 (prefork MPM)

waiting 300 seconds for server to start: .httpd.prefork: Syntax error on line 82 of /software/apa/mod_perl/mod_perl-2.0.10/t/conf/httpd.conf: Cannot load /software/apa/mod_perl/mod_perl-2.0.10/src/modules/perl/mod_perl.so into server: /software/apa/mod_perl/mod_perl-2.0.10/src/modules/perl/mod_perl.so: undefined symbol: mg_free_type
[  error] 
server has died with status 255 (t/logs/error_log wasn't created, start the server in the debug mode)
sh: line 1:  3359 Terminated              /usr/bin/perl /software/apa/mod_perl/mod_perl-2.0.10/t/TEST -bugreport -verbose=0
make: *** [run_tests] Error 143

2 个答案:

答案 0 :(得分:1)

此问题已在2018年1月4日的mod_Perl补丁中修复: https://github.com/apache/mod_perl/commit/f4d886fdf7d79d54a0647336b5623b840a053eab

使用此git源代码版本来修复问题,或将Perl升级到v5.13.6 +

Perl v5.13.6 +源代码中引入的Perl更改。

答案 1 :(得分:0)

我通过升级到Perl 5.14.0或更新版本解决了这个问题。

在Perl文档中,mg_free_type首次出现在版本5.14.0中。您可以在“魔法函数”下看到它不在5.12.4中列出但位于5.14.0

我不确定这是否是正确的解决方案,因为mod_perl2.0将Perl 5.6.1列为最低版本:https://perl.apache.org/docs/2.0/user/install/install.html#item_Perl