2026年5月22日

2026年5月22日

WordPressのXDebugでPHPエラーをデバッグする方法

はじめに

Web開発において、エラーの迅速なトラブルシューティングは非常に重要です。特にPHPで作られたWordPressサイトでは、しばしば思わぬエラーが発生します。その解決策として、XDebugというツールがあります。XDebugはPHPのデバッグとプロファイルをサポートする拡張モジュールであり、これを使用することで開発者はより詳細な情報を得られ、問題の切り分けや修正が容易になります。

この記事では、XDebugをLinuxサーバーにインストールし、WordPress環境で効果的に活用するための手順と設定方法について解説します。PHPエラーのデバッグはWebサイトの安定稼働にとって欠かせない作業であり、XDebugを使うことで開発者はより迅速かつ正確な問題解決が可能になります。

症状・背景

このテーマが必要になる主な場面:

  • <場面1>: PHPスクリプトで不明なエラーが発生し、通常のエラーログでは詳細な原因を特定できない場合
  • <場面2>: ユーザーからの不具合報告があるが、そのエラーは再現しづらく詳細な調査が必要な場合
  • <場面3>: 新しいプラグインやテーマの導入後、サイト全体が停止したり一部機能が正常に動作しなくなった場合
  • <場面4>: 開発環境と生産環境で異なる挙動を示す問題があり、その原因を特定したい場合

手順・設定方法

ステップ1: XDebugインストール

# PHPバージョン確認
php -v

# Ubuntu用
sudo apt-get update
sudo apt-get install php-xdebug

# CentOS/RHEL用
sudo yum install epel-release
sudo yum install php-pecl-xdebug

ステップ2: XDebugの初期設定

# xdebugの設定ファイルを確認または作成
cat /etc/php.d/xdebug.ini

# xdebug設定を追加(例)
echo "zend_extension=xdebug.so" | sudo tee -a /etc/php.d/xdebug.ini
echo "xdebug.remote_enable=1" | sudo tee -a /etc/php.d/xdebug.ini
echo "xdebug.remote_host=localhost" | sudo tee -a /etc/php.d/xdebug.ini

ステップ3: WordPress環境での有効化

# wp-config.phpにXDebug設定を追加
cat <<EOL | sudo tee -a /var/www/html/wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', false); // ログファイルへの出力を無効にする場合true
define('WP_DEBUG_DISPLAY', true); // スクリーンに出力する場合true
@ini_set('display_errors', 1);
EOL

# .htaccessにXDebug設定を追加(オプション)
echo "php_value xdebug.profiler_enable_trigger 1" | sudo tee -a /var/www/html/.htaccess

ステップ4: リモートデバッグの設定と実践

# PHPStormやEclipseなどのIDEでリモートデバッグを有効にする
# IDEのドキュメントを参照して適切なポート番号などを指定する

# XDebugが正しく動作しているか確認
php -m | grep xdebug

注意事項

  • <実践的な注意点1>: 開発環境と生産環境でXDebugの設定を分けること。生産環境では無効化または最適なパフォーマンス設定を使用する。
  • <実践的な注意点2>: XDebugはデバッグ中のみ有効にし、通常時は無効にするかプロファイリングモードで使用すると良い。
  • <セキュリティ上の注意>: リモートアクセスを許可する際には適切な防火ウォール設定や認証情報を整える。
  • <パフォーマンス/運用上の注意>: XDebugの一部機能はサーバー性能に影響を与える可能性があるため、必要最小限の設定を使用すること。

まとめ

1. XDebugインストール: サーバー環境に合わせて適切な方法でXDebugをインストールする。

2. 基本設定: xdebug.iniファイルやwp-config.phpに必要な設定を追加し、初期状態での動作確認を行う。

3. リモートデバッグ: IDEと連携させてリモートからPHPスクリプトの実行をトレース・停止することが可能となる。

4. プロファイリング: 高度な機能としてXDebugによるプロファイリングも利用し、パフォーマンス向上のための情報収集を行うことが推奨される。

5. 運用管理: デバッグが終了した際には、適切に設定を無効化または最適化することで、生産環境でのパフォーマンス低下を防ぐ。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ