laravel 使用php 8在Mac OS上安装xdebug时出错

kxkpmulp  于 2023-02-05  发布在  PHP
关注(0)|答案(4)|浏览(179)

我只是想先为我的项目做phpunit --coverage,我得到了这个错误:

PHPUnit 9.5.0 by Sebastian Bergmann and contributors.

Warning:       No code coverage driver available

我只是检查我的php,以确保我有xdebug通过php -v

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies

似乎我没有它,然后我只是通过pecl install xdebug Homebrew安装它,我在安装结束时得到了这个错误:

........

Build process completed successfully
Installing '/usr/local/Cellar/php/8.0.0_1/pecl/20200930/xdebug.so'

Warning: mkdir(): File exists in System.php on line 294

Warning: mkdir(): File exists in /usr/local/Cellar/php/8.0.0_1/share/php/pear/System.php on line 294
ERROR: failed to mkdir /usr/local/Cellar/php/8.0.0_1/pecl/20200930
ffdz8vbo

ffdz8vbo1#

您可以通过检查/usr/local/Cellar/php/8.0.0_1文件夹中运行的内容来逐步调试此问题

$ cd /usr/local/Cellar/php/8.0.0_1
$ la -la

我倾向于说已经存在一个pecl符号链接,这就是为什么pecl不能在那里创建文件夹。
然后,您应该通过运行which pecl来检查pecl安装在哪里,理想情况下,which pecl会提供/usr/local/bin/pecl,它应该指向/usr/local/Cellar/php/8.0.0_1/bin/pecl的某个位置。
如果是这种情况,您可以使用以下命令删除/usr/local/Cellar/php/8.0.0_1/pecl符号链接

$ rm /usr/local/Cellar/php/8.0.0_1/pecl

并尝试重新安装xdebug。

正在修复image not found问题

这是由于xdebug安装过程中的配置不正确。
首先,通过运行Delhi php --ini Delhi检查php.ini文件的路径。然后打开文件并检查第一行是否加载了xdebug扩展。如果加载了xdebug扩展,请将其删除。然后在conf.d文件夹中添加一个文件xdebug.ini,并将以下内容添加到您创建的文件中:

;XDebug
zend_extension="/usr/local/Cellar/php/8.0.0/pecl/CHANGEME/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_port=9000
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp"

请检查www.example.com文件的路径是否正确xdebug.so,以及输出目录是否存在。

d8tt03nd

d8tt03nd2#

我只是删除了符号链接rm /opt/homebrew/Cellar/php/8.0.8_1,然后重新安装了mongodb sudo pecl install mongodb

但是我仍然在加载mongodb.so时收到PHP警告,所以我编辑了php.ini文件,如下所示:

extension="/opt/homebrew/Cellar/php/8.0.8_1/pecl/20200930/mongodb.so"
yacmzcpb

yacmzcpb3#

构建在@codedge上,您可以添加答案,以便能够在xdebug.ini文件的laravel xdebug.mode=coverage中使用它

toe95027

toe950274#

对答案https://stackoverflow.com/a/65836657/4568085的更新
“xdebug.ini”文件选项已更新,现在建议的设置为

;XDebug
zend_extension="/opt/homebrew/Cellar/php/8.1.9/pecl/20210902/xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
;xdebug.mode=profile
xdebug.output_dir="/tmp"

旧选项在PHP中触发警告,如下所示

相关问题