[关闭]
@Chiang 2020-02-26T21:37:32.000000Z 字数 1642 阅读 709

PHP-断点调试

PHP-断点调试 2020-02


准备

  • macos
  • Chrome Xdebug helper
  • Visual Studio Code
  • docker docker-compose dnmp
  • php-xdebug

chrome 安装 xdebug helper

Visual Studio Code 安装 PHP Debug

mocos 安装 docker

docker 安装 yeszao/dnmp

dnmp 添加 xdebug 扩展

  1. PHP_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcache,swoole,redis,xdebug

php.ini xdebug 配置

这里只是把xdebug.remote_port = 9000的注释去掉了

  1. [XDebug]
  2. xdebug.remote_enable = 1
  3. xdebug.remote_handler = "dbgp"
  4. ; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip
  5. xdebug.remote_host = host.docker.internal
  6. xdebug.remote_port = 9000
  7. xdebug.remote_log = /var/log/php/xdebug.log
  8. SERVER_ENV=develop
  9. yaf.use_spl_autoload=1

vs code 配置

  1. {
  2. // Use IntelliSense to learn about possible attributes.
  3. // Hover to view descriptions of existing attributes.
  4. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [
  7. {
  8. "name": "Listen for XDebug",
  9. "type": "php",
  10. "request": "launch",
  11. "port": 9000,
  12. "stopOnEntry": true, // 运行开始断点,用于调试。
  13. "pathMappings": {
  14. // "容器中对应的项目地址": "本机项目地址"
  15. // 绝对路径
  16. "/www/blog/public": "/Users/jiangfazhan/learn/dnmp/www/blog/public"
  17. }
  18. },
  19. {
  20. "name": "Launch currently open script",
  21. "type": "php",
  22. "request": "launch",
  23. "program": "${file}",
  24. "cwd": "${fileDirname}",
  25. "port": 9000
  26. }
  27. ]
  28. }

这里只是添加了

  1. "stopOnEntry": true, // 运行开始断点,用于调试。
  2. "pathMappings": {
  3. // "容器中对应的项目地址": "本机项目地址"
  4. // 绝对路径
  5. "/www/blog/public": "/Users/jiangfazhan/learn/dnmp/www/blog/public"
  6. }

这样就可以运行了,其他地方不需要修改


参考资料:
如何使用 vscode 对基于 Docker 的 PHP 进行断点调试
Debugging
使用vscode远程调试docker容器内的php应用
避坑!用 Docker 搞定 PHP 开发环境搭建(Mac、Docker、Nginx、PHP-FPM、XDebug、PHPStorm、VSCode)
避坑!用Docker搞定PHP开发环境搭建(Mac、Docker、Nginx、PHP-FPM、XDebug、PHPStorm、VSCode)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注