[英]Debugging Symfony REST API using PhpStorm & Xdebug
我正在嘗試為PhpStorm安裝xdebug。
設置如下:
到目前為止我嘗試過的是:
已安裝的Xdebug- 參考
RUN pecl install xdebug RUN docker-php-ext-enable xdebug
並運行以下命令:
echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.idekey = PHPSTORM" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.default_enable = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_autostart = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_connect_back = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.profiler_enable = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_host = "docker.for.mac.host.internal"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
如下圖所示設置PhpStorm(除了端口是8090,因為我的Web應用程序在該端口上運行。我使用localhost:8090/
在本地訪問網站):
現在,當我進行API調用時,什么也沒有發生。 它不會在斷點處停止。
有人幫助我嗎?
PS:我正在使用Xdebug Helper
chrome插件。
這是我在Docker LAMP堆棧中使用的設置
https://github.com/delboy1978uk/lamp
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9001
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
xdebug.idekey="PHPSTORM"
xdebug.max_nesting_level = 250
我使用PHP-FPM,因此已經使用了端口9000,並將其更改為9001。嘗試一下,它應該可以工作!
我終於能夠在MacBook上運行它。 我使用Symfony4
作為Rest API,它位於Symfony4
容器和Apache服務器內部。
在dockerfile
,(確保將其放在文件的末尾,以免在運行composer
或cli
干擾)
RUN yes | pecl install xdebug \\ && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_port = 9000" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_handler = "dbgp"" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_connect_back = 0" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_host = "host.docker.internal"" >> /usr/local/etc/php/conf.d/xdebug.ini
host.docker.internal
適用於Mac和Windows。 更多信息
在主機上,打開PhpStorm
Preferences -> Languages & Frameworks -> PHP -> Debug -> DBGp Proxy
IDE密鑰:XDEBUG_ECLIPSE主機:{{主機IP地址}}端口:9000
轉到Preferences -> Languages & Frameworks -> PHP -> Servers
點擊+
,給它起一個名字,Host是the address on which your application is running
(在我的情況下是localhost
)和應用程序的端口號(我的應用程序是8090
)
我無法弄清楚路徑映射應該是什么,因此我不會覆蓋這一部分。 如果不進行設置,則不會造成任何危害,但是會使您的應用程序減慢幾秒鍾。
如果您無法找出映射,請確保取消選中Force break at first line when no mapping specified
在Preferences -> Languages & Frameworks -> PHP -> Debug
找到Force break at first line when no mapping specified
”復選框。
安裝chrome插件Xdebug Helper ,然后按照此處提供的說明進行操作。
最后一步是在PhpStorm
啟用監聽器。 Run -> Start Listening for PHP Debug Connections
通過設置斷點來進行調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.