总览
由于在Vessel的PHP环境中安装了Xdebug的主要版本升级,因此在运行时无法停止远程步进。
为了执行步骤执行,必须将Vessel的设置更改为与Xdebug 3对应的内容。
什么是船只
Vessel是使用Docker的Laravel应用开发环境
船只-Laravel的Docker开发环境
https://vessel.shippingdocker.com/
什么是Xdebug
PHP调试扩展
Xdebug-用于PHP的调试器和探查器工具
https://xdebug.org/
步骤执行不停止的原因
- 在创建环境时,Vessel将使用PECL安装最新版本的Xdebug。
- Xdebug 3于2020年11月25日发布。
- 从Xdebug 3开始,更改了php.ini中指定的远程调试设置,但是Vessel现在是Xdebug 2设置。
- Xdebug 3发行后构建的容器开发环境无法在不更改设置的情况下使用Xdebug进行远程调试。
Xdebug 3发生了什么变化
从Xdebug 2升级到3
https://xdebug.org/docs/upgrade_guide
下面,仅总结要点,
1.启用步骤执行的设置已更改
Xdebug 2:
Xdebug 3:
2.从Xdebug连接的地址的设置项目已更改
Xdebug 2:
Xdebug 3:
3.从Xdebug连接的端口的设置项目和端口号已更改
Xdebug 2:
Xdebug 3:
Xdebug 3配置概念
与在每个功能的设置中启用的Xdebug 2相反,Xdebug 3似乎认为通过指定"模式"将其设置为所需的状态。设置此模式为
之后,设置项目
对于Xdebug 2,从Xdebug的angular来看,开发环境意味着"远程",但是
Xdebug 3可能意味着Xdebug在"服务器"上运行并正在开发的本地环境是"客户端"。
我认为这是直观且易于理解的,但是兼容...
使Vessel设置与Xdebug 3兼容的步骤
创建容器开发环境
首先,按照常规步骤创建一个Vessel开发环境。
↓单击此处,了解官方网站上的步骤
入门
https://vessel.shippingdocker.com/docs/get-started/
创建开发环境后,检查应用程序是否正常运行。
更改Xdebug设置
更改设置的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | % tree . ├── LICENSE ├── README.md ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── docker │ ├── app │ │ ├── Dockerfile │ │ ├── default │ │ ├── h5bp │ │ ├── start-container │ │ ├── supervisord.conf │ │ ├── vessel.ini │ │ └── xdebug.ini ← このファイルを編集する │ ├── mysql │ │ ├── conf.d │ │ └── logs │ └── node │ └── Dockerfile ├── docker-compose.yml ├── package.json ├── phpunit.xml ├── public ├── resources ├── routes ├── server.php ├── storage ├── tests ├── vendor ├── vessel └── webpack.mix.js |
Xdebug 3设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | zend_extension=xdebug.so xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_port=9000 xdebug.remote_autostart=1 xdebug.remote_connect_back=0 xdebug.idekey=docker xdebug.remote_host=192.168.1.2 xdebug.max_nesting_level = 500 ; ↑ XDebug 2 の設定 ; XDebug 3 の設定 ※ここを追加する xdebug.mode = debug xdebug.client_host = host.docker.internal ← コンテナから見たホストのIPアドレス ; xdebug.client_port = 9000 ← XDebug 2 と同じポート 9000 に接続する場合はここで指定 |
https://docs.docker.jp/docker-for-mac/networking.html
以反映更改的设置
生成并重新启动容器,以使
1 2 3 | ./vessel stop ./vessel build ./vessel start |
在IDE
中进行必要的设置
由于
Xdebug 3连接的端口已从
您可以使用
或
PhpStorp
配置Xdebug --PhpStorm
https://www.jetbrains.com/help/phpstorm/configuring-xdebug.html
Visual Studio
调试配置文件设置示例
https://github.com/aibax/vessel-xdebug3-sample/blob/main/.vscode/launch.json
参考
我为此编写了示例代码
https://github.com/aibax/vessel-xdebug3-sample