概要
- 「Xdebug」の導入方法をまとめる。なお、VScodeでの使用を考慮して導入する。
詳細
- 筆者のPCはMacである。
- Homebrewが導入され、使える状態になっている。
- MacのローカルにHomebrewを用いてPHPがインストールされている。
方法
-
Xdebugのインストール
-
下記コマンドを実行してXdebugをインストールする。
pecl install xdebug
-
「Build process completed successfully」と表示されたことを確認する。こちらが出力されれば正常にインストールされている。
-
ターミナルに出力されているインストールログの最後から3行目に表示されている「Installing」の後に記載されているパスをメモする。筆者の出力例を下記に記載する。↓筆者の場合
Installing '/opt/homebrew/Cellar/php/8.1.6/pecl/20210902/xdebug.so'
-
-
php.iniへの記載
-
下記の方法でMacのローカルのphp.iniファイルの場所を特定する。
-
ちなみに筆者の場合、php.iniファイルは下記のパスに存在した。
/opt/homebrew/etc/php/8.1/php.ini
-
php.iniファイルを開き、下記の一行を追記する。
php.inizend_extension="xdebug.so"
-
$ php -v
コマンドを実行してXdebugのバージョンが表示されればXdebugの導入は完了PHP 8.1.8 (cli) (built: Jul 8 2022 10:58:31) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.8, Copyright (c) Zend Technologies with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans with Zend OPcache v8.1.8, Copyright (c), by Zend Technologies
-
-
VScodeの拡張機能
-
PHP Debugの拡張機能をインストールする。
-
デバッグを行いたいアプリケーションのルートディレクトリをカレントディレクトリとしてVScodeを開く。(laravelアプリケーションならアプリ名ディレクトリなど)
-
サイドバーに再生ボタンと虫のアイコンが追加されるのでこちらをクリックする。表示された「launch.jsonファイルを作成します」をクリックする。
-
下記のようにlaunch.jsonファイルが自動生成される。基本デフォルトのままで大丈夫だが、portの部分だけ変更する必要がある。こちらは皆さんの環境に合った任意の情報を記載する。
launch.json{ // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003 }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 0, "runtimeArgs": [ "-dxdebug.start_with_request=yes" ], "env": { "XDEBUG_MODE": "debug,develop", "XDEBUG_CONFIG": "client_port=${port}" } }, { "name": "Launch Built-in web server", "type": "php", "request": "launch", "runtimeArgs": [ "-dxdebug.mode=debug", "-dxdebug.start_with_request=yes", "-S", "localhost:0" ], "program": "", "cwd": "${workspaceRoot}", "port": 9003, "serverReadyAction": { "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started", "uriFormat": "http://localhost:%s", "action": "openExternally" } } ] }
-
付録
php -vでファイルが見つからない警告が出る
- 下記手順を実施
- Xdebug用の設定ファイルの用意
-
php.iniが設置されていた1階層上のPHPバージョンのディレクトリにあるconf.dディレクトリの中に
99-xdebug.ini
というファイルを作成する。-
筆者の場合、
/opt/homebrew/etc/php/8.1/php.ini
にphp.iniがあった。 -
そのため
99-xdebug.ini
は/opt/homebrew/etc/php/8.1/conf.d
直下に作成する。 -
これをtouchコマンドで表すと下記の様になる。
touch /opt/homebrew/etc/php/8.1/conf.d/99-xdebug.ini
-
-
作成した
99-xdebug.ini
に下記の内容を記載する。(設定内容の詳細はこちらに記載 → https://xdebug.org/docs/all_settings)/opt/homebrew/etc/php/8.1/conf.d/99-xdebug.ini[xdebug] zend_extension = Xdebugのインストールの「Installing」の後に記載されているパスを記載 xdebug.mode = debug xdebug.start_with_request = yes
-