В сценарии PHP настройки выходного буфера игнорируются сервером

Я пытаюсь очистить вывод определенных скриптов в браузере по требованию, но они не работают на нашем сервере производств.

Например, я попробовал запустить «Инструмент изменения колоды Phoca» (найти его в Google), и я не вижу никакого вывода, пока скрипт не завершит выполнение.

Я попытался сразу же сбросить буфер на другом скрипте, который отлично работает на любом сервере, но с использованием следующего кода:

echo "something"; ob_flush(); flush(); 

Установка "ob_implicit_flush (1);" не помогает.

Сервер Apache 2.2.21 с PHP 5.2.17 работает в Linux. Вы можете увидеть наш файл php.ini здесь, если это поможет: http://www.smallfiles.org/download/1123/php.ini.html

Это не единственная проблема, с которой сервер сталкивается с игнорированием директив в сценарии. Сервер также игнорирует тайм-аут, например:

 ini_set('max_execution_time', 900*60); 

А ТАКЖЕ

 set_time_limit(86400); 

Сценарий всегда истекает на php.ini по умолчанию.

Кажется, не имеет значения, выполняется ли сценарий в IE или Firefox.

Решила эту тайну. Оба из них.

Чтобы исправить проблему выходного буфера, мне нужно было отключить сжатие gzip в файле .htaccess, хотя я бы хотел просто сделать это в скрипте.

Вот что вы должны поместить в ваш файл .htaccess:

 <IfModule mod_gzip.c> mod_gzip_on No </IfModule> SetEnv no-gzip dont-vary 

Чтобы исправить завершение сценария без ошибок, я проверил файлы журнала Apache и обнаружил, что это не PHP, а в конфигурации Apache: истечение указанного времени истекает: ap_content_length_filter: apr_bucket_read () не удалось

Пришлось увеличить время ожидания Apache, чтобы предотвратить эту ошибку, чтобы она выглядела так, как будто мои скрипты выходили из строя. Включение KeepAlive в Apache также помогло решить проблему раз и навсегда.

Надеюсь, это поможет кому-то и спасибо за помощь всем elses!

Вы можете загрузить неправильный файл php.ini , поскольку он имеет тенденцию к изменению в зависимости от каталога.

Чтобы проверить загруженный файл php.ini , напишите: echo php_ini_loaded_file(); , который предоставит вам каталог, в котором он находится. см. php.net

если это не удается, см. serverfault.com для сайта stackexchange сервера.