vscode php Launch built-in server and debug, PHP内置服务xdebug调试,自定义启动参数配置使用示例

在vscode中,当我们安装了插件 PHP Debug(xdebug.php-debug)或者 xdebug.php-pack 后 我们通过内置默认的 php xdebug配置启动php项目后,默认情况下我们在vscode中设置断点是不会生效的,因为我们的内置php服务默认启动时是不会加上xdebug参数的。 这个时候有2种解决方法:

注意,不管那种方法,前提是你的php必须先安装好xdebug模块!

方法一、自定义vscode php内置服务的启动参数,增加xdebug的启动参数

vscode php内置服务配置 .vscode/launch.json

XML 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch built-in server and debug",
            "type": "php",
            "request": "launch",
            "runtimeArgs": [
                "-dxdebug.client_host=127.0.0.1",
                "-dxdebug.client_port=9003",
                "-dxdebug.mode=debug",
                "-dxdebug.start_with_request=1",
                "-S",
                "0.0.0.0:8000",
                "-t",
                "${cwd}/public",
                "${cwd}/public/router.php",
            ],
            "port": 9003,
            "serverReadyAction": {
                "action": "openExternally"
            }
            
        }
    ]
}

注意事项:

1. 上面的php内置服务的配置中,我们通过runtimeArgs增加的 -d启动参数,这个就相当于我们在php.ini的配置文件里面增加了相应的配置参数一样。

PHP内置服务的完整语法php [options] -S <addr>:<port> [-t docroot] [router]

这里可用的其他的可选性

-d foo[=bar] Define INI entry foo with value 'bar'

-z <file> Load Zend extension <file>.

2. 上面的xdebug启动参数配置是针对debug v3版本的,如果是v2版本需要有调整,2个版本的区别如下:

For Xdebug v3.x.x:

复制代码
xdebug.mode = debug
xdebug.start_with_request = yes

For Xdebug v2.x.x:

复制代码
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000

xdebug v2版本的启动参数为

"runtimeArgs": [

"-dxdebug.remote_enable = 1",

"-dxdebug.remote_autostart = 1",

"-dxdebug.remote_port = 9000",

"-S",

"0.0.0.0:8000",

"-t",

"${cwd}/public",

"${cwd}/public/router.php",

],

方法二、安装插件 DEVSENSE.phptools-vscode

如果不手动增加上面的配置,就需要安装这个插件,这个插件安装后,我们通过vscode启动PHP内置服务就会自动帮我们增加xdebug的启动参数, 如

Listening to Xdebug on port 0.0.0.0:9003,:::9003 ...

Launching /opt/local/bin/php -dxdebug.client_host=127.0.0.1 -dxdebug.client_port=9003 -dxdebug.mode=debug -dxdebug.start_with_request=1 -S localhost:8000 -t /tp8/server/public /tp8/server/public/router.php ...

PHP Development Server

不过这个插件免费版只能使用基础功能,高级功能是要收费的。

总结: vscode里面的各种的服务启动的参数实际上都可以通过.vscode/launch.json 文件中configurations 节点下的 runtimeArgs 来指定, 以上面的php内置服务为例,我们通过-d增加的xdebug启动参数最后都会自动附加到我们的php服务启动参数(php.ini)里面。 另外在php中使用xdebug的前提是php必须安装xdebug模块。

相关推荐
我命由我1234523 分钟前
Visual Studio - Visual Studio 注释快捷键
java·c语言·开发语言·c++·ide·java-ee·visual studio
码农小旋风26 分钟前
Codex 直接住进 JetBrains IDE 里:AI Agent 正在接管熟悉的开发入口
ide·人工智能
yoyo_zzm27 分钟前
ThinkPHP3.X:经典PHP框架的全面解析
开发语言·php
Cloud_Shy6182 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十章 Python 驱动的 Excel 工具 上篇)
vscode·python·数据分析·excel·pandas
号码认证服务3 小时前
小米、OPPO、VIVO手机支持号码认证显示公司名吗?
java·服务器·网络·经验分享·智能手机·云计算·php
ZHOUPUYU3 小时前
PHP8高性能Web开发实战指南
后端·html·php
yoyo_zzm3 小时前
六大编程语言核心差异全解析
c语言·c++·spring boot·php
yoyo_zzm3 小时前
四大编程语言对比:C/C++/C#/PHP
c++·c#·php
砍材农夫4 小时前
物联网 基于netty构建mqtt服务demo演示
开发语言·物联网·php
CDN3604 小时前
360CDN日志分析避坑指南:如何通过upstream_response_time精准定位源站瓶颈
网络·php·运维开发