远程调试前,请先完成PHP远程开发配置
IDE集成了Xdebug插件,并监听指定端口,一般为9000;
Xdebug作为PHP扩展,需要在php.ini中对其进行配置,配置内容包含欲发送数据的端口,即IDE监听的端口(一般为9000)。
Xdebug通过请求参数XDEBUG_SESSION_START
来判断是否开启调试,Xdebug和IDE通过相同端口进行通迅、传递断点行数、断点运行情况等。
1.0> 复制 phpinfo()
输出的所有信息
<?php phpinfo(); ?>
2.0> 打开https://xdebug.org/wizard.php,粘贴 phpinfo()
输出的所有信息,然后点击下方按钮进行分析
3.0> 如下,分析结果中会出现适合当前环境的Xdebug版本,以及下载安装步骤:
4.0> 按照分析结果中的提示,安装配置Xdebug
4.1> 先安装必要软件
yum groupinstall "Development tools" && yum install php-devel autoconf automake
4.2> 下载安装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
## 执行
phpize
## 执行
./configure
## 编译
make
## 复制到php扩展目录
cp modules/xdebug.so /usr/lib64/php/modules
4.3> 编辑php.ini
vim /etc/php.ini
添加如下内容
[Xdebug] ; 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=PHPSTOR
5.0> 重启Apache
systemctl restart httpd.service;
6.0> 查看Xdebug是否安装成功
1.0> 安装php debug插件
2.0> 打开VS Code调试面板
3.0> 点击运行或直接创建 launch.json
调试配置文件,文件内容如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9000,
"serverReadyAction": {
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}
4.0> 修改 launch.json
配置文件中的9000
端口为 php.ini
配置文件中的 xdebug.client_port
5.0> 直接在浏览器中访问远程服务即可,无须显示的在URL中添加相关调试参数
vscode远程开发调试时,远端服务可能无法随着客户端的关闭而销毁,导致大量占用服务器内存;如下命令可销毁远端vscode服务;
ps uxa | grep .vscode-server | awk '{print $2}' | xargs kill -9