EC2 で PhpStorm と Xdebug を使用して PHP コードをデバッグする方法
はじめに
リモートの EC2 インスタンスで実行されている PHP コードをデバッグするのは難しい場合があります。しかし、PhpStorm と Xdebug を適切に設定すれば、デバッグ作業を効率化し、開発効率を向上させることができます。
前提条件
以下のソフトウェアバージョンがインストールされていることを確認してください。
ソフトウェア | バージョン |
---|---|
PHP | 7.1.7 |
Apache | 2.2.32-1.9 |
PhpStorm | 2017.1.4 |
サーバー設定
php.ini
ファイルに Xdebug 設定を追加し、Apache サーバーを再起動します。
[xdebug]
zend_extension="/opt/remi/php71/root/usr/lib64/php/modules/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_host = "127.0.0.1"
xdebug.idekey = "IDE_KEY"
xdebug.remote_autostart=true
xdebug.so
を含むディレクトリは環境によって異なる場合があります。設定を適用する前に正しいパスを確認してください。
次のコマンドで Apache を再起動します。
sudo service httpd restart
PhpStorm の設定
PhpStorm のメニューから Run > Edit Configurations...
を開き、PHP Remote Debug
を選択します。
サーバーの追加
Servers
をクリックし、以下の設定でターゲットサーバーを追加します。
項目 | 設定値 |
---|---|
Name | EC2 のプライベート IP |
Host | EC2 のパブリック IP |
Debugger | Xdebug |
Use path mappings | ON |
Absolute path | /var/www/html/<YOUR_WEB_APP_ROOT> |
php.ini
の xdebug.idekey
フィールドで定義した IDE key を設定します。
ポートフォワーディング
ネットワークルーターを使用している場合、ポート 9000 へのインバウンド接続を許可し、それをローカルホストに転送するようポートマッピングを構成してください。
コードのデバッグ
デバッグを開始するには、以下の手順を実行してください。
- デバッグしたい PHP コードの位置にブレークポイントを設定します。
- PhpStorm で Listen for PHP Debug Connections モードを有効にします。
- ウェブブラウザを使用して EC2 インスタンスにアクセスします。
ブレークポイントがトリガーされると、PhpStorm はコードの実行を一時停止し、コードを検査してデバッグすることができます。
まとめ
このセットアップにより、PhpStorm と Xdebug の機能を活用して、AWS EC2 上にホストされた PHP アプリケーションを効率的にデバッグできます。このワークフローを利用することで、コードの実行状況を正確に把握し、複雑な問題の解決がより容易になります。
Happy Coding! 🚀