Maison >Opération et maintenance >Nginx >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!