WordPress:WP_DEBUG使用時に、エラー内容をログファイルに表示する方法

  • Posted on
  • Category : WordPress
WordPress:WP_DEBUG使用時に、エラー内容をログファイルに表示する方法

使う度にググってる気がするので備忘録。WordPressで不具合等が出て原因を特定する際にWP_DEBUGを利用してデバッグモードにすることがあると思いますが、そのまま利用すると公開しているページにもエラー内容が表示されてしまいます。非公開サイトやローカル環境など自分だけしか見えない状況であれば良いのですが、既に本番公開されているような場合にエラー内容をページ上には出さずに確認できるようにする方法です。

デバッグモードを有効化する

デバッグモードを有効化する際には、まずwp-config.php(70行目辺りから始まる)にある下記のような記述を見つけます。

wp-config.php

/**
 * 開発者へ: WordPress デバッグモード
 *
 * この値を true にすると、開発中に注意 (notice) を表示します。
 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
 */
define('WP_DEBUG', false);

該当箇所を見つけたら、上記のdefine('WP_DEBUG', false);となっているところをdefine('WP_DEBUG', true);に変更することでデバッグモードが有効化されます。
開発やエラー確認などを行っていき必要なくなった場合は、変更した部分を再度falseにしておけばデバッグモードを無効化できます。

ログファイルに出力させる

上で紹介したようにdefine('WP_DEBUG', true);にすることでデバッグモードを有効化できますが、このままだとエラー内容がページ上にも表示されてしまいます。
本番で稼働している場合などエラーをページ上に出したくないという場合は、wp-config.phpに以下のように記述してあげることでエラー内容が記述されたログファイルを出力することができます。

wp-config.php

define('WP_DEBUG', true);

if ( WP_DEBUG ) {
	define('WP_DEBUG_LOG', true);
	define('WP_DEBUG_DISPLAY', false);
	@ini_set('display_errors',0);
}

上記を記述することでwp-contentにdebug.logというファイルが出力され、そこでエラー内容を確認することが可能になります。
もし、上記を記述してもログファイルが出力されないという場合は、空のdebug.logをwp-contentに作成したり、あとはパーミッションで書き込み可能になっているかどうか確認をしてください。

ただ、このままだと例えば「http://example.com/wp-content/debug.log」などのように、debug.logまでのパスを指定すれば簡単にエラーログの中身を見ることができてしまいます。
特にエラーログを取るのが一時的ではなく長期間取る場合は見られるといろいろとあれなので、その場合はアクセス制限するなど簡単に確認できないようにしておくと良いと思います。
手っ取り早くできるものとしては、.htaccessに以下のように記述すればdebug.logへアクセスさせないようにすることができます。

.htaccess

<Files debug.log>
Order allow,deny
Deny from all
</Files>

Back to Top

WordPress:WP_DEBUG使用時に、エラー内容をログファイルに表示する方法

WordPress:WP_DEBUG使用時に、エラー内容をログファイルに表示する方法

/ WordPress

Tagged with:

NxWorld

Sorry... doesn't support your browser

To get the best possible experience using our site we recommend that you upgrade to a modern web browser.NxWorldではご利用中のブラウザサポートはしていません。
Internet Explorerのアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。