2017-10-28 164 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应用程序时一样。

相关问题