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. 什么是jsp(java server pages)

    JSP是一种运行在服务器端的脚本语言,是用来开发动态网页的技术,它是JAVA Web 程序开发的重要技术.本章介绍JSP技术的相关概念以及如何开发JSP程序,主要内容包括JSP技术简介.JSP的处理过 ...

  2. Android Studio 中java 文件报错红色J

    用常用的方法清除Android Studio的缓存然后重启,"File" -> "Invalidate Cashes / Restart" -> & ...

  3. 基于TCP协议之socket编程

    #服务端 #导入一个socket模块 import socket #想象成买手机打电话:socket.SOCK_STREAM 表示建立tcp连接 ,udp连接socket.SOCK_DGRAM #买了 ...

  4. 解决visual studio换行(回车键)不能代码补全问题

    打开工具--选项:将标红的位置改为true即可.

  5. JavaFX如何制作鼠标多击事件?

    JavaFX制作鼠标双击或者多击事件需要用到getClickCount()方法,这个方法需要添加addEventHandler()方法,addEventHandler()是事件方法. 1 scene. ...

  6. JS---封装getScroll函数 & 案例:固定导航栏

    封装getScroll函数 1. 获取页面向上或者向左卷曲出去的距离的值 2. 浏览器的滚动事件 function getScroll() { return { left: window.pageXO ...

  7. Dynamics 365中使用计算字段自动编号字段实时工作流自动生成分组编码加流水号的自动编号字段值

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  8. Sunset: Nightfall Vulnhub Walkthrough

    靶机链接: https://www.vulnhub.com/entry/sunset-nightfall,355/ 主机扫描: ╰─ nmap -p- -A 10.10.202.162Starting ...

  9. Neo4j安装过程详解

    在安装neo4j之前,需要安装Java JRE,并配置Java开发环境,然后安装neo4j服务. 一.CentOS下安装 1.下载Neo4j 去官网下载最新的neo4j,选择社区版.地址:https: ...

  10. js new Date 创建时间默认是8点

    起因 最近在写一个页面,需要用到时间控制.然后我通过new Date()传入日期字符串创建了一个对象,并与当前时间做时间戳比较,结果12点刚过,就出问题了.举个栗子 // 假设当前时间是2019年12 ...