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

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

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

関連記事

WordPressのメインループ&サブループ

WordPressのテンプレートを作っていると、ループの構造で混乱してくる人がいます。 ですので、不要なHTMLを除いた、単純な構造を書いておこうと思います。 解説はコメントに書いています。 < …

PHP Toolkit のSoapClientが接続できない

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

【PHP】 Macからの日本語名ファイルを正しく扱う

久しぶりに仕事ではまりました。 ファイルをアップロードして、その日本語名を利用するシステムなのですが、Macも含まれます。 それで、会社からMac miniを借りてダウンロード、アップロード実験をして …

さくらのレンタルサーバーのメールをslackに通知する

今までメールを自分で作ったスクリプトで携帯に転送していたんですが、キャリアメールをやめたのでslackにメッセージを投げることにしました。 前提として、プランがスタンダードである必要があります。 何せ …

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

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