VS CodeでPHPをXdebugでデバッグしたいです。
何故かデバッグボタンを押しても起動されません。
下記の記事を参考にHomebrewでPHP7.4、peclでXdebugをインストールし、
php.iniにXdebugの実行ファイル?であるXdebug.soを書いていますが、Vscodeでデバッグボタンを押しても反応しないです。。。
どなたか原因がわかる方はいらっしゃいますでしょうか?
1週間ほどこれの解決に時間を取られています。
ちなみに、1週間ほど前にXdebugをインストールし、VSCodeでデバッグをできるようにしたのですが、その直後にはデバッグできていました。そのあと、何がトリガーになったかわからないですが、デバッグできなくなりました。
環境
- macOS Big Sur 11.3.1
- Visual Studio Code : Version: 1.56.2 (Universal
- VSCodeにて、Extension(PHP Debug 1.15.1をインストール済み)
試したこと
以下、↓を参考にしています。
①簡単に↓
- VSCode、PCの再起動
- php をbrewにてアンインストールして、再インストール。link、PATHは記述ずみ
- peclにてXdebugのアンインストール、再インストール
- php.iniにzend_extensionを記述
↑もしかしたら、php.iniやxdebug.soの場所や値を間違えているのかも知れません。。。
PHPのいくつかのバージョンを何度もbrewで入れ直したので、他のPHPが邪魔しているのかも?知れません。。。
②具体的に↓(実際のコマンドや結果を貼り付けます)
//brewでインストールしたPHPの設定ファイルを削除? $ rm /usr/local/etc/php/7.4/conf.d/* $ brew untap homebrew/php Error: No available tap homebrew/php. $ brew list | grep php php@7.4 phpmyadmin $brew uninstall --force php@7.4 Uninstalling php@7.4... (497 files, 72.4MB)
//brewでインストール $brew install php@7.4 //成功 To have launchd start php@7.4 now and restart at login: brew services start php@7.4 Or, if you don't want/need a background service you can just run: php-fpm ==> Summary ???? /usr/local/Cellar/php@7.4/7.4.19_1: 497 files, 72.4MB brew link --force php@7.4 Linking /usr/local/Cellar/php@7.4/7.4.19_1... 25 symlinks created. If you need to have this software first in your PATH instead consider running: echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> /Users/xxx/.bash_profile echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> /Users/xxx/.bash_profile //PATHを通す $ echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> /Users/xxx/.bash_profile $ echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> /Users/xxx/.bash_profile $ source ~/.bash_profile
// Xdebugのアンインストールとインストール $ which pecl /usr/local/opt/php@7.4/bin/pecl $ pecl uninstall xdebug Extension xdebug disabled in php.ini uninstall ok: channel://pecl.php.net/xdebug-3.0.4 $ pecl install xdebug //冒頭の結果表示↓ WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update downloading xdebug-3.0.4.tgz ... Starting to download xdebug-3.0.4.tgz (215,870 bytes) .............................................done: 215,870 bytes 87 source files, building running: phpize Configuring for: PHP Api Version: 20190902 Zend Module Api No: 20190902 Zend Extension Api No: 320190902 //最後の結果表示↓ Build process completed successfully Installing '/usr/local/Cellar/php@7.4/7.4.19_1/pecl/20190902/xdebug.so' install ok: channel://pecl.php.net/xdebug-3.0.4 Extension xdebug enabled in php.ini $ php -i | grep php.ini PHP Warning: Failed loading Zend extension 'xdebug.so' (tried: /usr/local/Cellar/php@7.4/7.4.19_1/lib/php/20190902/xdebug.so (dlopen(/usr/local/Cellar/php@7.4/7.4.19_1/lib/php/20190902/xdebug.so, 9): image not found), /usr/local/Cellar/php@7.4/7.4.19_1/lib/php/20190902/xdebug.so.so (dlopen(/usr/local/Cellar/php@7.4/7.4.19_1/lib/php/20190902/xdebug.so.so, 9): image not found)) in Unknown on line 0 Configuration File (php.ini) Path => /usr/local/etc/php/7.4 Loaded Configuration File => /usr/local/etc/php/7.4/php.ini //zend extensionの読み込みに失敗しているっぽいので、php.iniに手動で書いてあげる必要があると考え、 $vim /usr/local/etc/php/7.4/php.ini
php.iniがこちら↓
; ↓xdebug直後、開いたら↓が記述されていた。 ; zend_extension="xdebug.so" ; 新たに追記↓ zend_extension="/usr/local/Cellar/php@7.4/7.4.19_1/pecl/20190902/xdebug.so" [PHP] xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_port=9000
//Xdebugが入っていることを確認 $ php -m ・ ・ ・ tokenizer xdebug xml xmlreader xmlrpc xmlwriter ・
// php7.4を再起動? $ brew services restart php@7.4 Stopping `php@7.4`... (might take a while) ==> Successfully stopped `php@7.4` (label: homebrew.mxcl.php@7.4) ==> Successfully started `php@7.4` (label: homebrew.mxcl.php@7.4)
最終的なphpのversionがこちらです。Xdebug v3.04が入っており、なんの問題もないように感じます。
$ php -v PHP 7.4.19 (cli) (built: May 13 2021 06:28:47) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans with Zend OPcache v7.4.19, Copyright (c), by Zend Technologies
いざVSCodeでデバッグボタンを押し、右三角ボタンを実行しようとしてみると、↓ なんの反応もありません。
DEBUG CONSOLEにもターミナルにも出力されないです。
再度、↑画像の状態のまま、右三角ボタンを押すと、
listen EADDRINUSE: address already in use :::9003
とエラーが吐かれます。
ちなみに、launch.jsonは↓です。
launch.json
1{ 2 // Use IntelliSense to learn about possible attributes. 3 // Hover to view descriptions of existing attributes. 4 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 8 { 9 "name": "Listen for Xdebug", 10 "type": "php", 11 "request": "launch", 12 "port": 9003 13 }, 14 { 15 "name": "Launch currently open script", 16 "type": "php", 17 "request": "launch", 18 "program": "${file}", 19 "cwd": "${fileDirname}", 20 "port": 9003 21 } 22 ] 23} 24
原因がわかる方がいらっしゃったら、どうかご教授いただけると幸いです。
よろしくお願いいたします。
追記
ちなみに、1週間ほど前にXdebugでデバッグができるようにしたときに残した、備忘録がXdebug のインストール PHP デバッグ Mac Big Surになります。 もしかしたら、色々いじっちゃって、できなくなった可能性もあるので、貼らせていただきます。
追記
localhostで、ビルドインサーバを立ち上げて、Xdebug自体が動いているか確認してみたところ
$ php -S localhost:8000 [Sat May 15 17:29:25 2021] PHP 7.4.19 Development Server (http://localhost:8000) started [Sat May 15 17:29:30 2021] [::1]:54280 Accepted [Sat May 15 17:29:30 2021] [::1]:54281 Accepted [Sat May 15 17:29:30 2021] Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-( [Sat May 15 17:29:30 2021] [::1]:54280 [200]: GET /test.php [Sat May 15 17:29:30 2021] [::1]:54280 Closing
Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
↑のエラーが発生していることに気がつきました。
これは、https://www.fixes.pub/program/183900.htmlによると、Xdebugがデバッグクライアントへの接続に失敗した場合、そのことを通知するようです。
そこで、ポート番号を9000にすると、エラーがなくなりましたが、
vim /usr/local/etc/php/7.4/php.ini
Xdebugが動いていないように思います。(var_dump()が整形されていないため)
どういう現象なのでしょうか?汗汗
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。