PhpStorm配置Xdebug远程调试
发布时间 2019年3月30日 • 1 分钟 读完 • 148 字PhpStorm配置Xdebug远程调试
调试复杂些的项目代码,Xdebug 是一把利器,本文结合自己的开发环境简讲通过PhpStorm完成Xdebug调试,部分原理图借鉴xxlegend作者
本机:Windows10 + PhpStorm 2018 + Ip 192.168.10.108
开发机:CentOS 6.10 + PHP 7.1 + Nginx 1.14 + Ip 192.168.10.140
一般情况开发者都是在本地开发,使用的开发环境也是本地自己搭建的,无论是在Win、Mac、Linux三者哪一个平台开发,最终想达到的体验是尽可能和生产环境一致,如果是在Win下开发,带来的代码兼容性问题时长让人难受(如:大小写问题),以至于追求Unix开发是一种潮流,这可能便是Mac之所以时程序员所爱的原因吧,Win下要想到达此效果。
Window下安装虚拟机,虚拟机中安装Linxu系统;Windows 10已经支持开启子系统,Ubuntu子系统中安装PHP开发环境;samba共享目录方式,本机无环境,开发机创建一个自己的虚拟目录;SSD,内存没到4G 慎用Windows 10 开启子系统,在应用市场一键安装Ubuntu,还是很方便的,在子系统中可以直接访问宿主机(本机)目录,使用感很方便。IP为140的开发机,通过samba创建虚拟目录,本地添加网络盘方式打开140自己Home开发目录;开发机(140)项目目录`/home/dingbing/zhifu`
本机目录`Z:\zhifu`本机通过挂载网络盘方式,访问到开发机/home/dingbing/zhifu

客户端(浏览器)发起请求,服务器Apache(或Nginx等),接收请求根据服务端配置规则如果是.php转交PHP,如果携带调试信息?XDEBUG_SESSION_START=10003参数,并且PHP引擎安装且开启了Xdebug,Xdebug把信息转发给IDE,从而完成断点调试。
使用静态IP/单个开发人员
{% asset_img [class names] dbgp-setup.gif [width] [height] [title text [alt text]] %}
这里平台不一样,安装方式也不一样,Linux 和 Window 平台会稍有不同,PHP 版本不一样,对应安装的Xdebug版本也不一样,安装方式这里暂时不总结了。
Linux 下编译后,将.so文件引入到php.ini
Window下,将对应的xdebug.dll库文件引入到php.ini
官方下载地址 https://xdebug.org/download.php
安装后我的(CentOS)php.ini配置清单
[XDebug]
xdebug.idekey=PHPSTORM
xdebug.remote_mode=req
;xdebug.remote_connect_back = 1
;//注意:如果开启此,将忽略下面的 xdebug.remote_host 的参数
xdebug.remote_host=192.168.10.117
;//注意:客户端的IP<即IDE的机器的ip>
xdebug.remote_enable=1
xdebug.remote_port=9009
;//注意:客户端的端口<与IDE的Xdebug端口一致,此端口不能被其他程序占用>
xdebug.remote_handler=dbgp
xdebug.auto_trace = 1
;xdebug.remote_log = /tmp/xdebug.log
zend_extension=/www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so配置项解释:https://xdebug.org/docs/remote
步骤 File->Setting->Languages & Frameworks->PHP->Debug
注意IDE Xdebug port端口要和php.ini配置保持一致。

步骤 File->Setting->Languages & Frameworks->PHP->Servers
xdebug_set_1

步骤 Run->Edit Configurations->Add New Configuration



Q:开启Debug后,1分钟后调试自动终止了。
A:是因为PHP脚本默认超时时间是 1分钟,设置PHP 超时时间为1小时、或2小时,
设置方式:
request_terminate_timeout = 7200FcgidIOTimeout 7200END :-)