Maison >Opération et maintenance >Nginx >Comment résoudre le problème de l'échec du vidage php sous nginx

Comment résoudre le problème de l'échec du vidage php sous nginx

王林
王林avant
2020-11-11 15:43:432030parcourir

Comment résoudre le problème de l'échec du vidage php sous nginx

Problème

Lorsque je débogais la sortie PHP ligne par ligne, j'ai découvert que ob_flush et flush n'étaient pas valides. Je peux essentiellement juger les paramètres de php. ini via phpinfo normalement.

(Partage vidéo d'apprentissage : Tutoriel vidéo php)

Solution

En regardant à nouveau Nginx, j'ai découvert qu'il existe les paramètres suivants dans Nginx :

fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;

Le problème est essentiellement trouvé. Nginx mettra en mémoire tampon les informations sorties par PHP Lorsqu'elles atteignent 128 Ko, les données du tampon seront envoyées au client. Ensuite, nous devons d'abord réduire la taille du tampon, par exemple :

fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;

Et gzip doit être désactivé

gzip off;

Ensuite, en PHP, avant ob_flush et flush, affichez un morceau de contenu jusqu'à 4k, par exemple :

echo str_repeat(‘ ‘, 1024*4);

À ceci point, PHP Le contenu requis peut être affiché ligne par ligne via ob_flush et vidé normalement.

Recommandations associées : Tutoriel Nginx

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer