zoukankan      html  css  js  c++  java
  • PHPStorm 初遇 Xdebug (xdebug代码调试及性能分析)

    centos 7 下PHP7安装xdebug

    ```shell
    # 下载xdebug
    wget https://xdebug.org/files/xdebug-2.7.2.tgz
    # 解压
    tar -xf xdebug-2.7.2.tgz
    # 建立php的外挂模块
    cd xdebug-2.7.2.tgz
    /usr/local/php/bin/phpize
    # 生成 Makefile
    ./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
    # 编译并安装
    make -j4 && make install
    # 配置 php.ini
    vim /usr/local/php/etc/php.ini
    #添加
    ;;;;;;;;;;;;;;;;;;
    ; xdebug;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;
    zend_extension=xdebug.so
    xdebug.idekey = PHPSTORM
    xdebug.remote_enable = 1
    xdebug.remote_mode = req
    xdebug.remote_handler = dbgp
    xdebug.remote_connect_back = 1
    xdebug.remote_port = 9999
    xdebug.remote_autostart = 1
    xdebug.remote_log = /usr/local/php/var/log/xdebug.log
    # 这是xdebug的性能分析工具
    xdebug.profiler_enable=0
    xdebug.profiler_enable_trigger=1
    xdebug.profiler_output_dir="/opt/web/phpc/xdebug/profile"
    ;xdebug.profiler_enable_trigger_value="lintest"
    xdebug.profiler_output_name="cachegrind.out.%R"
    ```
    

    注:

    1. 关于make -j 参数

    2. 安装后重启一下php-fpm,使用查看是否安装成功

      service php-fpm restart 
      /usr/local/php/bin/php -m | grep xdebug
      /usr/local/php/bin/php --ri xdebug | grep Version
      
      1. 关于php-fpm重启命令,可以参考Centos7源码编译安装PHP7.2(生产环境)后半部分
    3. 关于xdebug profiler 参考 使用xdebug profiler 对php做性能分析

      1. 访问php项目,记得在请求参数带上 XDEBUG_PROFILE, 类似 http://127.0.0.1:5671/my?XDEBUG_PROFILE
      2. xdebug应该已经在我们配置的分析文件保存目录产生了文件,如果没有的话可以看看 /tmp  文件夹下有没有
      3. 安装图形界面工具
      	1. git clone https://github.com/jokkedk/webgrind.git
      	2. 进入 webgrind 修改config.php  文件 的  $profilerDir 变量
      	3. 在nginx vhost下配置一个虚拟主机 指向 webgrind/index.php 或 (本地的话)php -S 0.0.0.0:8081 index.php
      

    phpstorm + xdebug 调试 远程 web应用

    1. 打开项目,点击file ,打开settings
    2. Language&Frameworks 下的 PHP 不需要设置
    3. 找到 Language&Frameworks 下的 PHP 里面的Debug 将端口设置为php.ini中配置的端口(上面设置的9999)
    4. 找到PHP 下面的 Servers 点击 + ,Host 填访问nginx中对应项目配置的域名,端口填nginx中配置的访问端口,Debugger选择Xdebug,然后选use path mappings ,设置一下文件映射(路径均填绝对路径),保存
    5. (在run按钮旁边)编辑运行环境,点击 + 选择 PHP Web Page ,然后 Server选上面配置的那个server,然后保存
    6. 打断点,开启debug的监听,再本地刷新页面就可以开始调试了

    phpstorm + xdebug 调试远程 swoole服务 应用

    1. 打开项目,点击file,打开settings

    2. 找到 Language&Frameworks 下的 PHP ,选择PHP版本,然后选择cli Interpreter(不要选本地安装的PHP),点击+ 然后选择from docker ... 这一项,然后选择 Deployment configuration 这一项,选择配置过的sftp配置,修改PHP解释器的绝对路径(远程服务器的),我的是 /usr/local/php/bin/php 确定保存

    3. 找到 Language&Frameworks 下的 PHP 里面的Debug 将端口设置为php.ini中配置的端口(上面设置的9999)

    4. 找到PHP 下面的 Servers 点击 + ,host 填 远程服务器的ip,端口填22,Debugger选择Xdebug,然后选use path mappings ,设置一下文件映射(路径均填绝对路径),保存

    5. 设置断点,开始调试

      注意:

      1. 上面说的sftp配置

        1. 点击 Tools/Deployment/Configuration,然后点击 + ,选择sftp,填写ip和端口号及身份认证信息,然后填写服务器上对应的项目的绝对路径,保存。
        2. Tools/Deployment/Automatic Upload,这样每次修改的代码都会被同步到远程服务器
      2. 调试的时候,需要先在必要的位置打断点,然后点击debug按钮启动调试,使用工具或者另一个项目连接swoole开始调试。

        1. debug的时候会连接远程服务器开启swoole进程,如果报错,可能需要将远程服务器swoole的进程关掉

        2. 每次修改swoole服务端的代码都需要关掉swoole进程,然后再点击debug按钮

        3. 杀掉swoole进程的命令

          ps -ef | grep "启动服务文件" | awk '{print $2}' | xargs kill -3
          

    注:本文是根据查阅的资料及自己实际使用情况所写
    如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/12075046.html

  • 相关阅读:
    APP-5-百度电子围栏
    APP-4-百度地图定位
    洗礼灵魂,修炼python(60)--爬虫篇—httplib2模块
    洗礼灵魂,修炼python(59)--爬虫篇—httplib模块
    洗礼灵魂,修炼python(58)--爬虫篇—【转载】urllib3模块
    洗礼灵魂,修炼python(57)--爬虫篇—知识补充—编码之对比不同python版本获取的数据
    洗礼灵魂,修炼python(56)--爬虫篇—知识补充—编码之url编码
    洗礼灵魂,修炼python(55)--爬虫篇—知识补充—RFC 2616 http状态码
    洗礼灵魂,修炼python(54)--爬虫篇—urllib2模块
    洗礼灵魂,修炼python(53)--爬虫篇—urllib模块
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/12075046.html
Copyright © 2011-2022 走看看