Добрый вечер!Такая проблема - переехал на новый сервер и обнаружил багу =)
Что именно не так:
1. Старый сервер. PHP-скрипт обрабатывается и походу показывает результат работы на экране браузера.
2. Новый сервер. PHP-скрипт сначала обрабатыватся, а лишь потом выводится на экран.Пример:
Скрипт почтовой рассылки, где в теле цикла отправляются письма.
Раньше он мне после каждой отправки выводил на экран по кусочкам из конечной картинки "Письмо такому-то такому-то отправлено.".
Теперь он сначала все исполнит, а только потом покажет уже готовую страницу со всеми результатами.Помогите.
Кто знает, где копать? Мне кажется, что он заголовоки посылает только после отработки скрипта, а раньше послыл до и потом отображал каждый шажочек на пути к финишу.
пхп не знаю, но, скорее всего, это буферизация.
можно настроить в пхп.ини;; Отключить буферизацию вывода
output_buffering = Off
>пхп не знаю, но, скорее всего, это буферизация.
>можно настроить в пхп.ини
>
>;; Отключить буферизацию вывода
>output_buffering = Off
Кроме того посмотрите включена ли gzip компрессия в PHP/Apache, т.к. сжатая страница должна сначала целиком прийти в браузер и только потом он ее разжимает. По-идее с включенным gzip должно быть чуть-чуть быстрее.
Все равно тоже самое.
Вот кусочек конфига:
output_buffering = Off; You can redirect all of the output of your scripts to a function. For
; example, if you set output_handler to "mb_output_handler", character
; encoding will be transparently converted to the specified encoding.
; Setting any output handler automatically turns on output buffering.
; Note: People who wrote portable scripts should not depend on this ini
; directive. Instead, explicitly set the output handler using ob_start().
; Using this ini directive may cause problems unless you know what script
; is doing.
; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
; Note: output_handler must be empty if this is set 'On' !!!!
; Instead you must use zlib.output_handler.
;output_handler = Off; Transparent output compression using the zlib library
; Valid values for this option are 'off', 'on', or a specific buffer size
; to be used for compression (default is 4KB)
; Note: Resulting chunk size may vary due to nature of compression. PHP
; outputs chunks that are few hundreds bytes each as a result of
; compression. If you prefer a larger chunk size for better
; performance, enable output_buffering in addition.
; Note: You need to use zlib.output_handler instead of the standard
; output_handler, or otherwise the output will be corrupted.
zlib.output_compression = off
;zlib.output_compression_level = -1; You cannot specify additional output handlers if zlib.output_compression
; is activated here. This setting does the same as output_handler but in
; a different order.
;zlib.output_handler =
Может быть что-то в Апаче надо поправить?
>Может быть что-то в Апаче надо поправить?постом выше советовалось же проверить, включена ли компрессия.
Посмотреть апачевский конфиг на предмет модулей mod_gzip, mod_deflate. А еще лучше посмотреть, что за заголовки приходят на клиента.