我最近安装了一个新的M2 MacBook Air,像往常一样,安装了Homebrew,然后又安装了PHP。Homebrew一直是最新的,所以它为我安装了PHP 8.1。
同样,像往常一样,我用pecl install xdebug安装了Xdebug。
在下载和编译xdebug.so的过程中,它呼呼地响了一阵子,然后就失败了。
rob@ardent ~ $ pecl install xdebug
downloading xdebug-3.1.5.tgz ...
Starting to download xdebug-3.1.5.tgz (232,070 bytes)
...
Build process completed successfully
Installing '/opt/homebrew/Cellar/php/8.1.8/pecl/20210902/xdebug.so'
PHP Warning: mkdir(): File exists in /opt/homebrew/Cellar/php/8.1.8/share/php/pear/System.php on line 294
ERROR: failed to mkdir /opt/homebrew/Cellar/php/8.1.8/pecl/20210902
通过调查,我发现/opt/homebrew/Cellar/php/8.1.8/pecl是一个指向/opt/homebrew/lib/php/pecl的符号链接,但是,这个目录并不存在。所以为了解决这个问题,我创建了这个目录并再次安装了Xdebug。
mkdir /opt/homebrew/lib/php/pecl
pecl install xdebug
这一次它成功了。
rob@ardent ~ $ pecl install xdebug
downloading xdebug-3.1.5.tgz ...
Starting to download xdebug-3.1.5.tgz (232,070 bytes)
...
Build process completed successfully
Installing '/opt/homebrew/Cellar/php/8.1.8/pecl/20210902/xdebug.so'
install ok: channel://pecl.php.net/xdebug-3.1.5
Extension xdebug enabled in php.ini
快速测试表明,现在一切都正常了。
rob@ardent ~ $ php -v
PHP 8.1.8 (cli) (built: Jul 8 2022 10:46:35) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.8, Copyright (c) Zend Technologies
with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans
with Zend OPcache v8.1.8, Copyright (c), by Zend Technologies