小弟参照官方和网上热心程序猿帖子,进行了如下操作:
1、去php官网:http://php.net/downloads.php 下载了php-5.6.30.tar.bz2 源代码。
2、解压后进入目录执行如下操作
1)配置php编译参数
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --enable-opcache --enable-cli --enable-zip --enable-fpm --enable-mbstring --enable-ftp --with-zlib --with-iconv --with-curl --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-soap --enable-xml --with-xmlrpc --enable-sockets --enable-maintainer-zts –with-tsrm-pthreads
补充: --enable-maintainer-zts 这里加了php官方提示的支持多线程的参数,热心网友也是这样提示的。
2)生成makefile
./buildconf --force
3)make clean
4)编译源码
make
5)安装
make install
6)后续配置
sudo cp '/home/jianhunqinxin/Downloads/php-5.6.30/php.ini-production' '/usr/local/php5/etc/php.ini'
sudo apt-get install libapache2-mod-php5
7)phpinfo函数打印
如图依然是 thread safety disabled nts
有哪位遇到相同问题了吗?整个过程没有遇到错误,(任何提示error的包依赖都解决了,并且重新执行到没有error为止)。
为什么我怎么编译php源码都依然是nts呢?线程安全版的php在linux下应该如何编译出来?
补充下:
1、小弟是真的不能不用pthread来做多线程而去用swoole的,因为我只需要多线程的一点功能,而且还仅仅是来辅助的。
2、不存在以前php5没有写在干净的可能,因为我find -name *php5* 都删掉了,甚至最后直接换了新的ubuntu系统来操作也没有解决。