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

标签 php cpanel lamp ratchet phpwebsocket

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

在我的服务器上,我有:

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

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

  • 我跑了php server.php它给出了有关服务器已启动并在端口 9000 监听的成功消息。但是当 HTML 页面尝试使用 ws://domain:9000 连接它时,它会遇到错误 -

    Firefox can’t establish a connection to the server at ws://domain.com:9000/



    我用谷歌搜索了很多,看来我需要的是一个用于入站连接的端口。

    但据this answer我需要的是 PHP 支持 Ratchet 在共享主机上工作。任何人都可以解释我真正需要什么以及是否有任何解决方法如果它在我的服务器上的内容列表中不可用。

    最佳答案

    基本上,没有

    共享托管环境(即带有 VirtualHost 配置、PHP、MySQL 和 CPanel 接口(interface)的 Apache)不太可能支持您的 websocket 应用程序。

    要使 websocket 工作,您需要:

  • 有一个专用于 websocket 入站连接的端口;或
  • 拥有一个 HTTP/HTTPS 服务器,它知道何时将连接和代理传递升级到您的 websocket 应用程序。

  • 第一个路由要求服务器允许入站连接到某个端口号。这对于托管服务提供商来说是一个潜在的安全问题,因此您的供应商不太可能同意您这样做。

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

    因此,除非您的主机授予您访问 Apache 主要配置的权限(或将为您应用此类更改),否则您将非常绝望。

    建议

    要运行您自己的 websocket 服务,您应该考虑使用 Virtual Private Server 服务,例如 Amazon EC2、DigitalOcean VPS。

    关于php - 如何在基于 cpanel 的共享托管平台上设置和运行 PHP WebSocket 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57989437/

    相关文章:

    php - 如何以编程方式在共享 Linux 托管计划上创建 MySQL 数据库

    javascript - WebSocket 服务器 php 脚本

    apache - 将原生 apache 从 2.2.21 升级到 2.4.2 - Lion 10.7.4

    javascript - Ajax 自动更新社交网站中的时间和日期

    php - 使用 Codeigniter Mysql 进行实时搜索

    linux - 将文件所有权更改为 root 但原始用户仍然可以编辑该文件?

    jquery - 在页面加载时向 Ajax 客户端发送初始配置变量的常用方法有哪些?

    php - LAMP 站点上较长的目录路径/名称和 URL 有哪些缺点?

    php - 将 PHP "grouped"数组转换为 "segmented"数组

    php - Json编码获取重复数据