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

PHPStorm 初遇 Xdebug (xdebug代码调试及性能分析)的更多相关文章

  1. NodeJS的代码调试和性能调优

    本文转自我的个人博客. NodeJS 自 2009 年显露人间,到现在已经六个年头了,由于各种原因,中间派生出了个兄弟,叫做 iojs,最近兄弟继续合体,衍生出了 nodejs4.0 版本,这东西算是 ...

  2. PHP使用Xdebug进行远程调试

    PHP使用Xdebug进行远程调试 翻译 by mylxsw posted on 2014/07/14 under 技术文章 > 编程语言 Xdebug提供了客户端与PHP脚本进行交互的接口,这 ...

  3. AbsInt — 确保代码安全的性能/资源分析工具套件

            德国AbsInt公司是一家安全苛求软件研发.确认.验证和认证工具链的供应商,能够为客户提供完整的确保代码安全的性能分析工具套件以及软件分析.验证.确认和编译器技术相关咨询服务.AbsI ...

  4. PHP 性能分析与实验(二)——PHP 性能的微观分析

    [编者按]此前,阅读过了很多关于 PHP 性能分析的文章,不过写的都是一条一条的规则,而且,这些规则并没有上下文,也没有明确的实验来体现出这些规则的优势,同时讨论的也侧重于一些语法要点.本文就改变 P ...

  5. 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途

    对 .NET 程序进行性能分析,dotTrace 能应对绝大多数的场景.在开启一个进程进行性能分析之前,我们会看到一些性能分析选项(Profiler Options).本文将介绍这几个选项的含义,并用 ...

  6. Python, Django 性能分析工具的使用

    最近接手的 Apache HUE 项目性能出现了问题,线上经常出现响应时间过长或因为时间过长而无法服务等问题.老大让我准备弄个性能分析工具,便于追踪和分析平台当前的瓶颈出现在哪里. 那就搞起吧!先从代 ...

  7. 带你玩转Visual Studio——性能分析与优化

    找到性能瓶颈 二八法则适合很多事物:最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的.在程序代码中也是一样,决定应用性能的就那20%的代码(甚至更少).因此优化实践中,我们将精力 ...

  8. phpstorm配合xdebug进行本地调试代码

    笔者在使用的环境是wamp3.1.6和phpstorm2018 ,php选择的环境是php7.2 1. 在php.ini中添加xdebug的配置信息 首先建议是先找对php.ini的位置,可以在php ...

  9. phpStorm中使用xdebug断点调试php代码

    配置好xdebug,也能使得phpstorm像java哪像跑断点调试,爽的一笔!!! 下载xdebug并配置 [XDebug] zend_extension=php_xdebug-2.4.0rc3-5 ...

随机推荐

  1. Bean 字段复制利器 MapStruct

    本文聊一个工具类,MapStruct ,它是一个在 dto,po(do/entity),vo 等这些 pojo 中转换字段的一个工具,在应用中经常有这样的转换,在 spring 和 apache-co ...

  2. Spring boot 集成 阿里 Mqtt

    因为公司业务需求,需要接入 阿里Mqtt,自己基于Spring写了一个小demo,记录下来,已备以后需要. 第一步 创建一个实体bean用来装载 MqttClient private MqttClie ...

  3. 【Taro】363- 玩转 Taro 跨端之 flex 布局篇

    Taro 是一套遵循 React 语法规范的跨平台开发解决方案,但是目前当我们使用 Taro 的时候,在不同平台上的开发体验还有不一致的地方,所以我们也都期待有一套跨平台统一的解决方案,能够以最小差异 ...

  4. Microsoft store应用商店打不开0x80131500

    开始安装Windows的Linux子系统发现没办法打开应用商店,开始了三个小时的挖贴之路,最终于百度贴吧最底层发现解决办法,同样错误貌似只有两个人.... 首先介绍一下网上普遍的方法↓↓↓ 第一种—— ...

  5. iOS Charts 折线图框架的基本使用

    1. 导入框架 通过 cocoapods 管理应用程序时,在 Podfile 文件中,use_frameworks! 的使用区别如下: 使用 use_frameworks! 时 dynamic fra ...

  6. 使用 Vue + TypeScript 时项目中常用的装饰器

    目录 一.@Component 装饰器 1)父组件 2)子组件 二. @Emit 装饰器 1)父组件 2)子组件 三. @Model 装饰器 1)父组件 2)子组件 四. @Prop 装饰器 1)父组 ...

  7. 一段简单的关于字符串的 Java 代码竟考察了这么多东西

    下面的代码运行结果是什么?解释一下为什么会有这些差异. String s1 = "hello";String s2 = s1 + ",world";String ...

  8. CSS 计数器详解

    在前端开发中总少不了列表项,对于列表项序号,射鸡师一般会列出个1,2,3...序号.在不了解css计数器属性之前,我一般会用精灵图,用类名来区分序列号图片.这样做尽管可以达到目的,但是很不方便,开发过 ...

  9. 学习Python编程技术的流程与步骤,自学与参加培训学习都适用

     一.清楚学习目标 无论是学习什么知识,都要有一个对学习目标的清楚认识.只有这样才能朝着目标持续前进,少走弯路,从学习中得到不断的提升,享受python学习计划的过程. 虽然目前的编程语言有很多,但是 ...

  10. spring源码学习(四)-spring生命周期用到的后置处理器

    生命周期的九大后置处理器 第一次调用后置处理器org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory# ...