美文网首页Laravel开发实践Laravel
Homestead+phpstorm+xdebug远程调试Lar

Homestead+phpstorm+xdebug远程调试Lar

作者: 潇湘Blake | 来源:发表于2018-10-24 16:23 被阅读14次

    准备工作

    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)

    相关文章

      网友评论

        本文标题:Homestead+phpstorm+xdebug远程调试Lar

        本文链接:https://www.haomeiwen.com/subject/pnhxtqtx.html