Mac 使用自带php和Apache 安装配置Xdebug 开启本地调试模式
Mac 安装配置php xdebug
本地调试
0、原理图
测试demo构建方法
新建空白项目,目录选择Apache默认项目目录
1、下载xdebug
https://xdebug.org/files/xdebug-2.9.0.tgz
具体自己的版本要根据??的方法得出
2、使用官方检测指导工具
将phpinfo()打印内容的网页源码复制到框里,点击检测,会得到提示
然后根据提示进行操作
Instructions
Download xdebug-2.9.0.tgz
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.Unpack the downloaded file with
tar -xvzf xdebug-2.9.0.tgz
Run:
cd xdebug-2.9.0
Run:
phpize
(See the FAQ if you don‘t havephpize
).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.Run:
./configure
Run:
make
Run:
cp modules/xdebug.so /usr/local/lib/php/pecl/20180731
Edit
/usr/local/etc/php/7.3/php.ini
/usr/local/etc/php/7.3/php.ini and add the linezend_extension = /usr/local/lib/php/pecl/20180731/xdebug.so
Make sure thatzend_extension = /usr/local/lib/php/pecl/20180731/xdebug.so
is below the line for OPcache.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
参数分析:
- xdebug.remote_connect_back = 0 ,也是 Xdebug 的默认方式,这种情况下,Xdebug 在收到调试通知时会读取配置 xdebug.remote_host 和 xdebug.remote_port ,默认是 localhost:9000,然后向这个端口发送通知,这种方式只适合单一客户端开发调试
- 另外一种方式则是不绑定IP,xdebug.remote_connect_back = 1, Xdebug根据请求来源(REMOTE_HOST)来发起调试。示例图如下:
remote_connect_back与remote_host,remote_port的关系
xdebug.remote_connect_back = 1 //如果开启此,将忽略下面的 xdebug.remote_host 的参数,也就是说不会读取phpstorm中xdebug插件dbgp proxy中的参数,任何ip调用调试都会返回调试信息到该IP的remote_port端口中。
remote_host和remote_port
xdebug.remote_host=192.168.x.x //注意这里是,客户端的ip<即IDE的机器的ip,不是你的web server>xdebug.remote_port = 9001 //注意这里是,客户端的端口<即IDE的机器的ip,不是你的web server>
最终实验结果是,xdebug.remote_port 任何没被占用的端口都可以
重启php-fpm
sudo killall php-fpm sudo php-fpm
或者 /etc/init.d/php73-fpm reload
再打印phpinfo就可以看到
4、配置phpstorm
debug配置
servers配置
5、php项目运行方式
1.phpstorm ide作为调用者
开启监听后,直接点击小虫子进行运行,浏览器中会自动弹出窗口,地址类似于
http://localhost/helloDebug/hello.php?XDEBUG_SESSION_START=17598
自动带了xdebug_session
2.使用xdebug helper插件
单击左键后,点击debug,开启插件
然后浏览器中输入想要调试的地址即可 http://localhost/helloDebug/hello.php
效果图
参考: