如何在OSX适配tap弃用,通过Homebrew为PHP 5.6安装Xdebug?
我来帮你搞定这个问题!自从homebrew/php tap被弃用后,确实不能再用原来的php56-xdebug这类公式了,不过我们可以用PECL来安装适配PHP 5.6的Xdebug版本,具体步骤如下:
首先得保证你当前用的是Homebrew安装的php@5.6,先执行以下命令确认版本:
php -v
如果显示的不是PHP 5.6,需要先切换到这个版本——把它的bin目录加入PATH(临时生效可以直接在终端运行,要永久生效就加到你的shell配置文件比如~/.zshrc或~/.bash_profile里):
export PATH="/usr/local/opt/php@5.6/bin:$PATH" export PATH="/usr/local/opt/php@5.6/sbin:$PATH"
再运行php -v确认版本正确。如果之前没link过这个版本,也可以执行:
brew link php@5.6 --force
注意:Xdebug 2.6及以上版本不再支持PHP 5.6,所以我们需要指定安装2.5.5版本(这是支持PHP 5.6的最后一个Xdebug稳定版)。用PECL执行安装:
pecl install xdebug-2.5.5
安装过程中如果提示是否自动添加配置到php.ini,你可以选"yes",不过后面我们还是建议手动配置更稳妥。
Homebrew安装的php@5.6配置文件通常在/usr/local/etc/php/5.6/下,我们在conf.d目录新建一个专门的Xdebug配置文件,避免和其他配置混淆:
touch /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini
用编辑器打开这个文件,添加以下基础调试配置(你可以根据自己的需求调整参数):
zend_extension="xdebug.so" # 开启远程调试功能 xdebug.remote_enable=1 # 自动启动调试会话(无需手动触发) xdebug.remote_autostart=1 # 调试端口(默认9000,有冲突可修改) xdebug.remote_port=9000 # 本地调试主机地址 xdebug.remote_host="localhost"
配置完成后,先验证CLI模式下Xdebug是否加载成功:
php -m | grep xdebug
如果输出xdebug,说明CLI模式没问题。如果是用PHP-FPM运行web服务,需要重启PHP-FPM:
brew services restart php@5.6
之后再访问phpinfo()页面,就能看到Xdebug的完整配置信息了。
- pecl安装时提示找不到phpize:这是因为PATH里没有php@5.6的bin目录,回到步骤1配置好PATH再重新运行安装命令。
- Xdebug在phpinfo里不显示:检查
zend_extension的路径是否正确,有些情况下PECL会自动生成绝对路径(比如zend_extension="/usr/local/opt/php@5.6/lib/php/20131226/xdebug.so"),如果手动写的xdebug.so无效,换成这个绝对路径试试。
内容的提问来源于stack exchange,提问作者Vector

