一、影响因素
1、PHP版本与Xdebug版本是否兼容
2、配置改版,php.ini中字段是否是对的
3、命令行PHP编译版本是否正确
4、php.ini文件是否配置正确
我的环境:
PHP-命令行:7.4
集成环境:MAMP pro
集成环境跑业务的PHP:7.2.8
Xdebug:3.0.3、2.6.1 都试了
正常流程
1、进入 Xdebug 官网自动识别需要的版本:
一般会给出以下答案:
但出于命令行的PHP版本可能会存在不一致,大家可以用
php -v
来查询命令行是啥版本,为了避免有差错,建议用业务版本php去运行 phpize、configure
以下是示例:
1、解压
tar -xf xdebug-2.7.2.tgz
2、切换到下级目录
cd xdebug-2.7.2
3、phpize
/Applications/MAMP/bin/php/php7.2.8/bin/phpize
4、configure
./configure --enable-xdebug --with-php-config=/Applications/MAMP/bin/php/php7.2.8/bin/php-config
5、编译
make
6、安装 - 这一步会向php扩展目录copy进xdebug.so
make install
7、配置php.ini
Xdebug 3.0之后做了配置项的名称变更,很多remote变味了client,示例如下可成功:
[Xdebug]
MAMP_Xdebug_MAMPzend_extension=/Applications/MAMP/bin/php/php7.2.8/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.mode=debug
xdebug.client_host=localhost
xdebug.client_port=9000
xdebug.start_with_request=yes
xdebug.idekey=PHPSTORM
Xdebug 3.0之前,示例如下可成功:
[xdebug]
MAMP_Xdebug_MAMPzend_extension="/Applications/MAMP/bin/php/php7.2.8/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_autostart=1
xdebug.idekey = PHPSTORM
2、检查扩展是否安装成功?
可以用
/Applications/MAMP/bin/php/php7.2.8/bin/php -m
来查询是否安装成功,当然phpinfo()
也可以
3、配置IDE
和配置的端口保持一致即可,勾选项如上所示
二、一些辅助工具
1、如何找到各个版本的Xdebug手动下载?
https://xdebug.org/download/historical
2、查看PHP兼容的Xdebug版本?
https://xdebug.org/docs/compat#versions
3、Mamp修改了配置无效,或者会自动恢复?
有保护机制,需要通过软件自带编辑去修改,找到菜单栏
File->Edit Template->php->【你的版本】
4、其他奇葩问题?
如果以上配置全都没问题,还是不行?可以试试在phpstorm点一下小蜘蛛进入调试一次,可能就是行了!!我这次就是这样的!很日怪