我在本地机器上使用 Ubuntu 11.10 作为 root 权限,安装了 xampp 1.7.7 和
在学习站点点关于如何安装 pear 以使用 PhpUnit,我当时没有注意到,但似乎我在 CL 中安装或使用了现有的 php 版本 5.3.6 来执行此操作,而且 pear 安装是基于这个版本构建的,在安装 xampp 时,我现在有两个版本的 php,xampp 的 5.3.8 和 5.3.6,无论如何,我想要做的是使用现有的 xampp php 版本并在其上构建 pear,以便通过 xampp 完成我所有的工作。所以我的问题是:
- 如何卸载 php V5.3.6 及其 pear 安装?
- 如何将CL与xampp的php版本关联起来?
- 如何在 xampp 的 php 版本上构建下一个 pear 安装?
- 我希望所有 Web 开发工作都通过 xampp 进行,是否还需要卸载其他程序以避免这种混乱?4.
我在 attampet 中做了以下操作来解决这个问题:
我在 bash 中写了这个:
gedit ~/.bashrc
我将其添加到文件末尾
~/.bashrc
以尝试更改环境路径:导出 PATH=/opt/lampp/bin:$PATH 导出 PATH=/opt/lampp/lib/php:$PATH 导出 PATH=/opt/lampp/lib/php/PHPUnit/pearcmd.php:$PATH
我使用“php -v”和“pear list”检查了 php 和 pear 版本。我得到的输出如下:
PHP 5.3.8 (cli)(构建于:2011 年 9 月 19 日 13:29:27)版权所有 (c) 1997-2011 The PHP Group Zend Engine v2.3.0,版权所有 (c) 1998-2011 Zend Technologies
对于梨来说:
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.9 stable
Console_Getopt 1.3.1 stable
PEAR 1.9.4 stable
PHPUnit 1.3.2 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable
当我运行时:'phpunit messagetest.php':我得到
PHP 警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第 38 行 /usr/bin/phpunit 中没有该文件或目录
警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:/usr/bin/phpunit 第 38 行中没有该文件或目录 PHP 致命错误:require_once():无法打开所需的‘PHP/CodeCoverage/Filter.php’(include_path=‘.:/php/includes:/opt/lampp/lib/php:/opt/lampp/bin:/opt/lampp/lib/php/PEAR’)在/usr/bin/phpunit 第 38 行
我按照其他问题中的报告运行了以下命令来解决该错误:
sudo apt-get 删除 phpunit sudo pear 通道发现 pear.phpunit.de sudo pear 通道发现 pear.symfony-project.com sudo pear 通道发现 components.ez.no sudo pear 更新通道 sudo pear 升级所有 sudo pear 安装 --alldeps phpunit/PHPUnit sudo apt-get 安装 phpunit
并将 php.ini 的包含路径更新为:
include_path = ".:/php/includes:/opt/lampp/lib/php:/opt/lampp/bin:/opt/lampp/lib/php/PEAR"
php文件MessageTest.php:
<?php
require 'PHPUnit/Autoload.php';
$path = '/opt/lampp/lib/php/PEAR';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'PHPUnit/Framework/TestCase.php';
require_once 'Message/Controller/MessageController.php';
class MessageTest extends PHPUnit_Framework_TestCase{
private $message;
public function setUp() {
$this->message = new MessageController();
}
public function tearDown() {
}
public function testRepeat(){
$yell = "Hello, Any One Out There?";
$this->message->repeat($yell); //sending a request
$returnedMessage = $this->message->repeat($yell);//get a response
$this->assertEquals($returnedMessage, $yell);
}
}
?>
我正在尝试测试的 MessageController.php 中的 MessageController 类
<?php
class MessageController {
public function actionHelloWorld() {
echo 'helloWorld';
}
public function repeat($inputString){
return $inputString;
}
}
$msg = new MessageController;
?>
我没有使用任何 PHP 框架,我只是让文件和类听起来像它一样,仅此而已。
但我仍然遇到同样的错误:
PHP Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line
Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line 38
PHP Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='.:/php/includes:/opt/lampp/lib/php:/opt/lampp/bin:/opt/lampp/lib/php/PEAR') in /usr/bin/phpunit on line 38
当然,我在这里要求很高,我浪费了很多时间,对此感到非常沮丧,希望你们不会厌倦阅读我的问题,我很感谢你们的帮助