swoole扩展安装

原创
2017/11/08 18:59
阅读数 1.3K

安装步骤如下(推荐把安装文件下载到 /usr/local/src 目录下):

1、拉取你想要安装的版本包

$wget --no-check-certificate https://github.com/swoole/swoole-src/archive/v1.9.12.tar.gz

注:找你想要的版本:https://github.com/swoole/swoole-src/releases 

2、解包

$tar -zxvf v1.9.12-stable.tar.gz
$cd swoole-src-1.9.12-stable

3、编译

$phpize 
$./configure --with-php-config=/usr/local/php/bin/php-config

注:如果phpize出现错误“Cannot find autoconf. Please check your autoconf installation”;需安装:

$yum install m4
$yum install autoconf

4、安装

$make && make install

5、配置生效
1)修改 php.ini ,加入 extension=swoole.so ,然后重启 service php-fpm restart
2)执行 php --info | grep swoole 查看设置是否生效
 如果扩展没有加载则检查下php扩展目录是否存在此扩展(目录请根据实际安装情况自行修改,将扩展拷贝到相应php扩展目录下),如果没有则复制扩展到相应目录即可:

$cp /usr/local/src/swoole-src-1.9.12-stable/modules/swoole.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226

--------------------------

20190123升级4.2.12版本补充

--------------------------

1、swoole4 以上版本编译时gcc需要大于等于4.8版本,centos使用yum更新只能到4.4.7版本,所以需要进行手动编译安装gcc,可参考:

https://www.cnblogs.com/lzpong/p/5755678.html

2、gcc也升级好后,需要在进行替换系统当前gcc版本(这个比较坑,通过gcc -v显示都已经是新的了,但在编译swoole时还是提示gcc版本过低,后面通过以下处理,才成功)

// 倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级
$update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-pc-linux-gnu-gcc 40
// 将原本的gcc重命名(删除亦可)
$mv /usr/bin/gcc /usr/bin/gcc.bak 
// 使用gcc新版本
$ln -s /usr/local/bin/x86_64-pc-linux-gnu-gcc /usr/bin/gcc

3、升级gcc到高版本(大于4.8),将占用系统很大空间(如果使用docker环境,很不划算,打包出来镜像会比正常环境大很多),如果只是想使用swoole4版本,又不想安装gcc,可以使用以下方式进行:

  1)将最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下(需要进行一次gcc升级得到,)

$cd /usr/lib64

$cp /root/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./

#删除原来软连接:
$rm -rf libstdc++.so.6

#将默认库的软连接指向最新动态库:
$ln -s libstdc++.so.6.0.22 libstdc++.so.6

检查动态库:

$strings /usr/lib64/libstdc++.so.6 | grep GLIBC

可以看到 输出有"GLIBCXX_3.4.22" 了

2)安装swoole或将已有的swoole.so放到扩展目录,重启php-fpm即可

注:swoole4扩展资源可通过这个拉取:https://gitee.com/goodman/common.git 

 

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
1 收藏
0
分享
返回顶部
顶部