系统:centos 6.10 集成 wdcp3.2
多PHP共存情况。
进入/www/wdlinux目录
cd /www/wdlinux
下载swoole4.6.3包
wget https://github.com/swoole/swoole-src/archive/refs/tags/v4.6.3.tar.gz
解压包
tar xvf v4.6.3.tar.gz
进入swoole-src-4.6.3目录里
cd /www/wdlinux/swoole-src-4.6.3
运行phpize生成configure
sudo /www/wdlinux/phps/73/bin/phpize
查看出来的信息,看有没有error或者
ls
查看目录没有configure时,查看错误信息。没认真看信息,遇坑一:常见遇到的是autoconf版本低于2.68
移步:升级autoconf
升级autoconf到2.68版本
查看当前版本:
rpm -qf /usr/bin/autoconf
我的是2.63,卸载当前版本:
rpm -e --nodeps autoconf-2.63
安装最新autoconf 2.68版本,步骤:下载、解压、进入解压目录、编译、运行安装
wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar zxvf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure --prefix=/usr/
make&& make install
查看当前版本:
/usr/bin/autoconf -V
回来了!
回到swoole-src-4.6.3目录里
cd /www/wdlinux/swoole-src-4.6.3
再次运行phpize生成configure
sudo /www/wdlinux/phps/73/bin/phpize
当前目录出来configure,赶紧编译
./configure --with-php-config=/www/wdlinux/phps/73/bin/php-config
又一次出错,头大!
查看README.md
查看gcc版本,当前版本4.4.7
再次移步:升级到gcc.5.1.0,其他版本应该类同吧
下载包:
wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-5.1.0/gcc-5.1.0.tar.bz2
解压到/usr/local/src下:
tar xvf gcc-5.1.0.tar.bz2 -C /usr/local/src
进入解压目录后安装
./contrib/download_prerequisites
出错,源连不上,换一台centos7.9的下载这几个依赖文件,复制过来,其实打开
vi download_prerequisites
把wget后面的地址复制出来换个电脑下载,原理一样,这里注释这4个下载地址语句
安装gcc需要的gmp,mpfr,mpc等依赖文件:可以手动下载这4个压缩包到这个路径,再修改download_prerequisites,再运行
./contrib/download_prerequisites
静候一会儿,然后cd到gcc.5.1.0目录执行:
./configure --prefix=/usr/local/gcc-5.1.0 --disable-multilib --enable-languages=c,c++,java
编译gcc源程序
make -j4 (-j4:表示4线程,我用的2线程大约一二个小时,编译)
make install (安装gcc)
make -j4 && make install
gcc -v
(查看版本,还没旧版本,需要替换老版本的gcc的动态库)
配置变量
echo -e 'export PATH=/usr/local/gcc-5.1.0/bin:$PATH' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh
gcc.sh文件权限不够时,进入文件目录下:
cd /etc/profile.d
sudo chmod -R 777 gcc.sh
再执行:
echo -e 'export PATH=/usr/local/gcc-5.1.0/bin:$PATH' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh
配置软链接
ln -sv /usr/local/gcc-5.1.0/include/ /usr/include/gcc
导出文件
ldconfig -v
配置生效
ldconfig -p |grep gcc
gcc -v
执行以下命令,查找编译gcc时生成的最新动态库:
find / -name "libstdc++.so*"
将上面的最新动态库libstdc++.so.6.0.21复制到/usr/lib64目录下
cd /usr/lib64
备份一下:
cp libstdc++.so.6 libstdc++.so.6.bak
cp /usr/local/src/gcc-5.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 ./
删除原来软连接:
rm -rf libstdc++.so.6
将默认库的软连接指向最新动态库:
ln -sv libstdc++.so.6.0.21 libstdc++.so.6
默认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
重启
reboot
安装编译
make && make install
安装完成 后复制集成环境的php扩展目录(Installing shared extensions:)
目录下有没有swoole.so文件操作
cp ./modules/swoole.so /www/wdlinux/phps/73/lib/php/extensions/no-debug-non-zts-20180731/swoole.so
修改php.ini配置文件,添加:
extension = /www/wdlinux/phps/73/lib/php/extensions/no-debug-non-zts-20180731/swoole.so
重启
查看PHP扩展,看swoole是否启动
/www/wdlinux/phps/73/bin/php -m