Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个PHP文件可以处理多个请求吗?_Php_Http_Scripting_Webserver_Lifecycle - Fatal编程技术网

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

一个PHP文件可以处理多个请求吗?,php,http,scripting,webserver,lifecycle,Php,Http,Scripting,Webserver,Lifecycle,在接收到HTTP请求时,是否可以使用一个PHP脚本来处理多个请求,而不是启动新的PHP脚本实例?如果将文件设置为HTTP服务器并将其作为进程运行,则是 如果它通过Apache和mod_php运行,则不会 (你到底为什么想要这个?还没有看到http请求的实现。我所能做的就是你等待所有的请求返回。您可以在命令行中通过分叉进程并将其发送到后台来实现这一点。或者你可以利用(分布式工作)来实现这一点。据我所知,没有办法做到这一点。我能想到的最接近的事情是使用php操作码缓存,比如(xcache或APC)。

在接收到HTTP请求时,是否可以使用一个PHP脚本来处理多个请求,而不是启动新的PHP脚本实例?

如果将文件设置为HTTP服务器并将其作为进程运行,则是

如果它通过Apache和mod_php运行,则不会


(你到底为什么想要这个?

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

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

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

您需要的是缓存数据

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


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

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

下面是一个有用的PHP守护程序库:

和一些文件:


这样一个脚本就可以跟踪来自客户端的重复请求,而不是每次都重新初始化。这是PHP的一个特性/限制,取决于您如何看待它。通常,跟踪客户端数据是使用$\u会话完成的,这可能是您应该研究的,或者是一种完全不同的技术?这似乎打破了基本的无状态HTTP隐喻;你能详细解释一下你的场景吗?我们能提供一个更全面、更全面的答案吗?好吧,基本上想象一下我的AJAX搜索程序不断向PHP脚本提问。。。给我这个关键字的结果,给我那个关键字的结果,等等。PHP脚本的开始读取MySQL数据库并初始化,所以如果PHP继续重新启动,它将不得不读取数据库数百万次。如果我能保持它的活力,让它为多个愚蠢的AJAX请求提供服务,我相信它会更好。啊,我明白了。然后,您只需要一个简单的缓存解决方案。Memcached或APC正是医生所要求的。您需要解决的是缓存踩踏问题,这里已经回答了好几次。“您是在等待所有请求返回吗?”??你期望客户做出什么样的回应?请求结束后,PHP发送一些HTTP文本后,客户端如何在相同的请求中响应,以便由相同的PHP处理?我的想法是相反的。您收到一个请求并实例化了几个新请求。如何从PHP启动请求?这意味着什么?这意味着PHP响应一个请求会发出更多的请求(想想web服务)。