【问题标题】:How many PHP scripts can run concurrently via http request?通过 http 请求可以同时运行多少个 PHP 脚本?
【发布时间】:2010-01-06 19:18:03
【问题描述】:

我知道 PHP 脚本可以同时运行,但我注意到当我运行一个脚本然后运行另一个脚本时。它等待第一个完成,然后执行它必须做的事情?

是否有我必须更改的 Apache 配置或者我使用不同的浏览器或其他什么?!!

谢谢大家

编辑

如果我使用不同的浏览器,我可以访问我需要的页面/PHP 脚本吗?!这是否限制了浏览器的请求数量?阿帕奇?

【问题讨论】:

  • 我猜这是服务器故障或超级用户的问题。
  • 另一方面,关于编程语言的执行,这是一个相当技术性的问题。
  • 我的服务器没有任何问题。只是在其上运行的 PHP 脚本。

标签: php sql-server apache concurrency


【解决方案1】:

想到两件事:

  1. HTTP 1.1 建议最大限制为 2 个同时连接到任何给定域。这将出现一个问题,即您一次只能在网站上打开一个页面,除非您切换浏览器。
    编辑:这通常由客户端而不是服务器强制执行

  2. 如果您的网站使用会话,您会发现一次只能加载一个页面...
    ...除非您调用session_write_close(),此时第二页现在可以打开现已解锁的会话文件。

【讨论】:

  • 非常有趣。我不知道这两个事实。如果第二个请求不写入任何会话数据而是使用它怎么办。无论脚本中的任何地方是否有 session_start,PHP 都会暂停?
  • 我相信 session_write_close() 仍然允许您读取会话值,但我还没有测试过(我们在我工作的地方不使用 PHP)。对于第 1 点,你真的不能……是客户这样做。在 Firefox 上,我相信 FasterFox 插件可以做到。 IE 使用注册表项:support.microsoft.com/kb/282402
  • +1 因为它可能是#2。我从来不知道任何网络服务器实际上强制执行 #1。
  • @Ben James:是的,#1 通常由客户强制执行。我已经在答案中添加了一个注释。
  • @R. Bemrose - 我会使用那个函数,但问题是第一个脚本需要很长时间才能完成,并且必须在整个过程中使用会话变量。所以第二个只能等待。我可能不得不重写我的脚本的某些部分。
【解决方案2】:

如果你在 fastcgi 下运行 php,你可能可以避免这个限制。

【讨论】:

    【解决方案3】:

    我没有遇到过 apache / php 这个问题,我工作的项目运行 3 个 iframe,每个 iframe 是一个 php 脚本 + 主页,apache 同时处理所有 4 个。

    您可能想检查您的 apache 配置并查看线程是如何设置的。

    这篇文章可能会有所帮助: http://www.devside.net/articles/apache-performance-tuning

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 2017-05-08
      • 2019-04-11
      • 2018-08-29
      • 1970-01-01
      相关资源
      最近更新 更多