V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
edison111cry
V2EX  ›  问与答

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

  •  
  •   edison111cry · 2017-07-27 21:02:01 +08:00 · 2882 次点击
    这是一个创建于 2674 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    9 条回复    2017-07-28 08:50:10 +08:00
    zhs227
        1
    zhs227  
       2017-07-27 21:07:08 +08:00
    这些都是可以 cli 方式运行的,换个目录再装一个。
    edison111cry
        2
    edison111cry  
    OP
       2017-07-27 21:10:33 +08:00
    @zhs227 大神,请讲再细一些。我明白他们的 WEBSOCKET 是可以用 PHP 的 CLI 模式来运行在后台,但是他们的官网上都必须要求高版本的 PHP。所以换个目录再装一个是指啥?
    xfspace
        3
    xfspace  
       2017-07-27 21:12:58 +08:00 via Android
    @edison111cry 换个目录装高版本 PHP
    shmilyin
        4
    shmilyin  
       2017-07-27 21:13:46 +08:00 via Android
    手动编译安装,指定不同的目录就好了,php-fpm 的形式也是可以跑多版本的
    zhs227
        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 也行
    ……
    edison111cry
        6
    edison111cry  
    OP
       2017-07-27 21:23:25 +08:00
    @zhs227 多谢哈,明白了,我以为装个高版本的 PHP 先要把我之前的低版本的给删掉或覆盖呢。那通过 HTTP 发的请求走到 NGINX 里还是用的以前的低版本的 PHP 是吧,我在低版本里 PHP 代码里写 WEBSOCKET 的逻辑推送时,他会调用这个 WEBSOCKET 接口是吗?
    zhs227
        7
    zhs227  
       2017-07-27 21:36:09 +08:00
    如果你还要在低版本下面给 Workerman 的 GateWay 发信息,用它自身的 GatewayClient 的库,那你必须把 Web 运行的那个版本也升上来。GatewayClient 可能没办法在那么低的版本下工作。

    不想升老版本,就没办法使用库提供的便利,只能自己再写一套基于 Tcp 或 Udp 的调用接口给老版本使用。
    edison111cry
        8
    edison111cry  
    OP
       2017-07-27 21:43:47 +08:00
    @zhs227 多谢指导,那看来只能升级 PHP 版本了,哎,又比较担心升级失败了 :(
    ACTom
        9
    ACTom  
       2017-07-28 08:50:10 +08:00
    不需要升级旧版本的,php 可以装多个版本的,不管是 cli 还是 web 的,自己编译当然更好,不自己编译可以用 sclo 源或者 remi 源。
    nginx 与 php 搭配一般是 php-fpm,新版本的 php-fpm 你可以配置不同的端口或者 sockets 文件,nginx 中指定新版本的 php 的端口就好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   985 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:19 · PVG 05:19 · LAX 13:19 · JFK 16:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.