緊急PHP2Shell(CVE-2026-109618 / 109619)公表から1日/PHP 8.1 以前は修正版なし今すぐ診断
  1. ホーム
  2. ブログ
  3. PHP のセキュリティ

PHP のエラーを画面に出さない設定|display_errors と log_errors

公開
著者
編集部

本番のサイトで PHP のエラーを画面に出すと、サーバーの情報が外に漏れる。display_errors と log_errors の設定のしかたをまとめた。

PHP のエラーが画面に出ていると、ファイルの場所やデータベースの情報など、攻撃の手がかりを外に見せてしまう。本番ではエラーを画面に出さず、ログに残す。

この記事の要点
  • 本番は display_errors = Off、log_errors = On
  • 開発やテストの環境では、エラーをすべて出して確かめる
  • エラーを隠しても、PHP2Shell の対策にはならない(php.net も明記)
  • WordPress は WP_DEBUG_DISPLAY で画面に出さない設定にする

本番と開発の設定

設定本番開発・テスト
display_errorsOffOn
log_errorsOnOn
error_reportingE_ALLE_ALL
expose_phpOff(版を外に出さない)どちらでも

設定する場所

  • php.ini(サーバー全体)
  • レンタルサーバーなら、管理画面の php.ini の設定
  • PHP-FPM ならプールの設定(php_admin_flag[display_errors] = off)
エラーを隠しても PHP2Shell は防げない

php.net は、PHP2Shell の応急処置について「エラーを隠す(error_reporting・display_errors・@)だけでは効かない」と明記している。修正版への更新が必要。

WordPress の場合

  • wp-config.php で WP_DEBUG_DISPLAY を false にする
  • 調べるときだけ WP_DEBUG_LOG を true にして、wp-content/debug.log に出す
  • 調べ終わったら debug.log を消す(外から読まれることがある)

よくある質問

エラーを画面に出さないと、不具合に気づけませんか?

ログに残せば気づけます。
log_errors を On にして、エラーログを定期的に確かめてください。

レンタルサーバーで php.ini を変えられません

多くのレンタルサーバーには、管理画面に php.ini の設定があります。
見つからなければ、サーバー会社に問い合わせてください。

無料ツールPHP2Shell 脆弱性チェッカーPHP のバージョンとサーバー会社を選ぶだけで、危険度と今やることが分かります。

参考にした情報

この記事の情報

2026年10月22日時点の公開情報にもとづく。画面や手順は変わることがあるので、最新は各社の公式のマニュアルを確認すること。

URL を入れるだけで、PHP2Shell の危険度と今やることが分かる。移行の相談もできる。

無料で診断する

この記事の著者

編集部