We are ACORN!

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

PHP WSL プログラミング

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

投稿日:2019-07-15 更新日:

前書き

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

その後、xdebugを有効にして、サーバーを再起動します。

sudo phpenmod xdebug
sudo service apache2 restart

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

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

PHP Debugを設定

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

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

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

デバッグする

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

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

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

http://127.0.0.1/XXXXX

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

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

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

-PHP, WSL, プログラミング


comment

メールアドレスが公開されることはありません。

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

関連記事

PHP Toolkit のSoapClientが接続できない

クライアントがPHPのバージョンを5.4から5.6にアップデートしたそうです。 (そういう時は前もって連絡ください(怒)) その際、エラーが出るというのです。 ログを見ると、 SoapClientの_ …

【WSL】Windows 10でsshのポートフォワードをつなぎっぱなしにする

最近社内にメールを送信すると、なぜかスパムと認識されてしまいます。 ヘッダーを見ると、どうもSMTPの接続元がOCNだとスパムだと判断されるみたいです。 確かにブラックリストに載っています。そりゃしょ …

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

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

Google Apps Script でWebAPIを作ろう

Google Apps Scriptを使うと簡単にWeb APIを作ることが出来ます。 準備 まず、Google Drive上からApps Scriptを作れるようにしましょう。 ドライブの左上の「新 …

【HTML5】 FormDataオブジェクトがログに出力されない(出力方法追記)

どうも仕様みたいですね。 どうやっても、無理でした。 隠ぺいされたオブジェクトっていうのも気持ち悪いですね。 それをajaxで送る、っていうのも気持ち悪い。 var fd = new FormData …