系統中有兩個version的PHP存在,導致phpunit測試出現問題的解決方案,versionphpunit
今天要搭建原生LAMP開發環境,因系統內建的php版本是5.5.14,但開發要使用的是php 5.6以上,因此安裝了php 5.6.7。這樣導致了系統中有兩個版本的php存在。
正常開發是沒有問題的,但如果使用了phpunit,phpunit會調用系統內建的php 5.5.14來執行。而我安裝的php擴充(例如memcache,redis等)都是安裝在php 5.6.7的那個版本上。
使用phpunit做單元測試時,會提示擴充沒有安裝的情況。(例如memcache function not found)。
phpunit 調用的php是/usr/bin/php,因此把這個位置的php指向現在使用的php5.6.7版本即可解決問題。
解決方案如下:
1.查看當前使用的php版本
php -vPHP 5.6.7 (cli) (built: Apr 20 2015 23:10:47) (DEBUG)Copyright (c) 1997-2015 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies with Xdebug v2.3.2, Copyright (c) 2002-2015, by Derick Rethans
2.查看/usr/bin/php的版本
/usr/bin/php -vPHP 5.5.14 (cli) (built: Sep 9 2014 19:09:25) Copyright (c) 1997-2014 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
3.把/usr/bin/php的版本備份,當有問題時可以恢複
sudo cp /usr/bin/php /usr/bin/php55
4.把/usr/bin/php刪除
sudo rm /usr/bin/php
5.建立/usr/bin/php softlink 指向php5.6.7的php
sudo ln -s /usr/local/Cellar/php56/5.6.7/bin/php /usr/bin/php
6.檢查/usr/bin/php 是否已更新
/usr/bin/php -vPHP 5.6.7 (cli) (built: Apr 20 2015 23:10:47) (DEBUG)Copyright (c) 1997-2015 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies with Xdebug v2.3.2, Copyright (c) 2002-2015, by Derick Rethans
執行後,問題解決。