远程调试前,请完成PHP远程开发配置
IDE集成了Xdebug插件,并监听指定端口,一般为9000;
Xdebug作为PHP扩展,需要在php.ini中对其进行配置,配置内容包含欲发送数据的端口,即IDE监听的端口(一般为9000)。
Xdebug通过URL上的XDEBUG_SESSION_START
参数来判断是否开启调试,Xdebug和IDE通过相同端口进行通迅、传递断点行数、断点运行情况等。
同上,远程调试也必须保证IDE和Xdebug能够相互通迅,其次是远程代码与本地代码必须一致。
远程服务器上Xdebug
的php.ini
配置通常如下,其中xdebug.remote_host
指定IDE所在电脑的IP,用于与IDE互通。IDE通常在本地,在远程服务器上指定IDE所在的本地IP,并不是一种好的解决方案。
.... xdebug.remote_host=localhost xdebug.remote_port=9000 ....
推荐如下,配置xdebug.remote_connect_back=On
,从请求来源中动态获取IP;即,动态获取IDE所在的电脑IP,因为一般访问服务器的IP就是IDE所在的电脑IP;
[XDebug]
;; Only Zend OR (!) XDebug
zend_extension="D:xamppphpextphp_xdebug-2.5.4-7.1-vc14.dll"
xdebug.remote_enable=1
# 从 $_SERVER['HTTP_X_FORWARDED_FOR'] 或 $['REMOTE_ADDR'] 中获取来源IP, 此配置会覆盖xdebug.remote_host
xdebug.remote_connect_back=On
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.collect_vars=On
xdebug.collect_return=On
xdebug.collect_params=On
xdebug.profiler_enable=1
xdebug.profiler_output_dir=D:xampptmp
详见:https://www.xiebruce.top/1191.html#xdebug-2
1.0> 执行如下命令输出当前环境中的PHP信息
php -r 'phpinfo();'
2> 打开https://xdebug.org/wizard.php,粘贴 phpinfo()
输出的所有信息,然后点击下方按钮进行分析
如下,分析结果中会出现适合当前环境的Xdebug版本,以及下载安装步骤:
安装上图提示,先安装必要软件
yum groupinstall "Development tools" && yum install php-devel autoconf automake
下载安装Xdebug
cd /
## 下载xdebug
wget http://xdebug.org/files/xdebug-3.0.4.tgz
## 解压
tar -xvzf xdebug-3.0.4.tgz
## 进入目录
cd xdebug-3.0.4
## 执行
./configure
## 编译
make
## 复制到php扩展目录
cp modules/xdebug.so /usr/lib64/php/modules
编辑php.ini,添加如下内容
vim /etc/php.ini
[Xdebug] ; xdebug.so位置 zend_extension = /usr/lib64/php/modules/xdebug.so xdebug.remote_enable=1 xdebug.remote_autostart=1 xdebug.remote_connect_back=On xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.idekey=PHPSTORM
; xdebug.so位置 zend_extension = /usr/lib64/php/modules/xdebug.so xdebug.mode=debug xdebug.start_with_request = yes xdebug.discover_client_host = on xdebug.client_port = 9000 xdebug.remote_handler=dbgp xdebug.idekey=PHPSTORM
重启Apache
systemctl restart httpd.service;
打印PHP环境信息,查看Xdebug是否安装成功
php -r 'phpinfo();'