安装Xdebug for PHP CLI

Era*_*ray 9 php phpunit code-coverage xdebug

我在Mac OS上使用XAMPP,尝试使用PHPUnit的代码覆盖检查,这需要XDebug.xdebug.so文件附带XAMPP所以我已经为PHP启用了Xdebug:

// /Applications/XAMPP/xamppfiles/etc/php.ini
[xdebug]
zend_extension="/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.remote_enable=1
Run Code Online (Sandbox Code Playgroud)

现在,当我从Web服务器检查时,输出中有一个Xdebug部分phpinfo().

但是当我试图检查代码覆盖时,我收到一个错误:

$ phpunit --coverage-html report
PHPUnit 3.7.31 by Sebastian Bergmann.

The Xdebug extension is not loaded. No code coverage will be generated.
Run Code Online (Sandbox Code Playgroud)

我认为CLI使用的不同于php.iniApache.要查找php.iniCLI使用的文件,我执行了以下操作:

$ php -i | grep "php.ini"
Configuration File (php.ini) Path => /etc
Run Code Online (Sandbox Code Playgroud)

但是没有,/etc/php.ini所以我复制了一个:

$ sudo cp /Applications/XAMPP/xamppfiles/etc/php.ini /etc/php.ini
Run Code Online (Sandbox Code Playgroud)

现在我正在检查php -m模块,但没有Xdebug,我收到此错误:

$ php -m
Failed loading /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so:  dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so, 9): Symbol not found: _zend_execute_ex
  Referenced from: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
  Expected in: flat namespace
 in /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
[PHP Modules]
bcmath
bz2
...
Run Code Online (Sandbox Code Playgroud)

这是我的php.ini文件的内容(检查最后一行.)

你能告诉我如何为PHPUnit和CLI启用Xdebug吗?

小智 1

你有什么which php输出?

看起来您正在使用系统范围的 php 而不是 XAMPP 版本。要使用 XAMPP,请添加PATH=/Applications/XAMPP/xamppfiles/bin/:PATH到您的~/.bashrc.