实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

一、这里引用别人的教程,不过再完善了下那个细节,原教程 没有说明遇到的一些错误跟要注意的地方,这里补充下。

 

https://blog.****.net/blog_phpxz/article/details/80325802            (安装swoole)

 

https://blog.****.net/qq_28602957/article/details/53523240        (教程 )

或者,

https://github.com/diligentyang/danmu                                         (资源下载)

 

 

二、如果顺利,以上教程是没问题的,不过有些细节如下:

 

1、如果报错,那是你的php文件运行不对(如图)

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

2、查看了下nginx的错误日志:如下:

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

 

意思是说swoole要在php_cli下运行(因为项目有个PHP文件,里面有一行php代码是new 一个swoole服务连接)。如下图:

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

 

3、解决办法:不能在浏览器输入php文件去运行,

    a、先把那个php文件修改权限,改成可执行,linux命令 chmod,也可以用FileZilla Client连接服务器直接右键改

    b、在linux下,直接用命令:php 空格  你的这个PHP文件所放的路径,再按回车,就可以了。

    c、如果想在后台一直不间断运行:

         nohup php ws_server.php > log.txt &    (将php ws_server.php放到后台运行,输出的内容保存在log.txt文件中)

附:

查看php是否加载的模块

php -m | grep swoole

 

三、如果在阿里云上,服务端运行了,客户端没法连接,大多是端口没开放

解决办法:

1、开放阿里云端口

登陆控制台,点要开放端口的实例ECS(开放端口是一个一个实例的,如果你有多个实例,想开放哪个的端口,就要单独开,不能直接点下面的【安全组】)

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

 

实时弹幕实现+阿里云Linux(lnmp一键安装包)+swoole+php

 

2、在LINUX中,用命令开放端口

iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

# 查看规则是否生效

iptables -L -n

 

然后就可以连接了

我的QQ:2262689081