XAMPP调试PHP代码

环境

  • 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 ,代码就会停在断点处:

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值