2016-03-08 204 views
1

我一直在努力讓xdebug工作。花費了數小時,但仍沒有取得很大進展。我認爲這是因爲有一些基本概念對我來說不是很清楚。其中之一是「遠程調試」。Xdebug遠程調試

假設我在VPS中有一個遠程php文件,如果我下載它和xdebug它,IDE如何知道本地文件是遠程文件的副本?有人可以描述xdebugging時會發生什麼嗎?

我猜想的是:在IDE中設置遠程端口並設置瀏覽器後,當我在瀏覽器中打開PHP文件時,當達到斷點時,IDE將與服務器建立一些連接並顯示遠程文件編輯器中的內容。現在我可以觀察變量,步進運行功能等,並且對文件所做的任何更改都將保存到遠程服務器。這種理解是否正確?

回答

1

當我打開瀏覽器,到達一個斷點,當PHP文件時,IDE會與服務器建立一定的聯繫,並在編輯器中

也就是說不顯示遠程文件的內容正確。 IDE不建立連接,但Xdebug/PHP會。 IDE的作用類似於服務器並偵聽傳入的調試連接。

你沒有提到你使用了哪個IDE,但其中大多數將允許你設置一個「路徑」映射。這樣的映射告訴IDE如何將遠程路徑(PHP和Xdebug看到的那些路徑)映射到本地系統(IDE所見的那些路徑)。

PHP Storm應該請問如果你找不到文件,例如你可以在文件 - >設置 - >構建,執行,部署 - >部署中配置它們,然後「映射」選項卡。其他IDE以其他方式進行,但所有IDE(Komodo除外)都需要本地可用的文件。請注意,該協議確實只支持遠程文件,但只有科莫多編輯器知道如何處理該文件。 PHP風暴還沒有。

+0

感謝您的回答。我仍然對一件事感到困惑:我必須擁有本地版本的遠程站點嗎? – shenkwen

+0

是的,所有的IDE(Komodo除外)都需要本地可用的文件。 (補充說我的回答也是如此) – Derick

+0

讓我困惑的是:如果我必須有本地版本,爲什麼然後它被稱爲遠程調試?爲什麼我不得不打擾SSH隧道這樣的事情,按照https://confluence.jetbrains.com/display/PhpStorm/Remote+debugging+in+PhpStorm+via+SSH+tunnel表示?與僅在本地機器上調試有什麼不同? – shenkwen