2017-10-28 174 views
0

我當前的設置涉及PhpStorm IDE,其中我導入了基本上是CLI工具的Symfony 3項目。在主機上,我沒有安裝PHP,因此我正在從安裝了PHP和Xdebug的Docker容器運行應用程序。在Docker容器中調試帶有PhpStorm的Symfony CLI應用程序

我沒有問題來從Docker容器調試Web應用程序,但使用Symfony和這個CLI工具似乎有點棘手。

我的問題是如何正確設置並從PhpStorm進行調試?我試圖創建一個新的調試配置(PHP遠程調試),但不會觸發斷點。

+0

如果您說它是一個CLI工具,爲什麼要嘗試創建一個「PHP Remote Debug」配置?您應該創建PHP遠程解釋器並使用「PHP腳本」類型的配置..它用於運行/調試CLI腳本(以便IDE將在該Docker容器中執行它)。 – LazyOne

+0

我設法正確觸發調試器,但現在我遇到了時區問題PHP致命錯誤:帶有消息'DateTime :: __ construct()'的未捕獲異常'異常':依靠系統的時區設置是不安全的。您*必須*使用date.timezone設置或date_default_timezone_set()函數。如果您使用這些方法中的任何一種,並且仍然收到此警告,則很可能是拼寫錯誤的時區標識符。「我可以在1000%上確認該php。ini有正確設置的時區,php -i顯示它已加載。 – tslid

+0

好吧,我通過傳遞時區作爲-d選項(在phpstorm解釋器選項中配置它)來解決它,但它仍然非常奇怪,因爲我的php.ini包含此設置。它似乎完全被忽略。 – tslid

回答

0

Suppossing你跟着進提到到以下鏈接的說明:

或者類似的問題

然後,你需要遵循theese步驟:

第一步:通過運行 獲取shell訪問您的容器:

docker exec -ti ^container_id^ /bin/sh 

或者,如果運行的是Debian/Ubuntu的一個(或您手動安裝bash):

docker exec -ti ^container_id^ /bin/bash 

^container_id^可以發現通過docker ps命令它是表的第一列。如果一個小窗口,只是管INT運行到less -S產生的命令:

docker ps | less -S 

然後導出以下ENVIROMENTAL變量:

export PHP_IDE_CONFIG="serverName=0.0.0.0:5092" 
export XDEBUG_CONFIG="idekey=PHPSTORM" 

請記住設置指定爲Servers部分爲正確的值你在圖片中看到:

Phpstorm settings

這是爲了重要的是不要遇到this問題中指定的問題。

然後,只需啓用調試器listentin進入phpstorm併產生cli,就像您在運行symfony應用程序時一樣。

相關問題