gpt4 book ai didi

linux - 使用 Apache 2.4.26 和 Perl 5.10.1 安装 mod_perl 2.0.10 时出现 "undefined symbol: mg_free_type"

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:30 25 4
gpt4 key购买 nike

我正在尝试安装 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

最佳答案

此错误是在 mod_perl 2.0.10 中添加对 perl 版本 5.22 的支持时引入的:https://github.com/apache/mod_perl/commit/82827132efd3c2e25cc413c85af61bb63375da6e#diff-0a249c57fb8151f85647e167a883be1b

然后在 2018 年 1 月 4 日 (2.0.11-dev) 的 mod_Perl 补丁中修复: https://github.com/apache/mod_perl/commit/f4d886fdf7d79d54a0647336b5623b840a053eab

要解决此问题,您必须从 this commit of mod_perl 2.0.11-dev 的源代码进行编译(或主干版本)来解决问题,如果您有 perl <=5.13.6,或者如果您可以将 Perl 升级到版本 >5.13.6,则可以使用 mod_perl 2.0.10 进行编译。

此 Perl 提交中的 Perl 版本 5.13.6 源代码中引入了 Perl 中的此更改: https://perl5.git.perl.org/perl.git/commit/d908838680ec40ea0e85f59ee66f5f56a225f9b4

src/modules/perl/modperl_env.c 中的 mod_perl 修复(最后 2.0.11-dev )使用 mg_free 的上下文用法来修复问题:

#if MP_PERL_VERSION_AT_LEAST(5, 13, 6)
mg_free_type((SV*)ENVHV, PERL_MAGIC_env);
#else
mg_free((SV*)ENVHV);
#endif

关于linux - 使用 Apache 2.4.26 和 Perl 5.10.1 安装 mod_perl 2.0.10 时出现 "undefined symbol: mg_free_type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44767291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com