Я использую версию PHP7, которая доступна для Fedora 23 в репозиториях remi, и она работала нормально. Недавно я обнаружил, что мне нужно скомпилировать PHP7 из исходного кода, чтобы заставить работать Pthreads, что также требует компиляции PHP с параметром: —enable-maintenanceer-zts.
Я обнаружил, что независимо от того, какие опции я использую для компиляции PHP, они не используются, когда PHP запускается операционной системой. если я использую php -i в терминале, я вижу, что безопасность потока отключена, а другие параметры, которые я установил, не перечислены.
Я действительно удалил версию remi PHP, но это не имело никакого значения — однако, это привело к странной ситуации, когда PHP все еще работал через PHP-FPM после того, как я удалил версию remi PHP со своего компьютера. Мне кажется, это означает, что я использую версию PHP7, которую я собрал из исходного кода, но мои директивы были проигнорированы. если это не так, то я понятия не имею, как это возможно, за исключением того, что, возможно, PHP фактически не был удален с моей машины, когда я запускал 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 из исходного кода.
У кого-нибудь есть интуиция относительно того, что мне здесь не хватает?
Сборка не требуется, пакеты в репозитории remi (или Fedora) имеют сборку ZTS и расширение pthreads, вам нужно использовать команду zts-php (расширение pthreads только для CLI)
# yum --enablerepo=remi-php70 install php-pecl-pthreads
...
# zts-php -m | grep thread
pthreads
Вы можете проверить Состояние RPM расширения PECL в репозитории remi (который показывает pthreads)
Других решений пока нет …