我试图移动我的Magento开发环境到Docker。我已经开始与this准备使用的解决方案。几乎一切正常工作,除了xdebug。
我已经根据this tutorial设置了PhpStorm,并且我已经在服务器部分的Docker卷上正确Map了我的本地项目目录。当我尝试开始调试时,调试器窗口中会出现此消息
无法在本地找到文件“/var/www/html/pub/index.php”。若要修复此问题,请通过环境变量PHP_IDE_CONFIG设置服务器名称,然后重新启动调试会话。
我加了这个
environment:
- PHP_IDE_CONFIG=serverName=Magetwo
到php部分的docker-compose.yml
,但仍然是相同的错误。调试工作只有当我有项目位于相同的目录在主机上像在容器卷,但我想有不同的目录。
要强制xdebug工作,我应该做些什么修改?
6条答案
按热度按时间cnh2zyt31#
当尝试使用Docker在PHPSorm上进行调试时,同样的问题也会出现。
您可以通过向nginx配置添加
server_name
来解决此问题:server_name _;
应该设置为_
,这是默认的服务器名称。您也可以添加另一个服务器名称,导致PhpStorm添加一个新的PHP服务器(设置:PHP〉服务器),并将其用作Name
:server_name _ MyProject;
希望这能帮助那些对我还有同样问题的人
y4ekin9u2#
我通常将Docker子网IP设置为远程主机IP,如下所示:
您可以使用以下命令检查Linux中的ip:
如果你使用的是docker-compose,你可以将xdebug变量定义移到一个单独的.env文件中,并将其链接到docker-compose.yml中的容器配置:
e7arh2l63#
试着这样补充:
然后在设置〉PHP〉服务器中添加一个名为
Magetwo
的新服务器,以及用于调试的主机和端口。htrmnn0y4#
我遇到了同样的问题尝试在xdebug config中添加此行:
它应该将env变量传递给$_SERVER
syqv5f0l5#
我有一个类似的问题,相同的'要修复它设置服务器名称的环境变量PHP_IDE_CONFIG和重新启动调试会话。'
我最终解决这个问题的方法是设置$_ENV ['PHP_IDE_CONFIG']。当你收到这个消息时,请检查你的$_ENV,我打赌你不会有一个名为'PHP_IDE_CONFIG'的键。
我们如何得到这个集合?首先确保你的容器中有一个名为PHP_IDE_CONFIG的环境变量。如果你没有,那么就得到这个集合。我个人使用一个文件来定义我的env变量。请访问https://docs.docker.com/compose/environment-variables/#set-environment-variables-in-containers并搜索'env_file'。
一旦你把你的env变量放到你的容器中,它仍然不工作,那么试试这个:进入视图〉工具窗口〉Docker,然后点击编辑配置(一个图标),在那里,确保你连接到Docker,并且你有一个虚拟机路径到本地路径的Map。
除此之外,我使用Oleg的答案设置
xdebug.extended_info=1
,尽管这本身并没有解决我的问题,但我正在使用此设置。rjzwgtxy6#
请在docker-compose.yaml中为您的应用程序容器添加以下代码
示例:
另外,php.ini文件中的. xdebug设置:
并在docker-compose.yaml中为您的应用程序容器添加以下代码
对我很有效