質問するログイン新規登録
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

412閲覧

コマンドからphpを実行した場合のデバッグ方法について

akooooo

総合スコア9

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2023/09/28 02:28

編集2023/09/28 02:32

0

1

実現したいこと

コマンドからphpを実行しVsCodeでデバッグしたいのですが出来るものなのでしょうか?

前提

以下環境にて画面でphpを実行した場合はVscodeでデバッグは出来ております。

WSL環境 
Ubuntu20.04.6 LTS
Docker環境
PHP 7.4.3
Xdebug

該当のソースコード

試したこと

・Vscodeで【Listen for Xdebug】を開始
・コマンドで実行するPHPファイルにブレークポイントを置く
・ コンテナ内でphp XXXXX.phpを実行

XXXXX.php実行はされることは確認できたがブレークポイントで止まらない。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

VScodeでコンテナにアタッチはしていると思います。以下、その前提で説明しますが、

  • VScodeでデバッグ対象のPHPスクリプトを開く
  • ブレークポイントを設定する
  • VScodeで【Launch currently open script】を開始

でできると思います。


コメントを受けて追記(2023/9/28 17:52)

参考のため、手元のlaunch.jsonの該当箇所を引用します。

json

1{ 2 // Use IntelliSense to learn about possible attributes. 3 // Hover to view descriptions of existing attributes. 4 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 { 8 "name": "Listen for Xdebug", 9 "type": "php", 10 "request": "launch", 11 "port": 9003 12 }, 13 { 14 "name": "Launch currently open script", 15 "type": "php", 16 "request": "launch", 17 "program": "${file}", 18 "cwd": "${fileDirname}", 19 "port": 0, 20 "runtimeArgs": [ 21 "-dxdebug.start_with_request=yes" 22 ], 23 "env": { 24 "XDEBUG_MODE": "debug,develop", 25 "XDEBUG_CONFIG": "client_port=${port}" 26 } 27 }, 28以下略

投稿2023/09/28 03:32

編集2023/09/28 08:53
ockeghem

総合スコア11710

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akooooo

2023/09/28 06:28

恐らく私のlauch.jsonの記述に不備があり教えていただいた方法でデバッグ出来ませんでした。 【Launch currently open script】調べてみます。 実現に向けて糸口をご回答いただき、誠にありがとうございました。
akooooo

2023/09/29 01:34

追記いただき、ありがとうございました。 私の環境だと【"runtimeExecutable": "/usr/bin/php.exe",】が無いとデバッカの起動に失敗するようで 追記しています。それ以外はockeghem様と同様の内容でポートを【Listen for Xdebug】と同じ9000にしたり、0にしたりしてみたのですが、ブレークポイントで止まらずでした。 また【Listen for Xdebug】でpathMappingsを指定しているので必要かなぁと思ったのですが、 それを入れてもダメでした。 { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9000, "pathMappings": { "/var/www/html/frevocrm":"${workspaceRoot}" } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9000, "pathMappings": { "/var/www/html/frevocrm":"${workspaceRoot}" }, "runtimeExecutable": "/usr/bin/php.exe", "runtimeArgs": [ "-dxdebug.start_with_request=yes" ], "env": { "XDEBUG_MODE": "debug,develop", "XDEBUG_CONFIG": "client_port=${port}" } },
ockeghem

2023/09/29 02:10

Dockerコンテナ上ではLinuxが動くので、PHPの実行ファイルがphp.exe というのはあり得ないと思います…が、環境が手元にないと、これ以上のアドバイスは難しいように思いました。
akooooo

2023/09/29 02:47

ご助言いただき、本当にありがとうございました。
ockeghem

2023/10/01 02:11

原因らしきものを思いつきましたが、まだ見ておられますか? 見ておられるなら回答を追記します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問