想搭一个 WEBSOCKET 服务器,但 PHP 版本太低

2017-07-27 21:02:01 +08:00
 edison111cry

服务器上的 PHP 版本是 5.3.3 的,是很早以前用源码编译的。想着升级 PHP 版本的话好像有些麻烦,怕万一再失败了。 然后有个页面需要用到 WEBSOCKET 服务,网上找了下,有 WORKERMAN 和 SWOOLE 都可以,但是他们都不支持 PHP5.3.3, 我这个页面的并发量不大,几十个人,最好几百个人。现在怎么办呢?我自己找代码自己撸一个 WEBSOCKET 吗? 求指点

2904 次点击
所在节点    问与答
9 条回复
zhs227
2017-07-27 21:07:08 +08:00
这些都是可以 cli 方式运行的,换个目录再装一个。
edison111cry
2017-07-27 21:10:33 +08:00
@zhs227 大神,请讲再细一些。我明白他们的 WEBSOCKET 是可以用 PHP 的 CLI 模式来运行在后台,但是他们的官网上都必须要求高版本的 PHP。所以换个目录再装一个是指啥?
xfspace
2017-07-27 21:12:58 +08:00
@edison111cry 换个目录装高版本 PHP
shmilyin
2017-07-27 21:13:46 +08:00
手动编译安装,指定不同的目录就好了,php-fpm 的形式也是可以跑多版本的
zhs227
2017-07-27 21:14:13 +08:00
一个服务器上可以不止一个版本的 PHP。假设之前安装在 /usr/local/php 下面,你完全可以再安装一个 PHP7 到 /usr/local/php7 目录下。
然后运行 /usr/local/php7/bin/php start.php -d

或者还有一个办法,不要用 php 写 websocket,用 node 或者 python 去写这个 websocket 服务也行
或者再买台服务器装个 PHP 也行
……
edison111cry
2017-07-27 21:23:25 +08:00
@zhs227 多谢哈,明白了,我以为装个高版本的 PHP 先要把我之前的低版本的给删掉或覆盖呢。那通过 HTTP 发的请求走到 NGINX 里还是用的以前的低版本的 PHP 是吧,我在低版本里 PHP 代码里写 WEBSOCKET 的逻辑推送时,他会调用这个 WEBSOCKET 接口是吗?
zhs227
2017-07-27 21:36:09 +08:00
如果你还要在低版本下面给 Workerman 的 GateWay 发信息,用它自身的 GatewayClient 的库,那你必须把 Web 运行的那个版本也升上来。GatewayClient 可能没办法在那么低的版本下工作。

不想升老版本,就没办法使用库提供的便利,只能自己再写一套基于 Tcp 或 Udp 的调用接口给老版本使用。
edison111cry
2017-07-27 21:43:47 +08:00
@zhs227 多谢指导,那看来只能升级 PHP 版本了,哎,又比较担心升级失败了 :(
ACTom
2017-07-28 08:50:10 +08:00
不需要升级旧版本的,php 可以装多个版本的,不管是 cli 还是 web 的,自己编译当然更好,不自己编译可以用 sclo 源或者 remi 源。
nginx 与 php 搭配一般是 php-fpm,新版本的 php-fpm 你可以配置不同的端口或者 sockets 文件,nginx 中指定新版本的 php 的端口就好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/378448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX