ob_flush не работает на новой конфигурации apache

1

Недавно я перешел с Amazon Elastic Beanstalk на свой собственный сервер Ubuntu 14.04 lts. Все портировано плавно, за исключением одной страницы, которая использует ob_flush и продолжает обрабатывать. Вот этот блок кода:

 <?php 
 //put string of page ----> $string
 ob_end_clean();
 header("Connection: close");
 ignore_user_abort(true); // optional
 ob_start();
 echo ($string);
 $size = ob_get_length();
 header("Content-Length: $size");
 ob_end_flush(); // Strange behaviour, will not work
 flush();            // Unless both are called !
 session_write_close(); // Added a line suggested in the comment
 // Do processing here
sleep(10);
//do stuff
echo "something";

Я ожидаю, что содержимое строки $ print будет напечатано, вместо этого будет отображаться содержимое строки $ string, а затем "что-то". В этом фрагменте "что-то" будет печатать. Я отключил mod_pagespeed (который в настоящее время включен), и убедитесь, что gzip и выход буфера отключены.

Вот мой файл php.ini (у меня его вне сайта, потому что он не имеет ограничений и не имеет отношения к вопросу). У меня также есть подозрение, что это может иметь отношение к моему конфигурационному файлу apache, который вы можете увидеть здесь. Наконец, если это имеет какое-то отношение к моей проблеме, вот ссылка на мою конфигурацию в формате pagepeed. Когда я вызываю функцию, в журнале ошибок нет ошибок, кроме того, у меня есть root-доступ к серверу. Спасибо, что помогли мне исправить эту проблему!

Джейк Сильвестр

Теги:
elastic-beanstalk
mod-pagespeed

1 ответ

0

Я думаю, что вы путаете ob_get_contents и ob_end_flush: http://php.net/manual/en/function.ob-start.php.

  • 0
    Итак, вы говорите, что я должен повторить вызов ob_get_contents (), а затем ob_end_flush?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню