Apache + PHP同时使用多个脚本 - php

美好的一天。

首先,对不起我的英语不好=)

所以。我创建了脚本:

<?
sleep(10);
?>

我的Apache有MPM模块,很明显我没有在此脚本中使用会话,只是..只是sleep(10)。
当我在浏览器中同时打开2个标签时,第一个标签会在10秒内加载,第二个标签会在20秒内加载。

但。当我同时在2个不同的浏览器中打开此脚本时,它将在10秒后加载到每个脚本中。

因此,我开始思考,我的问题是“连接:保持活动”。我更改了脚本:

<?
  header('Connection: close');
  phpinfo();
  sleep(10);
?>

phpinfo()-可以肯定的是,头文件是在sleep()之前发送的。 Buuuut ...我遇到了同样的问题。在Chrome的第一个标签中,我获得带有“ Connection:close”的标题,在第二个标签中,当第一个脚本未结束时,我无法获得响应标题。在两种不同的浏览器中-一切正常。

现在我完全不知道我在做什么错。为什么Chrome无法对我的网站进行2个并行查询?我应该怎么做才能解决这个问题?

附言我不想为我的所有站点禁用保持活动状态。我不介意,这是否会加快CSS,图片和其他内容的加载速度。甚至其他脚本。但是我希望能够在一个浏览器中并行运行一些脚本。
P.P.S.例如:在一个页面上将有很长的ajax查询,例如-在服务器端处理一些大数据和ajax查询并以很小的间隔-获取执行第一个查询的状态。显然,它们必须是并行的。

参考方案

我知道这是一个老问题,但我遇到了同样的问题,并用session_write_close()解决了!
没有它,PHP会故意将脚本供同一会话排队。

最简单的例子:

Looong脚本1:

<?php

$_SESSION['progress'] = 0;

for ($i=0; $i < 100; $i++)
{
    session_start();
    $_SESSION['progress']++;
    session_write_close();
    sleep(1);// This is slowing script purposely!
}

?>

简短的脚本2:

<?php
session_start();
print_r($_SESSION['progress']);
?>

现在尝试一下,打开需要花费时间的第一个脚本,然后在新选项卡中打开第二个脚本,并在第一个脚本仍在运行时立即更新进度!!这么容易吧?! ;)

Ajax轮询长脚本和第二个Ajax调用以获取进度的相同原理!

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

如何使用PHP和Apache在请求中查找HTTP版本 - php

我需要确定在我的PHP脚本中运行的HTTP请求是HTTP / 1.0还是HTTP / 1.1请求,该脚本在Apache下运行。有没有办法查询此信息? 参考方案 $_SERVER['SERVER_PROTOCOL'],位于$_SERVERDocs: 'SERVER_PROTOCOL' 请求页面的信息协议的名称和修订版;即…

如何授予apache写入主目录的权限? - php

我的服务器在/ var / www / html中,我在/var/www/html/fileio_test/io_test.php中有一个php脚本<?php $logging = <<< LOG This is a test LOG; $testfile = fopen('/home/djameson/test.txt&#…

PHP:从函数返回值并直接回显它? - php

这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…