php. Если не работают функции flush и system


После переноса одного проекта с сервера ubuntu на centos перестали работать такие функции как flush (), system (), т.е. те функции, которые позволяют постоянно отображать новые данные до полного завершения скрипта. Данные выводились на экран только лишь после полного выполнения скриптов.
Связано это с тем, что в разных дистрибутивах разные настройки по умолчанию.

Чтобы эти функции корректно работали необходимо:
1. В настройках php.ini отключить директиву output_buffering

1
output_buffering=Off

Директива output_handler должна быть отключена

2. Если фронтэндом стоит nginx, то необходимо отключить в location параметр proxy_buffering:

1
2
3
4
5
6
    location / {
        proxy_pass  http://backend;
        include     /etc/nginx/proxy.conf;
        proxy_buffering     off;

    }

Популярность: 2%


Также почитайте эти записи:

Получать новые статьи:

Оставить комментарий



Подписка на блог

Подпишись на обновление блога по RSS блога
Число подписчиков: 119

Поиск по сайту

Партнеры

Реклама

Партнеры