Laravel开发实践Laravel

Homestead+phpstorm+xdebug远程调试Lar

2018-10-24  本文已影响14人  潇湘Blake

准备工作

  1. Laravel提供的Homestead 环境下,php+nginx+xdebug已经预先安装完成。
  2. chrome浏览器下安装Xdebug helper
  3. 调试post请求建议使用postman

配置Homestead

  1. 通过ssh登录到虚拟机中
  2. 通过xon命令启用xdebug,出现类似如下输出证明已经启用xdebug
    xdebug已启用
  3. 通过命令找到网关(用于配置后续的remote_host)
    netstat -rn | grep "^0.0.0.0 " | cut -d " " -f10
    查询网关
  4. 通过命令找到xdebug的ini配置文件
    php --ini | grep 'xdebug'
    搜索配置文件位置
    需要注意的是这里通过命令行查询的php是cli模式,网页调试一般是fpm模式,所以路径应该对应换成/etc/php/7.1/fpm/conf.d/20-xdebug.ini
  5. 编辑xdebug的配置文件
    sudo vim /etc/php/7.1/fpm/conf.d/20-xdebug.ini
    将原有的配置替换为:
zend_extension=xdebug.so
xdebug.remote_enable = 1
xdebug.remote_port=9000 # 远程通信端口
xdebug.max_nesting_level=512
xdebug.remote_host=10.0.2.2 # 上文中提到的网关地址
xdebug.remote_autostart=1 # 自动启动设为true
  1. 重启nginx和php
    sudo /etc/init.d/php7.1-fpm restart
    sudo /etc/init.d/nginx restart
    至此,Homestead虚拟机中的配置完成

配置phpstorm

  1. 打开设置,依次选择Languages & Frameworks => PHP ,进行对应的设置


    设置 Interpreters
  2. 选择Debug,默认设置一般就行,注意检查红框位置,之后验证即可


    debug设置
  3. 点击Validate进行验证,将本地的public目录和远程的访问url填写后,点击Validate,对应有不对的依照提示更改


    验证远程设置
  4. 配置Servers,host填写app的地址,注意进行map映射本地和远程目录


    编辑服务
  5. 依次点击Run=>Edit Configrations


    编辑debug配置
  6. 新增一个PHP Remote Debug,配置如图(IDE key用于调试)

remote debug配置
  1. 至此,phpstorm配置完成,点击图标开始监听,然后点击绿色小虫开始debug


    启动监听
  2. 到浏览器中打开对应的网页,例如在public目录下新建一个test.php用于调试,则打开对应的url/test.php,此时浏览器应该处于等待响应状态,打开phpstorm会发现已经进入debug状态,可以查看各种信息。


    调试界面
  3. 通过打断点,单步调试,检查变量等方法,可以快速地调试程序,修复bug

使用chrome浏览器打开网页进行调试

  1. 设置Xdebug Helper 的IDE key为 phpstorm即可


    Xdebug Helper 设置

使用postman进行API方式调试

  1. 在postman的url中添加参数XDEBUG_SESSION_START=PHPSTORM

    postman调试
  2. 点击send后到phpstorm中调试即可,与浏览器一致。

常见的问题

debug界面一直处于Waiting for incoming connection with ide key 'PHPSTORM'状态,刷新网页也没有任何响应

debug

解决办法:通常是host配置错误,注意要配置为homestead中查询到的网关地址(本地调试配置通常为192.168.10.1,远程调试通常为10.0.2.2)

上一篇下一篇

猜你喜欢

热点阅读