PHPStorm + Xdebug 代码调试

2019-12-24 11:40:55 浏览数 (1)

centos 7 下PHP7安装xdebug
  1. 下载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
代码语言:txt复制
1. 关于php-fpm重启命令,可以参考[Centos7源码编译安装PHP7.2(生产环境)](https://www.cnblogs.com/zhuchenglin/p/11773409.html)后半部分关于xdebug profiler 参考 
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. 设置断点,开始调试 注意:
代码语言:txt复制
1. 上面说的sftp配置
代码语言:txt复制
    1. 点击 Tools/Deployment/Configuration,然后点击   ,选择sftp,填写ip和端口号及身份认证信息,然后填写服务器上对应的项目的绝对路径,保存。
    2. Tools/Deployment/Automatic Upload,这样每次修改的代码都会被同步到远程服务器
2. 调试的时候,需要先在必要的位置打断点,然后点击debug按钮启动调试,使用工具或者另一个项目连接swoole开始调试。
代码语言:txt复制
    1. debug的时候会连接远程服务器开启swoole进程,如果报错,可能需要将远程服务器swoole的进程关掉
    2. 每次修改swoole服务端的代码都需要关掉swoole进程,然后再点击debug按钮
    3. 杀掉swoole进程的命令 ps -ef | grep "启动服务文件" | awk '{print $2}' | xargs kill -3

注:本文是根据查阅的资料及自己实际使用情况所写

如需转载请注明出处:https://cloud.tencent.com/developer/article/1558507

0 人点赞