web-dev-qa-db-fra.com

Remarque: ob_end_flush (): échec d'envoi du tampon de compression de sortie zlib (1) dans

Je n'ai aucun problème sur localhost. mais quand j'ai testé mes codes sur le serveur, à la fin de chaque page, je vois cet avis.

mon code:

<?php
ob_start();
include 'view.php';

$data = ob_get_contents();
ob_end_clean();
include 'master.php';
ob_end_flush();  // Problem is this line
13
AliN11

Il a été résolu lors de la désactivation de zlib.output_compression dans php.ini

zlib.output_compression = Off

6
AliN11

WordPress tente de vider les tampons de sortie à l'arrêt. Il échoue car vous avez déjà appelé ob_end_flush().

Vous devriez pouvoir maintenir la compression et décrocher simplement l'action de vidage:

remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );

Vous pouvez maintenant appeler ob_end_flush() manuellement et conserver la compression zlib.

20
alexg

J'ai trouvé qu'un plug-in particulier était la cause sur l'un des sites WP de notre client.

Dans ce cas, cela a été causé par le plug-in "NextGEN Gallery", mais bizarrement, la simple désactivation puis l'activation du plug-in ont résolu le problème.

Pour quiconque ayant ce problème, il vaut la peine de rechercher des plug-ins frontaux suspects et d'essayer de même. Si vous constatez que le problème se reproduit lorsque le plug-in coupable est réactivé, vous devez signaler un problème à l'auteur du plug-in.

2
Adambean

Vous devez toujours désactiver les erreurs frontales sur les sites en direct pour des raisons de sécurité - indépendamment.

Si vous souhaitez masquer les erreurs dans Wordpress et obtenir un journal des erreurs pour vérification à la place, vous pouvez faire quelque chose comme ceci dans votre fichier wp-config.php:

// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );

// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

PS: Si vous souhaitez utiliser le code remove_action par alexg ci-dessus, remove_action('shutdown', 'wp_ob_end_flush_all', 1); vous devrez le placer dans le fichier functions.php de votre thème.

PPS: vous pouvez également essayer d'utiliser define(‘WP_MEMORY_LIMIT’,’1024M’); dans votre fichier wp-config.php - cependant, faites attention à ne pas allouer plus que nécessaire car cela affecte la partie frontale de Wordpress et vous courrez le risque de manquer de RAM si vous avez trop de hits simultanés sur les pages.

0
Obewan