前段时间项目中有写点PHP页面的需求,架设了一个PHP的运行环境,参见博文:Windows下使用Apache2.4架设PHP服务器。如何调试PHP,一直是一件麻烦事,以前还有研究过一下使用Zend Studio 5.5来调试,但是后面的版本是与Eclipse集成了,感觉不好用,也一直没再研究过,直到前段时间有用到PHP,才再思考如何调试PHP。
VSCode的出现像一匹黑马一样,击败其它编辑器,成为程序员的编程利器。下面就以Windows平台为例,介绍一下如何在VSCode中配置PHP的调试开发环境。
参见博文:Windows下使用Apache2.4架设PHP服务器
在扩展商店中输入php可以看到PHP Debug插件,安装它。
然后可以看到插件中的安装配置说明:
打开https://xdebug.org/download的下载页面,根据安装的PHP版本情况下载相应的DLL,由于笔者使用的是PHP8.0 VS16 X64版本,所以下载下图所示的线程安全版本。
如果搞不清楚应该下载哪个版本的DLL,也可以使用说明中的推荐方法:
新建一个简单的php文件,可以命名为test.php,其内容如下:
phpinfo()
?>
然后在浏览器URL中输入:
http://127.0.0.1/test.php
如果Web服务器的监听端口不是80端口,则需要明确端口,笔者的端口是81,输入:
http://127.0.0.1:81/test.php
然后把所有信息复制下来,Ctrl+A、Ctrl+C
然后打开XDebug的安装向导https://xdebug.org/wizard,
向导会给出相应的提示以及XDebug的下载链接。
下载好XDebug后,根据前面向导的提示把下载的Xdebug文件放到指定目录,注意XDebug是PHP的插件,所以是需要放到指定的插件目录中,默认情况下,PHP的所有插件都位于PHP安装目录下的ext目录中。可以参见php.ini中的配置,Windows中按下图所示,填写:
extension_dir = "../php/ext"
然后在php.ini中添加一行配置来指定zend_extension:
zend_extension = php_xdebug-3.0.4-8.0-vs16-x86_64.dll
需要注意的是由于php.ini中已经设置了extension_dir来指定PHP扩展的目录,zend_extension就需要以extension_dir指定的目录作为相对路径来填写,这点不能使用前面向导中给定的配置,否则会找不到插件。
Xdebug v3.x.x需要在php.ini中加如下配置:
xdebug.mode = debug
xdebug.start_with_request = yes
Xdebug v2.x.x使用如下配置:
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9003
在settings.json中指定PHP的绝对路径:
"php.validate.executablePath": "D:\\httpd-2.4.48-Win64\\php\\php.exe",
还是使用之前的test.php文件,在phpinfo()这行打一个断点,然后切换到“运行和调试”页面,执行“创建launch.json",如后图所示。
此时按F5进入调试模式,在浏览器中打开页面:
http://127.0.0.1:81/test.php