下面介绍两种编译方式:


1、在已有的PHP上编译pthreads扩展

注:需要动态加载pthreads模块,之前在编译php时必须启用--enable-maintainer-zts;否则需要重新编译PHP。

pthreads源码包下载地址:wget http://pecl.php.net/get/pthreads-3.1.6.tgz


tar xf pthreads-3.1.6.tgz

cd pthreads-3.1.6

phpize

./configure  --enable-pthreads --with-php-config=/usr/local/php/bin/php-config

make && make install


2、重新编译PHP,加载pthreads


tar xf php-5.5.8.tar.gz

tar xf pthreads-3.1.6.tgz

mv pthreads-3.1.6.tgz  php-5.5.8/ext/pthreads  将pthreads解压,移动到php/ext/下,并改名为pthreads;


来到php源码目录

./buildconf  --force

./configure --help | grep thread 

是否能看到--enable-threads,如果没有则执行:


rm -rf aclocal.m4

rm -rf autom4te.cache/

./buildconf --force

初始化编译配置:

./configure --prefix=/usr/local/php --enable-opcache --with-config-file-path=/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-fpm --enable-pthreads --enable-fastcgi --enable-static --enable-inline-optimization --enable-sockets --enable-wddx --enable-zip --enable-calendar --enable-bcmath --enable-soap --with-zlib --with-xmlrpc --enable-mbstring --without-sqlite --with-curl --enable-ftp --with-mcrypt  --with-freetype-dir=/usr/local/freetype.2.1.10 --with-jpeg-dir=/usr/local/jpeg.6 --with-png-dir=/usr/local/libpng.1.2.50 --disable-ipv6 --disable-debug --with-openssl --enable-maintainer-zts --disable-safe-mode --disable-fileinfo


make && make install 


cp php.ini-production /etc/php.ini


install -v -m755 ./php-5.5.7/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm


启动php-fpm

/etc/init.d/php-fpm start


测试,查看phpinfo输出

wKioL1Uve4aB7IdFAACLLK-D8QA256.jpg

官方文档:http://docs.php.net/manual/en/pthreads.installation.php#113019