Ubuntu/Apache2切换PHP版本:编译ZTS版PHP后CLI正常但存问题
关于PHP pthreads扩展安装与ZTS版本编译的实操建议
我最近在折腾pthreads扩展,得先把这个PHP扩展装上才行。我的服务器原本跑的是PHP 7.0,查了一圈资料后,我手动编译了支持线程安全(Thread Safety,也就是ZTS)的PHP版本。
编译完之后,我跑了php -v验证,输出是没问题的:
PHP 7.3.0-dev (cli) (built: May 7 2018 09:54:09) ( ZTS DEBUG )
接下来装pthreads的时候,有几个关键点得注意,不然很容易踩坑:
- 一定要找和你编译的PHP 7.3-dev版本匹配的pthreads扩展源码,版本不兼容的话编译肯定过不了
- 编译扩展的时候,必须用你刚编译好的ZTS版本PHP自带的
phpize和php-config,举个例子:# 进入pthreads源码目录 cd /path/to/pthreads-source # 用ZTS版PHP的phpize初始化 /usr/local/zts-php/bin/phpize # 配置编译参数,指定ZTS版的php-config路径 ./configure --with-php-config=/usr/local/zts-php/bin/php-config # 编译并安装 make && make install - 安装完之后,要在ZTS版本对应的
php.ini文件里加上extension=pthreads.so,CLI模式下直接生效,要是用其他SAPI的话得重启服务(不过提醒下,pthreads只能在CLI环境用,FPM或者Apache模块模式下用不了) - 还有个容易忽略的点:要确保你的系统默认PHP命令指向这个新的ZTS版本,不然执行
php -m或者运行代码的时候,用的还是原来的PHP 7.0,自然看不到pthreads扩展
内容的提问来源于stack exchange,提问作者Tim Bauer
相关产品推荐
相关产品推荐

