Mac 使用自带php和Apache 安装配置Xdebug 开启本地调试模式

时间:2021-07-26 17:38:40

Mac 安装配置php xdebug

本地调试

0、原理图

https://paper.seebug.org/308/

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

测试demo构建方法

新建空白项目,目录选择Apache默认项目目录

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

1、下载xdebug

https://xdebug.org/files/xdebug-2.9.0.tgz

具体自己的版本要根据的方法得出

2、使用官方检测指导工具

https://xdebug.org/wizard

将phpinfo()打印内容的网页源码复制到框里,点击检测,会得到提示

然后根据提示进行操作

Instructions

  1. Download xdebug-2.9.0.tgz

  2. Install the pre-requisites for compiling PHP extensions. On your Mac, we only support installations with 'homebrew', and brew install php && brew install autoconf should pull in the right packages.

  3. Unpack the downloaded file with tar -xvzf xdebug-2.9.0.tgz

  4. Run: cd xdebug-2.9.0

  5. Run: phpize (See the FAQ if you don't have phpize).

    As part of its output it should show:

     
    Configuring for:
    ...
    Zend Module Api No:      20180731
    Zend Extension Api No:   320180731

    If it does not, you are using the wrong phpize. Please follow this FAQ entry and skip the next step.

  6. Run: ./configure

  7. Run: make

  8. Run: cp modules/xdebug.so /usr/local/lib/php/pecl/20180731

  9. Edit /usr/local/etc/php/7.3/php.ini /usr/local/etc/php/7.3/php.ini and add the line zend_extension = /usr/local/lib/php/pecl/20180731/xdebug.so Make sure that zend_extension = /usr/local/lib/php/pecl/20180731/xdebug.so is below the line for OPcache.

  10. Restart the webserver

sudo apachectl restart

安装路径:/Users/taylor/workSoft/php-debug

3、配置php.ini

vim /usr/local/etc/php/7.3/php.ini

大写G到最后一样,添加配置

 
 
[xdebug]
zend_extension=/usr/local/lib/php/pecl/20180731/xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=1
xdebug.remote_host=localhost
xdebug.remote_port=9050
xdebug.scream=0
xdebug.show_local_vars=1

参数分析:

  1. xdebug.remote_connect_back = 0 ,也是 Xdebug 的默认方式,这种情况下,Xdebug 在收到调试通知时会读取配置 xdebug.remote_host 和 xdebug.remote_port ,默认是 localhost:9000,然后向这个端口发送通知,这种方式只适合单一客户端开发调试

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

  1. 另外一种方式则是不绑定IP,xdebug.remote_connect_back = 1, Xdebug根据请求来源(REMOTE_HOST)来发起调试。示例图如下:

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

  1. remote_connect_back与remote_host,remote_port的关系

    xdebug.remote_connect_back = 1 //如果开启此,将忽略下面的 xdebug.remote_host 的参数,也就是说不会读取phpstorm中xdebug插件dbgp proxy中的参数,任何ip调用调试都会返回调试信息到该IP的remote_port端口中。

  2. remote_host和remote_port

    xdebug.remote_host=192.168.x.x //注意这里是,客户端的ip<即IDE的机器的ip,不是你的web server>xdebug.remote_port = 9001 //注意这里是,客户端的端口<即IDE的机器的ip,不是你的web server>

  3. 最终实验结果是,xdebug.remote_port 任何没被占用的端口都可以

重启php-fpm

sudo killall php-fpm sudo php-fpm

或者 /etc/init.d/php73-fpm reload

再打印phpinfo就可以看到

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

4、配置phpstorm

debug配置

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

servers配置

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

5、php项目运行方式

1.phpstorm ide作为调用者

开启监听后,直接点击小虫子进行运行,浏览器中会自动弹出窗口,地址类似于

http://localhost/helloDebug/hello.php?XDEBUG_SESSION_START=17598

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

自动带了xdebug_session

2.使用xdebug helper插件

单击左键后,点击debug,开启插件

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

然后浏览器中输入想要调试的地址即可 http://localhost/helloDebug/hello.php

效果图

Mac  使用自带php和Apache  安装配置Xdebug  开启本地调试模式

参考:

https://drops.blbana.cc/2019/09/27/PHPStorm%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E4%BB%A5%E5%8F%8A%E5%8E%9F%E7%90%86/

https://www.jianshu.com/p/da179e363318