在没有线程的情况下编译 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 似乎有一些变化,我很乐意接受他们的回答。
我正在编译 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 似乎有一些变化,我很乐意接受他们的回答。