环境
- Windows 11 专业版
- XAMPP v3.3.0
- PHP 8.2.12
- Apache 2.4.58
- VSCode 1.99.3
XAMPP
浏览器打开 https://www.apachefriends.org/download.html ,下载XAMPP,可以选择不同的操作系统和版本,我下载的文件是 xampp-windows-x64-8.2.12-0-VS16-installer.exe 。下载后双击运行,安装在 C:\xampp 目录,安装过程略。
安装好以后,打开其控制面板:

可见,XAMPP自带了Apache、MySQL等工具。
顾名思义,XAMPP包含了:
- X (Cross-Platform)
- A (Apache)
- M (MySQL/MariaDB)
- P (PHP)
- P (Perl)
Apache
我没有修改Apache的配置,直接用的默认配置(比如HTTP端口是80,DocumentRoot是 C:/xampp/htdocs 目录)。
若想要修改配置,其配置文件是 C:\xampp\apache\conf\httpd.conf 。
在XAMPP控制面板上可以启动和停止Apache。当启动成功后,Apache会变成绿色:

打开浏览器,访问 http://localhost ,如下:

注:没有指定文件,默认访问的是DocumentRoot(即 C:/xampp/htdocs 目录)下的 index.php 文件。
PHP
XAMPP自带PHP,其位置是 C:\xampp\php\php.exe ,但是没有加到路径里,我们来手工给它加一下路径:

确认路径添加成功:
PS C:\Users\Administrator> php -v
PHP 8.2.12 (cli) (built: Oct 24 2023 21:15:15) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies
with Xdebug v3.4.2, Copyright (c) 2002-2025, by Derick Rethans
(注:从上面的输出结果,可以看到已经配置了Xdebug,如果不想看到Xdebug信息,可以加上 -n 参数,表示不使用配置文件,即 php.ini )
在DocumentRoot(即 C:/xampp/htdocs 目录)下创建 test1.php 文件:
<?php
echo "hello world" . PHP_EOL;
echo "abcdefg" . PHP_EOL;
?>
在浏览器里访问 http://localhost/test1.php ,就可以看到效果了:

注:代码里虽然有换行符,但是在页面上不起作用。
VSCode
在命令行下调试
关于VSCode的插件配置,以及如何在命令行调试PHP代码,参见我另一篇文档 https://blog.csdn.net/duke_ding2/article/details/147281321 。
注:这次我安装的是 PHP Debug 插件。

另外,在 settings.json 配置文件(VSCode自带的 PHP Language Features 插件所需)里,要配置一下PHP的路径:
{
"security.workspace.trust.untrustedFiles": "open",
"editor.fontSize": 17,
"php.validate.executablePath": "C:\\xampp\\php\\php.exe"
}
如果路径不正确,不影响运行调试,但是语法检查功能无效。比如,当出现语法错误时,编辑器里就不会有红色的波浪线提示。
在Web下调试
注意要先把命令行调试搞定,因为需要xdebug支持。
编辑 launch.json 文件,添加/修改如下内容( Listen for Xdebug 部分):
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
},
{
"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}"
}
}
]
}
注:我没有配置 pathMappings 。
编辑 php.ini 文件,添加如下内容:
[xdebug]
zend_extension = "C:\xampp\php\ext\php_xdebug-3.4.2-8.2-ts-vs16-x86_64.dll"
xdebug.mode = debug
xdebug.client_host = "localhost"
xdebug.client_port = 9003
xdebug.start_with_request = yes
注意 zend_extension 需要指向xdebug文件的位置。
重启Apache。
现在就可以调试代码了。在 PHP 代码中设置断点,然后在左侧的调试面板,下拉选中 Listen for Xdebug ,然后点击绿色的运行按钮,启动监听:

打开浏览器,访问 http://localhost/test1.php ,代码就会停在断点处:

如上图所示,就可以单步调试了。

2108

被折叠的 条评论
为什么被折叠?



