今回は、PHPのデバッグ設定をメモしておこうと思います。
PHPのデバッグを行うためには、デバッグ用のツールxdebugを利用する必要があります。
IDE毎の設定以外に、xdebugの設定をPHP側に行う必要があるため、それらをメモしておこうと思います。
メモ内容は概ね以下の通りです。
- xdebug.soパス確認
- php.ini修正(xdebug設定追加)
- デバッグ設定内容確認
尚、xdebugを導入する場合、peclなど、いくつかのツールをインストールしておく必要があります。
私の環境だと、手間がかかりそうだったので、MAMPをインストールして対応しました。
MAMPをインストールをすると、xdebugも一緒に導入されるので、大幅に手間を省けます。
※xdebug意外にも色々なツールがインストールされるので、
余分なものまでインストールされる可能性はあります。
今回は、MAMPを導入済みの状態からメモしたいと思います。
MAMPのインストールについては、以下の記事を参考に頂ければと思います。
目次
検証環境
・OS:mac OS Catalina 10.15.4(19E266)
・MAMP:5.7(396)
インストール対象
・xdebug:2.9.5
php.iniについて
xdebugの設定を行うには、php.iniを修正する必要があります。
php.iniの場所を確認しておく必要があります。
場所の確認方法は、以下の記事を参考に頂ければと思います。
xdebug.soパス確認
php.iniに、xdebug.soの指定を追加する必要がありますので、
まずは、xdebus.soが配置されているパスの確認を行います。
パスは、phpinfo関数より確認を行うことができます。
<?php phpinfo(); ?>
phpinfoを呼出しているphpファイルを、
Apacheのドキュメントルートに配置して起動します。
MAMPをインストールすると、
Coreの部分のextension_dirの部分に記載されているパスに、xdebug.soが配置されています。
php.ini 修正 xdebug設定追加
確認済みの、xdebug.soのパスと、xdebugの基本設定をphp.iniに追記します。
以下の内容を、php.iniの一番下に追記します。
※内容が重複すると正しく動作しないため、予め同じ項目が存在しないことを確認します。
同じ項目が存在する場合、セミコロン;でコメントアウトするか、削除を行います。
[xdebug] zend_extension="/Applications/MAMP/bin/php/php7.4.2/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so" xdebug.remote_enable=1 xdebug.remote_autostart = 1
PHP デバッグ設定 確認方法
phpinfo関数を利用して確認
php.iniの修正が済んだら、
再度、phpinfo関数を利用して、デバッグ設定が反映されていることを確認します。
xdebugが連携されていれば、xdebugの表示が行われます。
※設定前は、xdebugの表示自体がありません。
コマンドラインから確認
他にも、対象のPHPが動作する環境で、以下のコマンドを実行すると確認できる様です。
php -m
デバッグ設定が行われている場合、
Zend Moduelsという表示と、xdebugの表示が行われます。
ただ、私の環境の場合、設定を実施して、
デバッグが可能になった後も、xdebugの表示が行われませんでした。
何故か表示が行われていなくても問題なくデバッグ動作を行えた為、
php.iniを修正しても、こちらで確認を行えない人は、
実際にデバッグ動作を試すか、phpinfo関数での確認をお勧めします。
今回のメモ内容は以上となります。
ステップ実行等のデバッグ処理を行えないと、プログラムの実装は非常に大変になる為、
PHPを扱う場合には、必須の設定になるかと思います。
今後、IDEでのデバッグ設定についてもメモしていきたいと思います。