WordPressサイトを構築する時、不具合などが出たら原因を見つけるためにWP_DEBUGを有効化してデバックモードにすることがあるかと思いますが、本番環境でデバックモードを有効化してしまうと、エラー内容が公開中のページに表示されてしまいます。
非公開のテスト環境やローカル環境なら問題ないかと思いますが、本番環境ではそうはいきません。そんな時に、エラー内容を公開中のページに表示せずに、ログファイルとして保存する方法がありましたのでメモします。
WordPressのデバックモード
WordPressのデバックモードを有効化するには、wp-config.phpを編集する必要があります。大切なファイルですので編集前はバックアップを必ずとっておいてください。
wp-config.phpをテキストエディタで開くとdefine('WP_DEBUG', false);
と記載されている箇所があるかと思います。(検索をすると早く見つかります)この部分をdefine('WP_DEBUG', true);
と変更することでデバックモードが有効化されます。
しかし、このままだと公開中のページにエラー内容が表示されてしまいます。
エラー内容をログファイルに出力する方法
エラー内容を公開中のページには非表示にしログファイルに出力させるには、wp-config.phpに記載したdefine('WP_DEBUG', true);
の下に以下のコードを追加します。
このようにすることによって、デバックモードが有効な時にだけ、debug.logにエラー内容が出力される状態になります。define('WP_DEBUG', false);
にしてデバックモードを無効化すると、debug.logは出力されません。
debug.logのダウンロードについて
debug.logはwp-contentフォルダ内に出力されていますのでFTPソフトなどでダウンロードして確認してみてください。エラーの内容が記載されていますので、ゆっくり修正作業ができます。もし、debug.logが出力されていない場合はwp-contentのパーミッションが書き込み可能になっているか確認してみてください。
debug.logのセキュリティについて
debug.logを出力できるようになったのは良いですが、外部からこのdebug.logが閲覧できる状態なのはセキュリティ的に良くないかと思いますので、確認したらdebug.logをすぐに削除するか、.htaccessを使って外部からアクセスできないようにしたほうが良いかと思います。
.htaccessは、wp-contentの直下にアップロードします。
.htaccessファイルの作成について
.htaccessファイルを作成するにはまず、テキストエディタでhtaccess.txtファイルを作成し、下記のコードをコピー&ペーストします。その後、FTPソフトでアップロードしてから.htaccessにリネームすると作成できます。