棘轮:是不是应该通过“php”命令手动将其作为服务器运行?

Posted

技术标签:

【中文标题】棘轮:是不是应该通过“php”命令手动将其作为服务器运行?【英文标题】:Ratchet: Should leave it run as a Server via "php" command, manually?棘轮:是否应该通过“php”命令手动将其作为服务器运行? 【发布时间】:2016-09-27 02:35:13 【问题描述】:

我是 LAMP 人,现在开始通过 Ratchet 学习 WebSockets。到目前为止,在启动​​ docs here 之后一切顺利,因此我能够运行 Ratchet 服务器,如下所示:

$ php server.php

然后我的 javascript 客户端可以连接到它,等等。

但是..

作为一个 LAMP 人,我非常习惯将 Apache(或)nginx 作为任何 PHP 文件的“服务器”来提供给公众。现在...我应该在我的终端中运行上面的命令,这将是棘轮服务器吗?

有没有办法不那样运行服务器? (或)有没有办法让 Apache (例如) 管理 Ratchet 服务器?这意味着,只要我键入,就让 Apache 启动/停止 Ratchet:

$ service httpd start
$ service httpd stop

这样我更有信心。另外,SSL 处理等也将由 Apache 更轻松地完成。请问我说的对吗?

请提出建议,因为我对这个领域很陌生。谢谢大家:)

【问题讨论】:

【参考方案1】:

你确实是对的,在命令行中运行它不是一个生产就绪的解决方案。

在教程的最后一页(deployment) 有一些方法可以做到这一点。例如,管理程序完全解释了如何在那里设置它。

如果您不喜欢使用虚拟机管理程序,那么您可以尝试编写一个在启动时执行的 shell 脚本,用于启动 server.php(不太好的解决方案,但更容易)

您想要使用的 ssl 部分可以使用带有 apache 的代理。

如果您使用的是 Apache Web 服务器(2.4 或更高版本),请在 httpd.conf 文件中启用这些模块:

mod_proxy.so

mod_proxy_wstunnel.so

将此设置添加到您的 httpd.conf 文件中

ProxyPass /wss2/ ws://ratchet.mydomain.org:8888/

如果您还有其他问题,请告诉我。

【讨论】:

非常感谢您澄清这一点。 Hypervisor 也可以简单地处理 SSL 部分吗? (但对于 Apache,我的是 2.2,所以用那个 Mod 再次编译它是一件令人头疼的事情。)否则,假设我在同一个服务器上使用 Nginx。那么我可以将 Nginx(用于此 WS/WSS 域)与现有的 Apache(服务于其他域)一起使用吗?然后我应该将 Nginx 配置为仅在端口 8888 上运行。因此 Apache 和 Nginx 不会相互冲突。对? :) 您不必为此重新编译 apache。如果您按照 socketo.me 的教程进行操作,您将获得如何设置它的说明。要添加 mod_proxy.so,您只需在配置中执行此操作,无需重新编译。 呃...我正在关注同一个文档。请问您是指“HAproxy”吗?

以上是关于棘轮:是不是应该通过“php”命令手动将其作为服务器运行?的主要内容,如果未能解决你的问题,请参考以下文章

使用棘轮 php 将消息推送到 websockets 而没有 ZeroMQ

WebSockets + PHP(棘轮)登录系统

带有棘轮的 PHP WebSockets - 示例不起作用

我应该使用nginx作为WAMP的代理吗?

无法设置棘轮

棘轮和 Websockets - 无法正常工作