首页 > 编程语言 >php+phpstorm+xdebug配置

php+phpstorm+xdebug配置

时间:2023-05-21 18:11:59浏览次数:50  
标签:xdebug remote 端口 phpstorm debug php port

简介

原文链接:https://culturesun.site/index.php/archives/675.html

因为博客是php的,所以无奈接触了php开发,虽然之前也学习过php语法。
搞开发是离不开debug。最初从网上找到相关教程配置成功了,后来升级php,浏览器崩了搞的debug不行,再配置怎么也不成功,准确的来说,网上的辣鸡贴子太多了,遇到点突发情况就行不通了。
自己研究了一下,于此记录。

详解

php配置

如下是我本地的完整配置

[Xdebug]
xdebug.mode=debug
zend_extension=D:/phpstudy_pro/Extensions/php/php8.0.2nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=Off
xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.trace
xdebug.profiler_enable=Off
xdebug.profiler_output_dir="D:\phpstudy_pro\Extensions\tmp\xdebug"
xdebug.remote_enable=On
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.client_port=9001
xdebug.remote_handler=dbgp
xdebug.idekey = PHPSTORM

其中xdebug.remote_enable,xdebug.remote_host,xdebug.client_port,xdebug.idekey的配置要注意一下。
xdebug.idekey的配置不要变,xdebug.remote_port,xdebug.client_port灵活变动,但是要与下文配置一致。
同时要注意端口不要被其他程序占用。

phpstorm配置

有两处,看下图
这个Debug port填写client_port
2023-05-12T02:24:42.png
2023-05-12T03:28:04.png

xdebug浏览器扩展配置

注意选择phpstorm后点击保存
2023-05-12T03:29:09.png

详细debug过程讲解

remote_port这个是服务器也就是应用程序的代理端口
client_port这个是客户端也就是浏览器的xdebug扩展或者是本地的phpstorm代理端口

debug流程:

  1. 浏览器访问网站,如上图的localhost:1111是网站地址
  2. php的xdebug监听到,会将请求数据传递到remote_port,如上图的9000,也就是服务器的9000端口。所以这个端口就相当于xdebug的端口
  3. xdebug然后会将监听到的数据发送到client_port,如上图的9001
  4. 本地的phpstorm会监听9001端口接受数据,至此完成整个数据传递

因为是本地跑项目本地debug,所以上述的9000,9001端口都是在本地计算机的,如果是远程debug,就相当于本地仅仅打开了9001·端口,服务器打开的是9000`端口

结语

本文乃我自学总结。如有php大佬发现有错误,烦请本页面留言指正!!!

标签:xdebug,remote,端口,phpstorm,debug,php,port
From: https://www.cnblogs.com/culturesun/p/17418930.html

相关文章

  • 宝塔面板中安装php8以上环境,提示: configure: error: iconv does not support errno
    问题:宝塔面板中安装php8编译时提示configure:error:iconvdoesnotsupporterrno#下面这些是配置yum源和epel源,阿里云ecs在centos8测试成功wgethttp://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo-O/etc/yum.repos.d/Centos-vault-8.5.2111.repo&&......
  • php 操作数组 (合并,拆分,追加,查找,删除等)
    1.合并数组array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:Php代码1.arrayarray_merge(array这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组......
  • PHP模拟登录并获取数据
    cURL是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数,开发者可以从PHP手册中获取更多关于cURL信息。本文以模拟登录开源中国(oschina)为例,和大家分享cURL的使用。PHP的curl()在抓取网页的效率方面是比较......
  • Linux 服务器中 PHP 版本从 5.x 升级到 7.x
    如果把Linux服务器的PHP版本升级呢?比如目前版本是 PHP5.6.40,升级到7.4当前最最新版本 PHP7.4.30。查看当前PHP版本 php-v卸载已安装的PHPyumremovephp-common安装EPEL源yuminstallepel-release如果已安装过,则提示如下:安装remi 源yuminstallhttp://rpms.rem......
  • PHP 基础
    <?php__FUNCTION__:获取函数名标记和注释<?phpecho'helloworld';?>/*注释*///注释语法结束符<?php?><?php变量//定义变量使用$关键字$a=1;//访问变量echo$a;//修变量$a=2;//删除变量使用unset关键字unset(变量名);变量命名规则......
  • PHP性能优化工具篇Benchmark类调试执行时间
    这是PHP性能优化系列第二期,如何使用PEAR工具类Benchmark逐行获取代码或函数的执行时间。工欲善其事,必先利其器!如何安装PEAR和Benchmark请参考PHP性能优化系列第一期[PHP性能优化准备篇图解PEAR安装]Benchmark工具类包说明直接下载/package/Benchmark/downloadBenchmark工具类包共......
  • nodejs 解析php的session_decode 的module(session_decode.js)
    文件名:session_decode.js//exports.session_decode=function(){//varmessage="Hellofromtheohaitheremodule";//returnmessage;//};exports.session_decode=function(data){//*example:session_decode('firstName|s:5:&quo......
  • 【ThinkPHP6系列学习-3】模板渲染
    视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。视图相关的配置在配置目录的view.php配置文件中进行定义。通常可以直接使用think\faca......
  • 【ThinkPHP6系列学习-1】下载并部署ThinkPHP6
    一、下载ThinkPHP6在指定目录(www目录)下打开cmd,使用composer下载thinkphp6,命令后面的thinkphp6就是下载的目录名,可以随意修改。composercreate-projecttopthink/thinkthinkphp6二、目录结构下载后,查看目录结构,tp6的目录结构和tp5不同,默认是单应用(只有一个模块),如果需要多应......
  • java中把对象序列化成php序列化的字符串以及把php序列化的字符串反序列化为java对象的
    依赖第三方库phprpc序列化成php格式的字符串很简单,直接调用org.phprpc.util.PHPSerializer.serializer方法就行,有问题的是反序列化php格式的字符串为List或Map对象时,得到的是个AssocArray对象,需要写方法进行转换。通过下面这个方法可以实现转为java对象。publicstati......