在没有线程的情况下编译 Perl

Compile Perl without threads

我正在编译 Perl 5.30.1 并将使用 mod_perl 2.0.11 和 Apache 2.4.41。

如果我尝试用 perl MakeFile.pm 编译 mod_perl 我得到

Configuring Apache/2.4.41 mod_perl/2.0.11 Perl/v5.30.1
Using Perl 5.030001 w/o ithreads and httpd-2.4.
Failed requirements: Perl built with ithreads (build perl with -Duseithreads)

我们不使用线程,所以感觉最简单的方法就是从 Perl 编译选项中删除它...

我看到有人说如何用它编译(我想在旧版本的 Perl 上它默认是关闭的?)

-Dusethreads

但我假设它现在默认启用?在这种情况下,没有它我该如何编译?

如果我查看它建议的 myconfig 文件

useithreads=undef

我试过 -Dusethreads=no 或 false 之类的东西,但我可能错过了正确的使用方法。

如果没有性能影响(S.O 上的帖子似乎建议有 10% 的命中率,但不确定这是否仍然相关)

我采取的步骤(新服务器)是..下载

perl-5.30.1 and mod_perl-2.0.11

然后

CFLAGS='-m64 -mtune=nocona' ./Configure -des -A ccflags=-fPIC -Dprefix=/opt/perl  

perl -v 不显示线程。

然后 mod_perl

Perl Makefile.PL

Apache 使用

编译
./configure --enable-proxy --enable-rewrite --enable-headers --enable-ssl --with-apr=/usr/local/apr/

编辑:所以可能 mod_perl 需要启用线程,如果是这样的话,有没有办法在编译选项中关闭它。

我认为的答案似乎是用选项编译mod_perl..

perl Makefile.PL MP_NO_THREADS=1

如果有人想提供一个更完整的答案,说明现在是否不宜这样做(或任何其他信息),因为 Apache 2.4 似乎有一些变化,我很乐意接受他们的回答。