服务器上的 PHP 版本是 5.3.3 的,是很早以前用源码编译的。想着升级 PHP 版本的话好像有些麻烦,怕万一再失败了。 然后有个页面需要用到 WEBSOCKET 服务,网上找了下,有 WORKERMAN 和 SWOOLE 都可以,但是他们都不支持 PHP5.3.3, 我这个页面的并发量不大,几十个人,最好几百个人。现在怎么办呢?我自己找代码自己撸一个 WEBSOCKET 吗? 求指点
1
zhs227 2017-07-27 21:07:08 +08:00
这些都是可以 cli 方式运行的,换个目录再装一个。
|
2
edison111cry OP @zhs227 大神,请讲再细一些。我明白他们的 WEBSOCKET 是可以用 PHP 的 CLI 模式来运行在后台,但是他们的官网上都必须要求高版本的 PHP。所以换个目录再装一个是指啥?
|
3
xfspace 2017-07-27 21:12:58 +08:00 via Android
@edison111cry 换个目录装高版本 PHP
|
4
shmilyin 2017-07-27 21:13:46 +08:00 via Android
手动编译安装,指定不同的目录就好了,php-fpm 的形式也是可以跑多版本的
|
5
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 也行 …… |
6
edison111cry OP @zhs227 多谢哈,明白了,我以为装个高版本的 PHP 先要把我之前的低版本的给删掉或覆盖呢。那通过 HTTP 发的请求走到 NGINX 里还是用的以前的低版本的 PHP 是吧,我在低版本里 PHP 代码里写 WEBSOCKET 的逻辑推送时,他会调用这个 WEBSOCKET 接口是吗?
|
7
zhs227 2017-07-27 21:36:09 +08:00
如果你还要在低版本下面给 Workerman 的 GateWay 发信息,用它自身的 GatewayClient 的库,那你必须把 Web 运行的那个版本也升上来。GatewayClient 可能没办法在那么低的版本下工作。
不想升老版本,就没办法使用库提供的便利,只能自己再写一套基于 Tcp 或 Udp 的调用接口给老版本使用。 |
8
edison111cry OP @zhs227 多谢指导,那看来只能升级 PHP 版本了,哎,又比较担心升级失败了 :(
|
9
ACTom 2017-07-28 08:50:10 +08:00
不需要升级旧版本的,php 可以装多个版本的,不管是 cli 还是 web 的,自己编译当然更好,不自己编译可以用 sclo 源或者 remi 源。
nginx 与 php 搭配一般是 php-fpm,新版本的 php-fpm 你可以配置不同的端口或者 sockets 文件,nginx 中指定新版本的 php 的端口就好。 |