LoginSignup
4
2

VScode PHP/Laravel デバッガーを導入する

Last updated at Posted at 2022-07-21

概要

  • 「Xdebug」の導入方法をまとめる。なお、VScodeでの使用を考慮して導入する。

詳細

  • 筆者のPCはMacである。
  • Homebrewが導入され、使える状態になっている。
  • MacのローカルにHomebrewを用いてPHPがインストールされている。

方法

  1. Xdebugのインストール

    1. 下記コマンドを実行してXdebugをインストールする。

      pecl install xdebug
      
    2. 「Build process completed successfully」と表示されたことを確認する。こちらが出力されれば正常にインストールされている。

    3. ターミナルに出力されているインストールログの最後から3行目に表示されている「Installing」の後に記載されているパスをメモする。筆者の出力例を下記に記載する。↓筆者の場合

      Installing '/opt/homebrew/Cellar/php/8.1.6/pecl/20210902/xdebug.so'
      
  2. php.iniへの記載

    1. 下記の方法でMacのローカルのphp.iniファイルの場所を特定する。

    2. ちなみに筆者の場合、php.iniファイルは下記のパスに存在した。

      • /opt/homebrew/etc/php/8.1/php.ini
    3. php.iniファイルを開き、下記の一行を追記する。

      php.ini
      zend_extension="xdebug.so"
      
    4. $ 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
      
  3. VScodeの拡張機能

    1. PHP Debugの拡張機能をインストールする。

      拡張機能__PHP_Debug.png

    2. デバッグを行いたいアプリケーションのルートディレクトリをカレントディレクトリとしてVScodeを開く。(laravelアプリケーションならアプリ名ディレクトリなど)

    3. サイドバーに再生ボタンと虫のアイコンが追加されるのでこちらをクリックする。表示された「launch.jsonファイルを作成します」をクリックする。

      PostContractUseCaseTest_php_—pf_backend_と「VScode_PHP_Laravel_デバッガーを導入する」を編集_-_Qiita.png

    4. 下記のように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でファイルが見つからない警告が出る

  • 下記手順を実施
  1. Xdebug用の設定ファイルの用意
    1. 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
        
    2. 作成した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
      

参考文献

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2