5

I need ZTS to be enabled in php. So I recompiled php from source with '--enable-maintainer-zts' option. Now I have:
"php -v"

PHP 7.0.11 (cli) (built: Oct  3 2016 12:19:10) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

"php -i"

Thread Safety => enabled

Now I am trying to do
"sudo pecl install pthreads" which answers me

checking whether to enable pthreads... yes, shared
checking whether to enable AddressSanitizer for pthreads... no
checking whether to enable dmalloc for pthreads... no
checking for ZTS... configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled
ERROR: `/var/tmp/pthreads/configure --with-php-config=/usr/bin/php-config' failed

Please, help me. What's wrong?

CentOS 7.

Makhach
  • 51
  • 1
  • 4
  • Does this answer your question? [How to Install PHP-Zts manually on the Centos 7](https://stackoverflow.com/questions/59601583/how-to-install-php-zts-manually-on-the-centos-7) – Shahrad Elahi May 05 '20 at 06:58
  • The OP is probably asking why the configure script says "no ZTS KTHXBYE" even though PHP says "Thread Safety => enabled". – Szczepan Hołyszewski May 08 '21 at 04:51

1 Answers1

3

Install all the dependencies for compiling php, a reference to that for fedora/cent os is here

Then this is the script i used just make a file php-zts-installer.sh extention and run it as superuser sudo ./php-zts-installer.sh

content of php-zts-install.sh

#!/bin/bash

mkdir -p /etc/php7
mkdir -p /etc/php7/cli

git clone https://github.com/php/php-src.git -b PHP-7.0.17 --depth=1
cd php-src/ext
git clone https://github.com/krakjoe/pthreads -b master pthreads

cd ..

./buildconf --force

./configure --prefix=/etc/php7 --with-bz2 --with-zlib --enable-zip --disable-cgi \
    --enable-soap --enable-intl --with-mcrypt --with-openssl --with-readline --with-curl \
    --enable-ftp --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
    --enable-sockets --enable-pcntl --with-pspell --with-enchant --with-gettext \
    --with-gd --enable-exif --with-jpeg-dir --with-png-dir --with-freetype-dir --with-xsl \
    --enable-bcmath --enable-mbstring --enable-calendar --enable-simplexml --enable-json \
    --enable-hash --enable-session --enable-xml --enable-wddx --enable-opcache \
    --with-pcre-regex --with-config-file-path=/etc/php7/cli \
    --with-config-file-scan-dir=/etc/php7/etc --enable-cli --enable-maintainer-zts \
    --with-tsrm-pthreads --enable-debug --enable-fpm \
    --with-fpm-user=www-data --with-fpm-group=www-data

make && make install

chmod o+x /etc/php7/bin/phpize
chmod o+x /etc/php7/bin/php-config

cd ext/pthreads*
/etc/php7/bin/phpize

./configure --prefix=/etc/php7 --with-libdir=/lib/x86_64-linux-gnu --enable-pthreads=shared --with-php-config=/etc/php7/bin/php-config

make && make install

cd ../../
cp -r php.ini-development /etc/php7/cli/php.ini

cp php.ini-development /etc/php7/cli/php-cli.ini
echo "extension=pthreads.so" > /etc/php7/cli/php-cli.ini
echo "zend_extension=opcache.so" >> /etc/php7/cli/php.ini

ln --symbolic /etc/php7/bin/php /usr/bin/php

export USE_ZEND_ALLOC=0