PHP 编译错误 *with* zts support

我尝试编译 php 5.6、php 7.1 和 php 7.3


令我惊讶的是,它们都是用 ZTS 编译的。


我使用了我一直使用的相同选项,但这次有所不同。我怀疑是 Apache,但也是用我常用的选项编译的。


任何想法?


阿帕奇

./configure --prefix=/usr/local/httpd-2.4.41 --enable-modules=all --enable-mods-shared=all --enable-mpms-shared=all

php

./configure --prefix=/usr/local/php-7.1.33-2.4 --with-apxs2=/usr/local/httpd-2.4.41/bin/apxs  \

--with-mysqli=shared --with-pdo-mysql=shared                                           \

--with-sqlite3=shared --with-pdo-sqlite=shared                                         \

--with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr            \

--with-openssl=shared                                                                  \

--enable-pcntl=shared --enable-sockets=shared                                          \

--enable-ftp=shared                                                                    \

--with-curl=shared                                                                     \

--with-mhash=shared                                                                    \

--enable-wddx=shared                                                                   \

--enable-mbstring=shared                                                               \

--enable-intl=shared                                                                   \

--enable-exif=shared                                                                   \

--with-gmp=shared                                                                      \

--enable-calendar=shared                                                               \

--enable-soap=shared                                                                   \

--with-zlib=shared --enable-zip=shared                                                 \

--enable-bcmath=shared


潇潇雨雨
浏览 134回答 1
1回答

达令说

结果是这样的:Apache 服务器可能与多个 MPM 模块一起工作。可能 99% 的 PHP 安装使用MPM prefork:https://httpd.apache.org/docs/2.4/mod/prefork.html在这种模式下,apache 产生几个子进程fork(),PHP 不需要是线程安全的。在 Linux 下这种模式非常快,因为 Linux 有非常快fork()的 . 它与基于线程的程序一样快。但是,安装 Apache 时,配置文件使用MPM Worker.https://httpd.apache.org/docs/2.4/mod/worker.html代替fork(),此模式使用线程。对于这种模式,PHP 必须是线程安全的。在 Linux MPM Worker+ PHP 上比 慢MPM prefork,但在 Windows 和 MacOS 等其他系统上,它可能更快。MPM Worker在 Apache 配置中默认选择模式。由于我刚刚制作make install并且从未更改过 Apache conf 文件选择是MPM Worker. 这是从 PHP 配置脚本中提取的,结果是线程安全的 PHP。我确实MPM prefork在 Apache conf 中进行了选择,并且 PHP 编译符合预期。
打开App,查看更多内容
随时随地看视频慕课网APP