在phpstorm中远程调试程序(with xdebug)

背景

前段时

原理

首先在服务器上装对应版本的XDebug
,当一个普通的请求发送到server去的时候,server不会响应xdebug功能。当server收到两种请求情况时,会调用xdebug
1、url形如http://example.com/?XDEBUG_SESSION_START=PHPSTORM时(PHPSTORM为id key),
2、或者发起的请求cookie中,有XDEBUG_SESSION_START=PHPSTORM时(PHPSTORM为id key)。
只有这两种情况下,server才会知道说我要看调试信息了。
此时,server会根据xdebug配置文件向目标主机上建立一个连接(包括IP信息和端口信息,xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000),此时server会把xdebug信息主动发送到对应主机端口上,具体目标主机怎么接受,怎么解析信息,server不管。一般情况下,用phpstorm的时候,会一直监听设置的端口信息(需要用户手动开启)。
但是通常情况下,server设置不能主动和你的目标主机建立tcp连接,这种情况需要你在目标主机和server之间建立ssh通道。
在server改完xdebug配置文件,如果用的是Apache,则重启Apache,如果是php-fpm,

在此打赏