2014-02-16 139 views
8

我在Mac OS上使用XAMPP,試圖使用PHPUnit的代碼覆蓋率檢查,這需要XDebug。該xdebug.so文件帶有XAMPP所以我已經啓用Xdebug的是PHP:安裝Xdebug for PHP CLI

// /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 

現在,當我從Web服務器檢查,有來自phpinfo()輸出內的Xdebug的部分。

但是,當我試圖檢查代碼覆蓋率我得到一個錯誤:

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

The Xdebug extension is not loaded. No code coverage will be generated. 

我覺得CLI使用不同php.ini比Apache。爲了找到這php.ini文件CLI是用我這樣做:

$ php -i | grep "php.ini" 
Configuration File (php.ini) Path => /etc 

但沒有/etc/php.ini所以我複製一個過來:

$ sudo cp /Applications/XAMPP/xamppfiles/etc/php.ini /etc/php.ini 

現在我檢查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 
... 

這裏是my php.ini file內容

你能告訴我如何爲PHPUnit和CLI啓用Xdebug嗎?

+0

奇怪的是,最後一個錯誤看起來像一個二進制不兼容,但。 – arkascha

+1

臨時解決方案:我已經將/ usr/bin/php重命名爲/ usr/bin/phpp,然後是'ln -s/Applications/XAMPP/xamppfiles/bin/php/usr/bin/php' – Eray

+0

我從來不明白爲什麼人們使用這些xampp軟件包。我看到這個設置有很多問題,我非常懷疑xampp真的讓事情變得更簡單。看起來好像有一個單一的軟件包可以提供基本Web開發所需的全部功能。但它一次又一次地表明,使用由正常分發資源提供的軟件包會產生較少的問題,因爲它們可以更好地集成到系統中。這就是說我必須指出,這些好處不適用於MS-Windows或MaxOSX用戶,因爲這些系統沒有這種優雅的概念。 – arkascha

回答

1

你有什麼which php輸出?

看起來你使用的是系統級的php而不是XAMPP版本。要使用XAMPP,請將PATH=/Applications/XAMPP/xamppfiles/bin/:PATH添加到您的~/.bashrc