如何在基于cpanel的共享托管平台上设置和运行PHP WebSocket服务?

问题描述 投票:-1回答:1

我已经在Ratchet PHP中创建了一个聊天应用程序。使用WAMP在本地计算机上运行良好。我希望它在实时服务器上安装。

在我的服务器上,我有:

  • PHP支持
  • SSH访问
  • 端口9000,已为出站连接打开。
  • 子域

我没有的东西:

  • 没有用于InBound连接的端口。
  • 在SSH中没有root访问权限。说我看不到/编辑iptables

我运行了php server.php,它给出了有关服务器的成功消息,并且正在侦听端口9000。但是,当HTML页面尝试使用ws:// domain:9000进行连接时,它将遇到错误-

Firefox无法在以下位置建立与服务器的连接WS://domain.com:9000 /

我用Google搜索了很多,看来我需要的是入站连接的端口。

但是根据this answer,我需要的是PHP支持Ratchet在共享主机上工作。谁能解释我的真正需求,并且有任何解决方法,如果服务器上我没有的东西列表中没有该方法。

php cpanel ratchet phpwebsocket
1个回答
0
投票

基本上,不是

共享主机环境(即具有VirtualHost配置,Apache,PHP,MySQL和CPanel接口的Apache)不太可能支持您的websocket应用程序。

要使websocket正常工作,您需要执行以下任一操作:

  1. 具有专用于websocket入站连接的端口;或
  2. 具有一个HTTP / HTTPS服务器,该服务器知道何时升级连接并将代理传递给您的websocket应用程序。

第一条路由要求服务器允许入站连接到某个端口号。对于主机提供商来说,这是一个潜在的安全问题,因此,您的供应商不太可能授予您该权限。

第二条路由要求Apache服务器同时安装并启用mod_proxymod_proxy_wstunnel。它还要求您使用ProxyPass配置,该配置不能完全被.htaccess配置覆盖。

因此,除非您的托管向您授予触摸Apache主要配置的权限(否则将为您应用此类更改,否则您将毫无希望。)>

建议

要运行您自己的websocket服务,您应该考虑使用虚拟专用服务器服务,例如Amazon EC2,DigitalOcean VPS。

© www.soinside.com 2019 - 2024. All rights reserved.