2015-01-21 94 views
0

雖然我現在意識到讓Eclipse停止在斷點處的訣竅是,當PHP腳本從POST和GET請求中執行ajax/curl時,要確保XDEBUG_START_SESSION變量在您希望調試器的所有請求中設置要知道,這似乎只適用於Web服務器上的所有路徑都是正常的相對類型。但是,如果您碰巧在Web服務器上存在一些別名路徑(例如通過httpd Alias指令),則XDebug無法將工作空間中的文件路徑與站點URL中的路徑相關聯。在XDebug for Eclipse中,遠程路徑如何映射到本地路徑?

我有以下的目錄設置:

Directory Setup

這裏的Web服務器是如何設置:

ServerName test.local 
DocumentRoot "C:\Users\me\projects\testproject\start\here" 
Alias /post "C:\Users\me\projects\testproject\post" 

<Directory "C:\Users\me\projects\testproject"> 
    Require all granted 
</Directory> 

我認爲這是路徑映射選項卡是幹什麼用的,在發現Debug Configurations -> Server -> Configure... -> Path Mapping。在我看來,我被告知將Path on server設置爲網絡服務器上文件系統路徑的目錄或文件,並將Local path設置爲文件系統或工作區中的路徑。我也嘗試將Path on server設置爲我想要映射到Local path的站點URL路徑,但這兩個配置都不會導致在POST POST PHP腳本中出現問題。

我打開了XDebug的日誌記錄,比較正確停止的斷點的消息,因爲它位於調試器啓動的文件中,並且腳本中的斷點通過POST請求執行,這是不幸的不停止。如果/post路徑與DocumentRoot上的郵政目錄相對應,但它不會在該文件中停止,但是如果郵政目錄位於其他位置並且站點URL中的「假」/post路徑與別名不同,則該路徑不會生效。

在我的XDebug log file中,index.php中有第28行的幾個日誌條目,它是正確拆分的文件。 message.php中的第3行也有一個條目,並且URL編碼的路徑看起來正確,但我沒有看到相同類型的條目。

如何將Eclipse配置爲知道服務器上的/post表示工作區中的/My Project/post

+0

我難倒了PHP社區? :-)當然,有人能夠在整個PHP應用程序中設置斷點,喜歡將curl/ajax遍佈整個地方並使用別名web服務器路徑。 – 2015-01-23 17:12:00

回答

0

噢,我的......這是簡單的設置接受遠程會話(JIT)爲localhost,在我的情況,或者只是任何其他比off的問題:

Accept remote session

這是偉大的確認這確實起到了根本性的作用,但我仍然困惑於爲什麼它不在一個更復雜的項目中。幸運的是,我將有更多的分享...