如何在基于 cpanel 的共享主机平台上设置和 运行 PHP WebSocket 服务?
How to setup and run a PHP WebSocket service on a cpanel-based shared hosting platform?
我已经在 Ratchet PHP 中创建了一个聊天应用程序。它在使用 WAMP 的本地机器上运行良好。我希望它在实时服务器上设置。
在我的服务器上我有:
- PHP支持
- SSH 访问
- 端口 9000,为 OutBound 连接打开。
- 子域
我没有的:
- 没有用于 InBound 连接的端口。
- SSH 中没有根访问权限。说我不能see/edit
iptables
I 运行 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 配置的 Apache、PHP、MySQL 和 CPanel 接口)不太可能支持您的 websocket 应用程序。
要使 websocket 正常工作,您需要:
- 有一个专用于 websocket 入站连接的端口;或
- 有一个 HTTP/HTTPS 服务器知道何时升级连接和代理传递到您的 websocket 应用程序。
第一条路线要求服务器允许入站连接到某个端口号。这对托管服务提供商来说是一个潜在的安全问题,因此您的供应商不太可能同意您这样做。
第二条路线要求 Apache 服务器具有两个 mod_proxy and mod_proxy_wstunnel installed and enabled. It also require you to use ProxyPass 配置,根本不能被 .htaccess
配置覆盖。
因此,除非您的主机授予您访问 Apache 主配置的权限(或者会为您应用此类更改),否则您将毫无希望。
建议
要运行你自己的websocket服务,你应该考虑使用虚拟专用服务器服务,例如Amazon EC2,DigitalOcean VPS。
我已经在 Ratchet PHP 中创建了一个聊天应用程序。它在使用 WAMP 的本地机器上运行良好。我希望它在实时服务器上设置。
在我的服务器上我有:
- PHP支持
- SSH 访问
- 端口 9000,为 OutBound 连接打开。
- 子域
我没有的:
- 没有用于 InBound 连接的端口。
- SSH 中没有根访问权限。说我不能see/edit
iptables
I 运行 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 配置的 Apache、PHP、MySQL 和 CPanel 接口)不太可能支持您的 websocket 应用程序。
要使 websocket 正常工作,您需要:
- 有一个专用于 websocket 入站连接的端口;或
- 有一个 HTTP/HTTPS 服务器知道何时升级连接和代理传递到您的 websocket 应用程序。
第一条路线要求服务器允许入站连接到某个端口号。这对托管服务提供商来说是一个潜在的安全问题,因此您的供应商不太可能同意您这样做。
第二条路线要求 Apache 服务器具有两个 mod_proxy and mod_proxy_wstunnel installed and enabled. It also require you to use ProxyPass 配置,根本不能被 .htaccess
配置覆盖。
因此,除非您的主机授予您访问 Apache 主配置的权限(或者会为您应用此类更改),否则您将毫无希望。
建议
要运行你自己的websocket服务,你应该考虑使用虚拟专用服务器服务,例如Amazon EC2,DigitalOcean VPS。