相信技术的力量

PHP-Xdebug远程调试配置

安装Xdebug

可以直接参考:

https://www.cnblogs.com/LWMLWM/p/8251905.html

Xdebug的版本必须跟安装的PHP版本匹配,在http://www.xdebug.org/find-binary.php 页面,将phpinfo()页面的源代码直接粘贴进框内,点击下方的Analyse my phpinfo() outpu按钮,会自动展示下载和安装指导

输出示例,由于自己已经安装了Xdebug,所以会提示已安装了最新版,重点是下方的安装指导。

Windows

You're already running the latest Xdebug version

But here are the instructions anyway:

1.Download php_xdebug-2.6.0-7.2-vc15-x86_64.dll
2.Move the downloaded file to D:\Dev\PHP7\ext
3.Update D:\Dev\PHP7\php.ini and change the line
zend_extension = D:\Dev\PHP7\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll
4.Restart the webserver

翻译:

  1. 下载指定版本的php_xdebug
  2. 将下载的文件挪到D:\Dev\PHP7\ext目录下(根据自己的phpinfo()输出不同,这里的目录页不同)
  3. 更新D:\Dev\PHP7\php.ini文件,添加擴展zend_extension = D:\Dev\PHP7\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll
  4. 重启Web服务器

MacOS-MAMP

按照指导正常下载,解压,进目录,然后 (注意:php7.2.1随自己的版本而变化)

/Applications/MAMP/bin/php/php7.2.10/bin/phpize
./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.10/bin/php-config
make
make test

把modules下生成的xdebug.so复制到/Applications/MAMP/bin/php/php7.2.10/lib/php/extensions/no-debug-non-zts-20170718

编辑MAMP配置文件,添加xdebug.so

重启Web服务器,比如Apache

踩坑记录

phpsize的使用

一开始是尝试使用brew安装的xdebug,各种brew search php-xdebug brew search php72-xdebug ,然后安装,都不行。后来在brew官网看到2018年3月的更新公告,大概意思是这个模块已经关闭了。

于是开始尝试编译安装,结果一直提示

CrocutaxdeMacBook-Pro:xdebug-2.6.1 crocutax$ phpsize
-bash: phpsize: command not found

后来通过phpize --help查找phpsize的全路径

CrocutaxdeMacBook-Pro:xdebug-2.6.1 crocutax$ phpize --help
Usage: /usr/local/bin/phpize [--clean|--help|--version|-v]

然后直接使用全路径运行phpsize,成功出现官网给出的提示。

CrocutaxdeMacBook-Pro:xdebug-2.6.1 crocutax$ /usr/local/bin/phpize
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

之后就愉快的往下进行就可以了。

注意

如果是使用MAMP集成工具, 那么需要使用集成工具的`phpsize`命令, 比如`/Applications/MAMP/bin/php/php7.2.10/bin/phpize`

make时找不到php.h文件

安装xdebug时, phpsize./configure 完毕之后, 在make 环节出现异常

/xxxxxxxxxxx/xdebug-2.7.2/xdebug.c:25:10: fatal error: 'php.h'
            file not found
#include "php.h"
                 ^~~~~~~
1 error generated.
make: *** [xdebug.lo] Error 1

原因: Mojaves没有安装标头,要安装标头

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

安装完毕, 继续make, 一切正常了 .

参考

https://cloud.tencent.com/developer/ask/211033

要单独添加zend_extension

extension_dir = "/usr/local/lib/php/pecl/20170718"
zend_extension = "/usr/local/lib/php/pecl/20170718/xdebug.so"

配置xdebug参数

自己按照官方指引,只配置了扩展,没有配置其他xdebug参数,导致最终配置完毕后不生效。开发环境下使用的配置如下:

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

zend_extension = D:\Dev\PHP7\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll
xdebug.remote_enable = On  
xdebug.remote_handler = dbgp     
xdebug.remote_host= localhost  
xdebug.remote_port = 9000  
xdebug.idekey = "PHPSTORM"  

检测Xdebug是否安装成功,刷新phpinfo页面,看到Xdebug的扩展信息即为配置成功。

PHPStorm配置

由于涉及到大量图片展示,因此只记录需要配置的地方

  1. File->Settings->Languages&Frameworks->Servers
  2. File->Settings->Languages&Frameworks->Debug
  3. File->Settings->Languages&Frameworks->Debug->DBGp Proxy
  4. Edit Configurations->添加PHP Web Page->配置Server和Start URL(项目路径)
  5. 小话筒开启监听
  6. 开启Debug小虫子(会使用默认浏览器打开刚才配置的Start URL页面)
  7. 打断点,可以调试了

之后可以进行本地开发调试。

远程调试配置

todo

⬆️