ステップ実行できない!
もう何度も環境構築していて、手慣れているはずのVSCodeでPHPをデバッグする環境を用意していたら、なかなか動いてくれなかったのよ、これが。
簡単に環境を書きますと
ホスト:Windows PC+Visual Studio Code
リモート:VMWare + CentOS7.9
Apache:2.4.6
PHP:7.4.30 Zend Engine v3.4.0
Xdebug:3.1.5
ってな環境で、VM上のソースをデバッグできるようにようにしてます
SSHの設定とか、インストールの手順とかは書きません。悪しからずm(_ _"m)
やったこと(失敗の記録)
WEBを検索すると、以下のような記述が目立ちましたが、これはxdebugの古いバージョン用なので動きません
# vi /etc/php.ini
[xdebug]
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_host=192.168.xxx.xxx
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
ちなみに、192.168.xxx.xxxは、VM上のOSのIPアドレスです。
xdebug の新バージョンでの記述
以下のように記述するのが正しいと書いてありました。
# vi /etc/php.ini
[xdebug]
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.mode=debug
xdebug.client_host=192.168.xxx.xxx
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.discover_client_host=1
動いてくれません・・・
どうやって原因を突き止めればいいか、いろいろ悩みました
phpinfo()を使って、動きを確認してみました。
$ vi /public_html/phpinfo.php
<?php
phpinfo();
このファイルを作ってブラウザで表示し、xdebug の部分を見てみますと・・・
Step Debuggerの部分が disabled になってます。
xdebug.client_hostの部分が localhost になってます。
設定したはずの内容とは異なっています。なぜじゃぁぁぁぁ?
と悩むこと数時間。
xdebug.iniを修正する。
/etc/php.d/15-xdebug.ini ファイルを修正します。
# vi /etc/php.d/15-xdebug.ini
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=192.168.xxx.xxx
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.discover_client_host=1
# service httpd restart
再度 phpinfo()を見てみましょう
Step Debuggerの部分が enabled になってます。
xdebug.client_hostの部分が 192.168.0.xxx と設定どおりになってくれてますね。
無事、VSCode上のブレークポイントで止まってくれるようになりました。(^_^)v
めでたしめでたし。
0 件のコメント:
コメントを投稿