Digital Acorn

プログラムやサーバーの設定など、技術的な記事を載せております。

bash on ubuntu on windows PHP プログラミング

Visual Studio CodeでBoW上のPHPをデバッグ

投稿日:

前書き

Sublime Text 3を愛用しているんですが、だんだん他のエディタが追いついて、追い抜いて来たような感じがします。
Sublime Textは更新が止まってしまっているので、まあしょうがないでしょうね。有料だからある程度稼いだら終わりなのかな。
他のエディタはElectronで動いているので動作的にもっさりなのですが、Sublime Textはネイティブアプリだから速いだけが取り柄のようになってきました。

さて、本題です(笑)

だんだんBash on Ubuntu on Windows(BoW)が使えるヤツになってきました。
すっかりubuntuのデスクトップを使わなくなってしまってます。
ですので、PHPをBoW上でデバッグ出来るようにしましょう!
Apache2、PHPはインストール済みとします。(apt installだけですからね)

Apache2の常駐などは
Bash on ubuntu on Windowsでapacheなどを常駐させる
もご覧ください。

Xdebugのインストール

sudo apt install php-xdebug

これだけで入ります。

Xdebugの設定

zend_extension=xdebug.so

この一行しかありませんが、この下に足します。

zend_extension=xdebug.so

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
xdebug.remote_host = 127.0.0.1

Visual Studio Codeにプラグインをインストール

PHP Debugというプラグインをインストールします。

PHP Debugを設定

デバッグしたいプロジェクトのあるフォルダをVSCodeで開きます。
そして、サイドバーのデバッグボタンを押します。

上記のキャプチャのように、歯車アイコンをクリックします。
「環境の選択」をするように指示がありますので、「PHP」を選びます。
そうすると、設定ファイルが開きますので、下記のように書き換えます。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "serverSourceRoot": "ターゲットとなるサーバー内のパス",
            // Ex. "serverSourceRoot": "/var/www/html/MarkDownDiagram",
            "localSourceRoot": "${workspaceRoot}",
            "port": 9000
        }
    ]
}

デバッグする

プロジェクトのソースファイルにブレイクポイントを設定します。

F5キーを押すとデバッグが始まります。

上のようなツールバーが出たら、ブラウザでテストしたいアプリケーションを開きます。

http://127.0.0.1/XXXXX

正常に稼働していると、ブレイクポイントを置いた部分に差し掛かると、

上記のように、黄色いマーカーが付き、行がハイライトしてストップしますので、ツールバーでステップ実行が可能です。

これでデバッグ出来るようになりました!
活用していきたいと思います。

-bash on ubuntu on windows, PHP, プログラミング


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

【BoW】mysql-serverが更新に失敗する

先ほどBoWでmysql-serverを更新したところ、更新に失敗しました。 調べてみたところ、以下のページが引っかかりました。 https://github.com/Microsoft/BashOn …

【BoW】PHPから送信するメールをテキストに保存する

テスト環境で使っていると、PHPのメール送信をテストしたい時があります。 かといって、実際に送信されてしまうと面倒です。 xamppにはmailtodiskというのがあり、メールをディスクに保存してく …

PHP入門講座を公開します

PHPの入門講座を作り始めました。 基礎編が大体出来たので、公開してしまいます。 URLはこちら! https://jw7.org/php_lesson/ 引き続き「活用編」を作って行きます。 ここで …

【PHP】DBライブラリ 「idiorm」

フレームワークを使うには簡単すぎる、かといってPDOを使ってガリガリ書くのは面倒。 そんな時に役立つライブラリが「idiorm」です。(なんて読むんでしょうか?) GitHubで公開しています。 ht …

【PHP】 全角記号のときmb_strwidthが1を返す

PHPで全角の判断に、mb_strwidthを使っていました。 mb_strwidth == (mb_strlen*2) だったら全角文字、みたいな。 そうしたら、「◎」を入れたらうまくいかないとクラ …

広告