PHP,启用 ZTS、Pthreads [英] PHP, enable ZTS, Pthreads
问题描述
我需要在 php 中启用 ZTS.因此,我使用--enable-maintainer-zts"选项从源代码重新编译了 php.现在我有:
"php -v"
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
现在我正在尝试做
sudo pecl install pthreads"回答了我
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
请帮帮我.怎么了?
CentOS 7.
推荐答案
安装编译php的所有依赖,fedora/cent os的参考是这里
Install all the dependencies for compiling php, a reference to that for fedora/cent os is here
然后这是我使用的脚本,只是制作一个文件 php-zts-installer.sh 扩展并以超级用户身份运行它 sudo ./php-zts-installer.sh
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
php-zts-install.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
这篇关于PHP,启用 ZTS、Pthreads的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!