【php杂谈】 宝塔面板 CentOS 7.x系统Nginx安装swoole-v5教程
网上看了一圈,有些教程全是复制粘贴不全面、要么乱码、反正坑很多
于是我这里整理了一下最新的可用教程,顺便帮大家避避坑(我的系统是CentOS7.6+Nginx 1.x)
下载swoole扩展文件
注意: 不要直接clone下来,不然编译会报错,直接上传压缩包到宝塔服务器解压
下载地址:https://gitee.com/swoole/swoole/releases
这里准备在php8.1版本上安装swoole扩展,因此打开目录:/www/server/php/81/include/php/ext,将下载的压缩包上传到这个目录并解压,重命名为swoole
我这里下载的是v5.1.4版本(仅支持PHP8.1~8.2),大概解压后就是下面这个样子
编译配置项
#进入目录 cd swoole #生成configure文件准备编译 /www/server/php/81/bin/phpize #编译配置项 ./configure --enable-openssl --with-php-config=/www/server/php/81/bin/php-config
Bash
成功时应该是如下的样子
当然也有可能失败,如果出现下图所示的时候,说明是缺少依赖
我们直接安装依赖即可(选择下面你系统对应的命令安装依赖,如果安装后还是这样子,你可以自行复制报错问一下AI什么的)
安装libbrotli 开发库
根据你的操作系统选择对应命令:
Ubuntu/Debian
sudo apt updatesudo apt install libbrotli-dev
CentOS/RHEL
sudo yum install brotli-devel
Alpine Linux
sudo apk add brotli-dev
macOS (Homebrew)
brew install brotli
依赖安装成功后,重复上面的编译配置项步骤即可
编译安装
#执行编译 make && make install
按上面方法执行后,安装成功就是下面如图这个样子
如果有个提示Build complete 那么恭喜你,已经安装成功!!
配置php.ini
进入目录/www/server/php/81/etc,编辑php-cli.ini和php.ini两个文件,在文件后面追加
[swoole] extension = swoole.so swoole.use_shortname = 'Off'
*由于swoole是运行在命令行模式下,实际上生效的文件仅仅是php-cli.ini
然后记得重启php
重新编译安装swool(可不需要)
这需要先清理缓存文件,也就是宝塔的回收站清空,然后重新执行上面几步即可
检查是否安装成功
/www/server/php/81/bin/php --ri swoole
执行后当你看到下面这些表示安装成功可以正常使用了
安装成功但项目无法启动
如果项目无法启动,请参考如下原因解决:
1.未安装fileinfo扩展
2.未安装Redis扩展
3.没有将扩展写在php.ini并保存
4.没有重启php
5.没有删除禁用函数proc_open和putenv
6.数据库无法正常链接