PHP(ZTS)のxdebugインストール
概要
- 同じチームのエンジニアが新しいプロジェクトに参画し、既に作成済みのDocker環境にxdebugを入れようとしたところ、うまく動かないという相談を受けて調査開始
pecl
コマンドでxdebugをインストールして設定しているが、確かに動かない、、、
結論
ハマリポイント
pecl
コマンドでインストール後、以下のコマンドで確認をしていた。php -r "phpinfo();" | grep xdebug php -v
上記コマンドだと、xdebugがちゃんと入っているように見えるため、最初はリモートデバッグ接続しようとしているVSCode側の設定とかを疑って時間がかかった。
- Webブラウザから、
phpinfo();
出力したページを表示して、xdebugの設定が反映されていないことを確認できたので、ここからPHP側を疑って調査した。
解決方法
wget http://www.xdebug.org/files/xdebug-3.1.5.tgz tar xzvf xdebug-3.1.5.tgz cd xdebug-3.1.5/ zts-phpize ./configure --with-php-config=/usr/bin/zts-php-config make make install
- 上記コマンドを実行すると、
xdebug.so
ファイルが作成される - あとは、xdebug用のiniファイルを配置してあげる
zend_extension = "make installの出力先/xdebug.so" xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_host=host.docker.internal xdebug.client_port=9003 xdebug.log=/tmp/xdebug.log xdebug.log_level=0