有没有办法通过 PHP-FPM 跑 PHP 实现一个 socket server?

2014-02-26 15:34:39 +08:00
 mantianyu
nginx + php-fpm 的方式可以处理 http 请求, 但是就不能处理 socket 连接了.

网上 php 写的 socket server 似乎都只能是在 cli 模式下运行. 这样虽然能够做为 socket server 来处理 socket 连接, 但是又不能处理 http 请求了.

我需要同时能够接收 http 请求又能够接收 socket 连接的 php 解决方案. 我知道 php-fpm 是作为一个 deamon 跑在后台的, 能不能让 php-fpm 处理 socket 连接? php-fpm 只能作为一个 fastcgi 来用吗?

不借助 python, 不用 nodejs 等这些自带 http 服务器的语言的话, 有没有可能实现?
4738 次点击
所在节点    程序员
26 条回复
mantianyu
2014-02-26 22:21:37 +08:00
@itfanr 不在一个区域网的话, 用 http 也做不到双向实时的通信啊, http 只是个请求 --- 响应模型, 仅用 http 要怎么进行远程控制?
itfanr
2014-02-26 23:05:21 +08:00
@mantianyu 那你说路由器的远程下载怎么实现的?
mantianyu
2014-02-26 23:30:28 +08:00
@itfanr 原来你是这个意思, 那如此说来, socket 就不能实现远程控制吗? 谁说 socket 只能用在区域网了
itfanr
2014-02-27 09:38:01 +08:00
@mantianyu 看来我理解片面了
ybf1220
2014-02-27 09:45:20 +08:00
php-fpm 可以作为多个 factcgi 用,只要在/etc/php-fpm.d/写入相应的配置文件(这是防止跨站的好方法,不多很少人用) ,我只知道 php-fpm 除了在端口上监听,还可以在 socket 上监听,listen = /tmp/fpm.sock 。这样 nginx 只要反代到 sock 路径就能解析 php
pushy
2014-02-27 18:53:47 +08:00
bash-3.2# php -S 127.0.0.1:80

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/101959

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX