安装多线程“ pthreads”时,出现了一个这样的error错误: checking for ZTS… configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled 翻译成中文 检查ZTS…配置:错误:Pthreads需要ZTS,请重新编译PHP ZTS启用 ZTS解决办法: 只需要在PHP 编译参数基础上加上:–-enable-maintainer-zts 即可! 注意:zts不能动态加载,必须PHP源码编译加载,因此:千万不要产生不需要编译PHP就能解决这个问题的错误想法。 看到大多数,都是要求重新编译PHP,如果你有更好的办法,欢迎留言交流.
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。
php-sdk-binary-tools.git SDK_BRANCH: php-sdk-2.2.0 matrix: - PHP_REL: 8.0 ARCHITECTURE: x64 ZTS_STATE ZTS_IN_FILENAME!!ARCH_IN_FILENAME!.zip %APPVEYOR_BUILD_FOLDER%\php_tideways_xhprof-%PHP_REL%-! ZTS_SHORT! ZTS_IN_FILENAME!!ARCH_IN_FILENAME!. ZTS_IN_FILENAME!!ARCH_IN_FILENAME!.zip 类似这两行代码,就是将build扩展名目录压缩为压缩包,然后上传至本地ci的产物里。
-20170718/ixed.8.0.lin (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/ixed.8.0.lin: shared object file: No such file or directory), /www/server/php/72/lib/php/extensions/no-debug-non-zts -20200930/redis.so’ (tried: /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so /no-debug-non-zts-20200930/redis.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718 /no-debug-non-zts-20200930/fileinfo.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718
Unable to load dynamic library ‘zip.so’ (tried: /www/server/php/72/lib/php/extensions/no-debug-non-zts -20170718/zip.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/zip.so: cannot open shared object file: No such file or directory), /www/server/php/72/lib/php/extensions/no-debug-non-zts -20170718/zip.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/zip.so.so: cannot /no-debug-non-zts-20200930/fileinfo.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718
conf.d/xdebug.ini #zend_extension="/Users/achao/.phpenv/versions/8.3.5/lib/php/extensions/no-debug-non-zts html_errors=on [xdebug] zend_extension="/Users/achao/.phpenv/versions/8.3.5/lib/php/extensions/no-debug-non-zts versions/8.3.5/ -name "xdebug.so" /Users/achao/.phpenv/versions/8.3.5//lib/php/extensions/no-debug-non-zts achao/.phpenv/ -name "xdebug.so" /Users/achao/.phpenv//versions/8.3.5/lib/php/extensions/no-debug-non-zts -20230831/xdebug.so /Users/achao/.phpenv//versions/8.3.7/lib/php/extensions/no-debug-non-zts-20230831
httpd结合工作,根据httpd的mpm模式不同, ###其所需要的php模块格式有所不同; prefork模式使用libphp5模块 worker和event模式则使用libphp5-zts into server: /etc/httpd/modules/libphp5-zts.so: cannot open shared object file: No such file or directory [FAILED] ###安装php-zts 模块 # yum -y install php-zts # rpm -ql php-zts /usr/lib64/httpd/modules/libphp5-zts.so # ps - 2、对于perfork模式使用libphp5模块,worker和event模式则使用libphp5-zts模块。
服务版本为php5.6.26,安装目录为/Data/app/php5.6.26,扩展模块文件路径为/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts so文件(make && make install后的安装信息里会显示)一定要确保在扩展文件目录/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts Installing shared extensions: /Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/ 然后在 Data/app/php5.6.26/etc/php.ini ..... extension="/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts 文件里添加extension="/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/swoole.so" 然后重启php-fpm
Unable to load dynamic library ‘swoole’ (tried: /alidata/server/myphp/lib/php/extensions/no-debug-non-zts -20190902/swoole (/alidata/server/myphp/lib/php/extensions/no-debug-non-zts-20190902/swoole: cannot open shared object file: No such file or directory), /alidata/server/myphp/lib/php/extensions/no-debug-non-zts -20190902/swoole.so (/alidata/server/myphp/lib/php/extensions/no-debug-non-zts-20190902/swoole.so: cannot local/swoole-4.5.2/swoole-4.5.2/modules/swoole.so /alidata/server/myphp/lib/php/extensions/no-debug-non-zts
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/ 这里就是你的扩展目录了 cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/ vim /usr/local/php/etc/php.ini 修改php.ini 文件,添加extension=fileinfo.so extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/fileinfo.so
Installing shared extensions: /usr/lib/php/extensions/debug-non-zts-20151012/ 执行以上命令后,你需要修改php.ini 文件,在 php.ini 文件中添加mongo配置,配置如下: extension_dir=/usr/lib/php/extensions/debug-non-zts-20151012/ extension 可以通过以下命令查看目录地址: $ php -i | grep extension_dir extension_dir => /usr/lib/php/extensions/debug-non-zts -20151012 => /usr/lib/php/extensions/debug-non-zts-20151012 ---- Window 上安装 MongoDB
Unable to load dynamic library ‘ixed.8.0.lin’ (tried: /www/server/php/73/lib/php/extensions/no-debug-non-zts -20180731/ixed.8.0.lin (/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/ixed.8.0.lin: shared object file: No such file or directory), /www/server/php/73/lib/php/extensions/no-debug-non-zts -20180731/swoole.so (/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/swoole.so: cannot -20180731/swoole.so.so (/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/swoole.so.so:
redis.so文件,就是我们需要的扩展模块 [root@hf-01 phpredis-develop]# ls /usr/local/php/lib/php/extensions/no-debug-zts local/php/bin/php -i |grep extension_dir extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts -20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 sqlite3.extension_dir => no value -01 zip]# make install Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts root@hf-01 zip]# 这时候再去查看会看到zip模块的出现 [root@hf-01 zip]# ls /usr/local/php/lib/php/extensions/no-debug-zts
Installing shared extensions: /usr/lib/php/extensions/debug-non-zts-20151012/ 执行以上命令后,你需要修改php.ini 文件,在 php.ini 文件中添加mongo配置,配置如下: extension_dir=/usr/lib/php/extensions/debug-non-zts-20151012/ extension 可以通过以下命令查看目录地址: $ php -i | grep extension_dir extension_dir => /usr/lib/php/extensions/debug-non-zts -20151012 => /usr/lib/php/extensions/debug-non-zts-20151012 Window 上安装 MongoDB PHP
uri: lb://zts-gis predicates: - Path=/zts/gis/** filters: uri: lb://zts-dms predicates: - Path=/zts/dms/** filters: uri: lb://zts-plus predicates: - Path=/zts/plus/** filters uri: lb://zts-link predicates: - Path=/zts/link/** filters uri: lb://zts-gis2 predicates: - Path=/zts/gis2/** filters
Build process completed successfully Installing '/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts extension=imagick.so" to php.ini 产生的imagick.so文件拷贝到/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts install执行结果显示: installing shared extensions: /Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts -20121212/#/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/#g' /Data/app/php5.6.26/etc /php.ini sed -i '/memcached.so/i extension="/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-
Warning 只能在 PHP 7.2+ 版本中使用 pthreads (v3) 扩展, 在 PHP 7.0 和 7.1 版本中,ZTS 模式是不安全的。 =/usr/local/php/bin/php-config make make install 注意:您的php 在编译的时候需要开启 –enable-maintainer-zts 需求 要使用 pthreads 扩展,需要构建 PHP 时启用 ZTS (Zend Thread Safety)。 (–enable-maintainer-zts 选项, Windows 平台为 –enable-zts)在编译安装PHP时添加–enable-maintainer-zts Caution ZTS 是构建期配置选项 要构建 pthreads 扩展,你需要启用了 ZTS 的 PHP 以及 Posix Threads 头文件(pthread.h)。
php -i | grep extension_dir输出信息如下:extension_dir => /www/server/php/73/lib/php/extensions/no-debug-non-zts -20180731 => /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731大功告成,尽量把so文件保存在标准目录。
Unable to load dynamic library '/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts -20090626/apc.so' - dlopen(/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts Did find:\n\t/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/apc.so
& make install (过程省略) Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-zts -20160303/ make install会把redis.so放在 /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/ 中 [root @localhost phpredis-develop]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/ opcache.so php7/bin/php -i |grep -i extension_dir extension_dir => /usr/local/php7/lib/php/extensions/no-debug-zts -20160303 => /usr/local/php7/lib/php/extensions/no-debug-zts-20160303 sqlite3.extension_dir => no value