• 注册
  • 圈子版务 圈子版务 关注:19 内容:5

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

  • 查看作者
  • 打赏作者
  • 4
  • 圈子版务
  • 大版主
    社区运营团队成员
    智创聚合API

    首先是常规操作

    1.网站配置

    网站后台添加

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    2.放行端口

    宝塔放行,宝塔面板找到安全,填写端口和备注名称,点击放行即可,名称随便,不填不让放行

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    云服务器放行,这里拿腾讯云举例,其他云服务器也是一样的,点击云服务器,选择安全组,点击修改规则,然后添加规则就可以了

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    端口放行是肯定能成功的,所以后面出问题也不要来干端口了

    3.安装swoole扩展

    首先要确定你服务器上安装了几个php版本,如果是几个的话,我这里建议全都干掉,只留一个网站现在用的这个,php7版本为最好的,php8好像是有个官方bug,然后很多模块也不是完全支持的,还是先别用了,如果说你就是任性,不想卸载,那你可以在找下多php版本安装swoole需要做哪些配置,应该是有个安装文件目录或者别名问题,这个在宝塔官方社区,是有答案的,我就不介绍了,这个教程是按照只有一个php版本来做的。

    如果你之前安装过swoole,但是在php管理,phpinfo中查看还是NO的话,那就直接把扩展卸载,然后手动删除swoole目录,在重新安装一遍,这李就是一刀切了,你也别在排查这个那个的了,没必要,就是卸载,删除目录,重新安装即可。

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    卸载步骤,点击扩展中的卸载

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    查看PHP配置文件中是不是没有了下面代码

    [swoole]

    extension = swoole.so

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    到文件/www/server/php/74/include/php/ext目录中看看有没有swool文件夹,有就删除掉。

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    重新安装swoole  

    宝塔-应用商店-已安装-选择PHP,点击设置-选择安装扩展,找到Swoole4,点击安装

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    怎么确定swoole安装成功呢,下面这些步骤验证都是正确的那就是安装成功了,使用也就没问题,如果出现不正确也不要担心,有的是同步问题

    安装之后,查看php配置文件,最后面有没有这个代码,正常这个是肯定有的

    1
    2
    [swoole]
    extension = swoole.so

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    查看phpinfo里面是不是显示yes了,这个显示不是很科学的,有时安装成功也是显示NO

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    然后点击宝塔-终端-输入命令,查看打印出的内容有没有swoole

    1
    php -m

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    看打印出来的内容,找到s  看有没有swoole,这里要是没有找到,也不用担心,重启下php,重启下宝塔再看看有没有,如果还没有,那你就等明天再登录宝塔来看,这里不知道是什么原因,不是实时同步,连宝塔官方都解决不了这个问题

    还可以通过命令,查看swoole版本,确定是否安装成功,这个是比较科学的,如果出现版本号这些信息,就是安装成功了

    1
    php --ri swoole

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    网站配置文件添加下面代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    location /wss {
            proxy_pass http://你的域名:1314;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_connect_timeout 5s; #配置点1
            proxy_read_timeout 60000s; #配置点2,如果没效,可以考虑这个时间配置长一点
            proxy_send_timeout 60000s; #配置点3
        }

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    启动swoole服务

    点击终端输入下面两个命令,第一个是进入到网站swoole目录,第二个是启动服务

    1
    2
    3
    cd /www/wwwroot/你的网站目录/Extend/swoole

     

    php ws_server.php

    启动成功之后是没有任何提示信息的

    下面是两种启动会报错的问题,付费可看解决方法,

    这个问题很好解决

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    这个问题是有冲突问题

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    问题一

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    这个问题是进程守护的问题,把那些进程全干掉重启就完成了。

    终端里面输入这个命令,查看监听的端口号,这里是查看我们设置的1314端口,以后其他的问题,也可以用这个命令

    1
    netstat -anp | grep 1314

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    然后删除这些监听

    1
    kill -9 pid

    pid是后面那个数字,自己看下自己的

    1
    2
    kill -9 2705
    kill -9 9677

    然后在运行启动详细操作截图看下面的

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    这样之后就成功了  测试下聊天有提示没

    问题二

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版

    这个问题是我之前说的宝塔php8还不支持安装swoole,宝塔官方2021年底反馈说是已经有方法,但是还没升级上,我是2022.2.18安装的还没配置成功

    php官方是直接说了,这是php8的一个bug,修复时间还没确定。

    其他问题

    xdebug和swoole有冲突,两个扩展只能安装一个。

    多版本PHP安装swoole

    swoole的Websocket功能,傻瓜式,小白也能配置,详细问题解决,安装包过版 

    不管你有多少个版本的php 只需要在对应的版本设置PHP命令行版本就行了

    这里分享个教程,但不建议你多版本使用,一个服务器配置也不是很大,你多站点还不如用多服务器,这样成本和安全都好控制

    宝塔的安装我没测试了,因为我之前就是7一个版本,和8一个版本,8有问题就果断干掉了。宝塔里面应该是每个都要单独安装下扩展,然后按照上面分享的教程,测试下具体的安装是否成功即可。

    下面是手动下载解压编译的方法:

    3个 php 版本的安装。

    // 1. 下载 swoole 源码到本地,我是下载到 /usr/local/ 目录下

    1
    git clone https://github.com/swoole/swoole-src.git

    这里需要注意,进行编译前需要确认环境是否安装 phpize,我的服务器里是没有的,所以需要另外安装。因为服务器里面有多个php版本,我们需要安装对应版本的 phpize。

    // 执行下面语句可以安装对应版本的 phpize

    1
    2
    3
    sudo apt-get install php7-dev // php 7.0 版本
    sudo apt-get install php7.1-dev // php 7.1 版本
    sudo apt-get install php7.2-dev // php 7.2 版本

    下面继续编译安装的环节

    // 2. 进入该目录,进行编译

    1
    2
    3
    4
    5
    cd /usr/local/swoole-src/
    sudo phpize7.0
    sudo ./configure --with-php-config=/usr/bin/php-config7.0 // 这里需要加上 --with-php-config,路径是 php-config 对应版本的路径  
    sudo make
    sudo make install

    编译完成后,修改 php.ini 加入,这个是加扩展的意思

    1
    extension=swoole.so

    保存修改,使用 php -m | grep swoole 查看是否安装成功

    后台? [s-45]

    回复

    +1

    爱与被爱,是人生最美好的体验。

    回复
    大版主
    社区运营团队成员
    [s-11]

    有问题请私信!

    回复
    很详细的教程,简单易懂👍!感谢分享!❤️
    回复

    请登录之后再进行评论

    登录
  • 任务
  • 帖子间隔 侧栏位置: