PR

WordPressのエラー修正 Notice: ob_end_flush(): Failed to send buffer of zlib output compression

スポンサーリンク
スポンサーリンク

WordPressのエラー「Notice: ob_end_flush(): Failed to send buffer of zlib output compression」が表示されたときの修正方法を解説します。

スポンサーリンク

WordPressエラーの原因

このエラーは、PHPの圧縮設定(zlib)と、WordPressのバッファ処理(一時的なデータ蓄積)が干渉することで発生します。

該当のサイトでは、WordPress更新時にエラーが発生して、以下のメッセージが表示されました。

Notice: ob_end_flush(): Failed to send buffer of zlib output compression (1) in /home/public_html/●●●●●.co.jp/wp-includes/functions.php on line 5427

WordPressエラー

このエラーはPHPの仕組みと関連しています。通常、PHPはデータを小出しにブラウザに送りますが、zlibというPHPの圧縮機能を使うと、データをまとめて圧縮・送信することができます。

続いて、WordPressが ob_end_flush (溜まったデータをすべて送信)という指示を出した際に、実行済みのzlibと重なると「送るバッファがない」というエラーが表示されます。

サイトの表示や操作などに支障はありませんが、エラーが表示されると見た目が悪いので、修正することにします。

エラーの修正方法 functions.phpにコードを追加

エラーの修正方法ですが、テーマファイル「functions.php」か「.htaccess」にコードを追加することで解決できます。まずはfunctions.phpを修正してみましょう。

※ WordPressのエラー修正はテーマファイル変更を伴うため、思いがけないトラブルが発生するかもしれません。必ず事前のバックアップや、修正前ファイルの保存をお忘れなく。

functions.phpにアクセスする方法は、主に以下の3種があります。状況に応じて選択します。

  • サーバーのファイルマネージャーを使う
  • FTPソフトでサーバー内のファイルにアクセス
  • WordPressのテーマファイルエディタを使う

ダッシュボードにアクセスできる場合は、外観 → テーマファイルエディタ → テーマファイルのfunctions.phpに進んでください。

WordPressテーマファイルfunctions.php修正

このコードによって、WordPressが自動でバッファを閉じようとする動作を停止させることができます。

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

functions.phpの一番最後に上記のコードを貼り付けます。

functions.phpにエラー修正コード貼り付け

スポンサーリンク

エラーの修正方法 .htaccessにコードを追加

functions.phpを変更してもエラーが出る場合は、.htaccessに以下のコードを追加してください。

php_flag zlib.output_compression Off

サーバー側で zlib.output_compression が「On」になっている場合は、この方法で解決します。

.htaccessはWordPressからアクセスできないので、サーバーのファイルマネージャーを使うか、FTPソフトでサーバー内のファイルにアクセスしてください。

WordPress .htaccessを編集

.htaccessをダウンロードして編集、もしくはファイルマネージャーで直接編集します。.htaccessファイルの一番上に、前述のコードを追記してください。

WordPressエラー修正 .htaccessにコード追記

無事にWordPressの更新が完了しました。エラーメッセージも消えています。

WordPressエラー修正完了

※ WordPressのエラー修正はテーマファイル変更を伴うため、思いがけないトラブルが発生するかもしれません。必ず事前のバックアップや、修正前ファイルの保存をお忘れなく。

タイトルとURLをコピーしました