Назад | Перейти на главную страницу

Apache выполняет только один запрос, а все остальные запросы сначала ожидают завершения

У меня есть базовая установка сервера Apache2 и PHP5.3 на моем локальном компьютере с Ubuntu.

Я создал файл index.php и заснул в нем 30 секунд

<?php
sleep(30); // script sleep 30s
?>

Когда я запускаю "localhost / index.php" в веб-браузере, запрос ожидает 30 секунд.

За это время я удаляю эту строку sleep(30); и запустить в новой вкладке "localhost / index.php"

Второй запрос ожидает завершения первого, так что подождите 30 секунд.

Это проблема, потому что Apache запускает только один процесс / поток. Как настроить Apache для нормальной работы? Или кто-нибудь может мне объяснить, что происходит?

Вероятно, вы зашли в тупик в файле сеанса; выключите session.auto_start и / или вызовите session_write_close () перед сном (30).

Это связано с сеансом PHP. Файл сеанса (этот странный файл, который находится в / tmp / SOMETHING) блокируется для первого запроса.

Вам следует позвонить session_write_close() перед sleep() (или любой бесполезный звонок). Вы можете отключить session_autostart если вы тоже не хотите его использовать.