PHP文件可以处理多个请求吗?

时间:2009-09-29 18:59:03

标签: php http scripting webserver lifecycle

当收到HTTP请求时,有没有办法让一个PHP脚本处理多个请求,而不是启动PHP脚本的新实例?

6 个答案:

答案 0 :(得分:2)

PHP围绕“无共享”概念构建,使您能够通过分布式网络更好地负载平衡和扩展应用程序。所以“不”这个不能完成。如果您认为启动成本很高,那么可以调整架构以在概念上“尽可能多地”缓存您的对象/数据/视图。使用serialize()或其他东西。

答案 1 :(得分:1)

如果您将文件设为HTTP服务器并将其作为进程运行,那么是。

如果它通过Apache和mod_php运行,没有。

(为什么你到底想要那个?)

答案 2 :(得分:1)

还没有看到http请求的实现。我所能完成的就是你等待所有要求回来。您可以通过分叉进程并将其发送到后台在命令行中执行此操作。或者你可以利用Gearman(分布式工作)。

答案 3 :(得分:1)

据我所知,没有办法做到这一点。我能想到的最近的事情是使用像(xcache或APC)这样的php操作码缓存。这些将缓存代码以加快脚本执行速度。我相信每个请求都有自己的脚本实例。

答案 4 :(得分:1)

您想要的是缓存数据。

您的php脚本应该只检查缓存中的请求是否有有效数据。如果没有,则执行数据库读取,更新缓存,并将结果返回给用户。

我建议您查看各种缓存库,并仔细考虑如何扩展缓存。一个开始的地方是Zend_Cache,可能在后端有memcached。

答案 5 :(得分:0)

处理HTTP请求的脚本可以使用套接字从小型PHP守护程序获取数据。

这是一个有用的PHP守护程序库:http://github.com/kvz/system_daemon

还有一些文档:

http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/