为什么当我从源代码构建 PHP7 时,我的编译指令被忽略了?
Why when I build PHP7 from source are my compilation directives ignored?
我一直在使用 remi 存储库中可用于 Fedora 23 的 PHP7 版本,并且运行良好。我最近发现我需要从源代码编译 PHP7 才能让 Pthreads 工作,这还需要使用选项编译 PHP:--enable-maintainer-zts。
不过我发现,无论我使用什么选项来编译 PHP,当 PHP 被 OS 设为 运行 时,它们都不会被使用。如果我在终端中使用 php -i,我会看到线程安全已关闭并且我设置的其他选项未列出。
我确实卸载了 PHP 的 remi 版本,但这没有任何区别 - 然而,这导致了一个 st运行ge 情况,因为 PHP 仍在通过 PHP 运行-FPM 在我从我的机器上删除了 PHP 的 remi 版本之后。在我看来,这意味着我正在 运行ning 我从源代码构建的 PHP7 版本,但我的指令已被忽略。如果不是这种情况,那么我不知道这是怎么可能的,除了当我 运行 DNF REMOVE PHP (同时我从源代码安装的版本被忽略或安装不正确)。
我使用了几个不同的构建命令,最后一个是:
./configure --prefix=/usr/local/php --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=nginx --with-fpm-group=nginx --with-libdir=/usr/lib64/php-zts --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-maintainer-zts --enable-debug
当我检查 PHP 的各种文件的时间戳时,到目前为止,大多数都与我从源代码构建 PHP 的 date/time 不匹配。
有没有人知道我在这里遗漏了什么?
无需构建,remi(或 Fedora)存储库中的软件包具有 ZTS 构建和 pthreads 扩展,您需要使用 zts-php 命令(pthreads 扩展仅适用于 CLI)
# yum --enablerepo=remi-php70 install php-pecl-pthreads
...
# zts-php -m | grep thread
pthreads
您可以查看 remi 存储库中的PECL extension RPM status(显示 pthreads 可用)
我一直在使用 remi 存储库中可用于 Fedora 23 的 PHP7 版本,并且运行良好。我最近发现我需要从源代码编译 PHP7 才能让 Pthreads 工作,这还需要使用选项编译 PHP:--enable-maintainer-zts。 不过我发现,无论我使用什么选项来编译 PHP,当 PHP 被 OS 设为 运行 时,它们都不会被使用。如果我在终端中使用 php -i,我会看到线程安全已关闭并且我设置的其他选项未列出。 我确实卸载了 PHP 的 remi 版本,但这没有任何区别 - 然而,这导致了一个 st运行ge 情况,因为 PHP 仍在通过 PHP 运行-FPM 在我从我的机器上删除了 PHP 的 remi 版本之后。在我看来,这意味着我正在 运行ning 我从源代码构建的 PHP7 版本,但我的指令已被忽略。如果不是这种情况,那么我不知道这是怎么可能的,除了当我 运行 DNF REMOVE PHP (同时我从源代码安装的版本被忽略或安装不正确)。
我使用了几个不同的构建命令,最后一个是:
./configure --prefix=/usr/local/php --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=nginx --with-fpm-group=nginx --with-libdir=/usr/lib64/php-zts --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-maintainer-zts --enable-debug
当我检查 PHP 的各种文件的时间戳时,到目前为止,大多数都与我从源代码构建 PHP 的 date/time 不匹配。
有没有人知道我在这里遗漏了什么?
无需构建,remi(或 Fedora)存储库中的软件包具有 ZTS 构建和 pthreads 扩展,您需要使用 zts-php 命令(pthreads 扩展仅适用于 CLI)
# yum --enablerepo=remi-php70 install php-pecl-pthreads
...
# zts-php -m | grep thread
pthreads
您可以查看 remi 存储库中的PECL extension RPM status(显示 pthreads 可用)