PHP, enable ZTS, Pthreads

扶醉桌前 提交于 2019-12-10 18:53:39

问题


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.


回答1:


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


来源:https://stackoverflow.com/questions/39829944/php-enable-zts-pthreads

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!