Xdebug3の設定 | Vagrant + PhpStormでブレークポイントを使用したデバッグをしたい

PHP
スポンサーリンク

まえおき

以前書いた記事で、Xdebug3の設定がうまく行かず、
ブレークポイントが止まらないためXdebug2にバージョンダウンさせ回避する。という記事を書きました。

当時はエラーログにも残らず何をして良いかわからない状態でした。。

しかし、やっとXdebug3の設定でうまくブレークポイントが止まってくれたので備忘録として残しておきます。

環境

CentOS 7
Apache 2.4
PHP 7.2
Xdebug 3

Xdebugのインストール

最新のXdebug(Xdebug3)をインストールします。
インストールはPeclで実行しました。
※ PeclはPHPのパッケージ管理システム

$ pecl install -a xdebug

インストールに関してはこれだけです。

extension_dir(/usr/lib64/php/modules/xdebug.so)にxdebug.soファイルが生成されているはずです。

備考

・extension_dirはphp.iniやphpinfoで確認できます。

・Peclコマンドが実行できない場合、以下を導入すればコマンドが実行できるようになるはずです。

$ yum install php-devel
$ yum install php-pear

・Peclについて参考リンク

パッケージ管理システム(パッケージマネージャ)の種類 (Windows, Linux, Mac)
最近、ソフトウェアをインストールする際にやたらとパッケージマネージャーを使います。システムによって、あるいはアプリケーションによってパッケージマネージャーが異なるので、今回、整理してみました。パッケージ管理システム (パッケージマネージャ)

・Peclでインストールしたアプリケーションのアンインストール

Mac peclでインストールしたアプリをアンインストールする - Qiita
目的 peclでのアンインストール方法をまとめる 実施方法 下記コマンドを実行するだけである。 $ pecl uninstall アプリ名

Xdebug3の設定

iniファイルに追記

php.iniの最終行、または/etc/php.d/にxdebug.iniを作成して以下を追記しましょう。

[XDebug]
zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.mode=debug
xdebug.discover_client_host=1
xdebug.client_host=localhost
xdebug.client_port=9000
xdebug.start_with_request=yes
;xdebug.log=/tmp/xdebug.log

設定値について

zend_extension

xdebug.soのファイルパスを指定します。

xdebug.mode

Xdebug2での以下記述がxdebug3ではxdebug.mode=debugの一行でまとまるようです。

xdebug.remote_enable=1
xdebug.default_enable=0
xdebug.profiler_enable=0
xdebug.auto_trace=0
xdebug.coverage_enable=0

xdebug.discover_client_host

PHPにアクセスした側の IP アドレスに自動的につなぎにいってくれる機能が「discover_client_host」です。
※ 私事ですが、この設定が足りてなくて接続に失敗しており、追記することで疎通することができました。
※ xdebug2の「remote_connect_back」に変わるようです。

xdebug.client_port

Xdebug3ではデフォルトのポートが9003になるようです。
phpstormのデフォルトのデバッグポートが9000だったので9000に合わせるため定義しました。
ここら辺は適宜値で設定してください。

xdebug.start_with_request

デバッガーを自動で開始する設定です。
xdebug2で言う「xdebug.remote_autostart」の設定の変わりとなるようです。

xdebug.log

Xdebugログの吐き出し設定です。必要に応じて設定してください。
※ サンプルではコメントアウトしてます。

設定の反映

Apacheを再起動します。

$ systemctl restart httpd

PHP-FPMを導入している場合以下も実行しておきましょう。

systemctl restart php-fpm

確認

あとはPhpStorm側が然るべき設定になっていればブレークポイントで止まってくれるはずです。
※PhpStorm側の設定は以下記事で紹介してます。

参考

Xdebugドキュメント

Xdebug: Documentation » Xdebug 2 から 3 へのアップグレード
Xdebug: A powerful debugger for PHP

設定について参考にさせて頂いたサイト様

yumからはじまりxdebugをインストールするまで
xDebugを入れるために、peclをいれる。 では、peclが効かないので、さらに下を実行。 [crayon-603e
タイトルとURLをコピーしました