我想将xampp 1.7.7链接到php CLI

Bia*_*aly 2 php xampp pear phpunit ubuntu-11.10

我正在使用ubuntu 11.10作为我的本地机器上的root用户,我安装了xampp 1.7.7并且我是ubuntu的新手,同时遵循sitepoint上的教程(http://www.sitepoint.com/getting-关于如何安装梨以使用PhpUnit,我没有注意到它,但似乎我在CL中安装或使用现有的php版本5.3.6来做到这一点,而且梨安装也建立在这个版本,在安装xampp时,我现在有两个版本的php,xampp的5.3.8和5.3.6,无论如何,我想要做的是使用现有的xampp php版本并在其上构建pear,以使所有我的工作通过xampp.so我的问题是:

  1. 如何卸载php V5.3.6并安装它?
  2. 如何将CL与php ver链接起来.xampp?
  3. 如何在php ver上构建下一个pear安装.xampp?
  4. 我想要我所有的网络开发.通过xampp工作,还有什么我需要unistall,以避免这种混乱?4.

我在attampet做了以下解决问题:

  1. 我用bash写的:

    gedit~/.bashrc

  2. 我添加到〜/ .bashrc文件的末尾以尝试更改环境路径:

    export PATH =/opt/lampp/bin:$ PATH export PATH =/opt/lampp/lib/php:$ PATH export PATH =/opt/lampp/lib/php/PHPUnit/pearcmd.php:$ PATH

  3. 我使用'php -v'和'pear list'检查了php和pear版本,我得到了一个输出:

    PHP 5.3.8(cli)(内建于2011年9月19日13:29:27)版权所有(c)1997-2011 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
Run Code Online (Sandbox Code Playgroud)
  1. 当我运行:'phpunit MessageTest.php':我明白了

    PHP警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第38行/ usr/bin/phpunit中没有此类文件或目录

    警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第38行/ usr/bin/phpunit中没有此类文件或目录PHP致命错误:require_once():无法打开所需的'PHP/CodeCoverage/Filter/usr/bin/phpunit上的.php'(include_path ='.:/ php/includes:/ opt/lampp/lib/php:/ opt/lampp/bin:/ opt/lampp/lib/php/PEAR')第38行

5.i运行以下命令,如其他问题所述,作为该错误的解决方案:

sudo apt-get remove phpunit
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear update-channels
sudo pear upgrade-all
sudo pear install --alldeps phpunit/PHPUnit
sudo apt-get install phpunit
Run Code Online (Sandbox Code Playgroud)

并更新包括php.ini的路径:

include_path = ".:/php/includes:/opt/lampp/lib/php:/opt/lampp/bin:/opt/lampp/lib/php/PEAR"
Run Code Online (Sandbox Code Playgroud)

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);
    }  
  }
?>
Run Code Online (Sandbox Code Playgroud)

MessageController.php中的MessageController类,我正在尝试测试

<?php

  class MessageController { 
    public function actionHelloWorld() {
      echo 'helloWorld';  
    }
    public function repeat($inputString){
      return $inputString;
    }
  }
  $msg = new MessageController;
?>
Run Code Online (Sandbox Code Playgroud)

我没有使用任何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
Run Code Online (Sandbox Code Playgroud)

当然,我在这里要求很高,我浪费了很多时间,对此非常沮丧,希望你们不要厌倦阅读我的问题,我感谢你们的帮助

感谢Mohamad elbialy

Bia*_*aly 7

最后,我得到了关于如何将xampp的php和pear链接到CL(ubuntu的bash shell)的问题的答案,在终端窗口中输入以下内容:

gedit ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

该文件打开,您将以下内容添加到文件末尾:

export PATH=/opt/lampp/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

并确保在终端中键入以下内容:

echo $PATH
Run Code Online (Sandbox Code Playgroud)

您将在回显路径中看到'/ opt/lampp/bin'以及默认情况下添加的其他内容这是在搜索论坛,其他stackoverflow和超级用户问题2-3天后对我有用的唯一方法

要检查CL是否正在处理xampp的php和pear版本,请输入以下内容:

  1. php -v 显示了php的版本
  2. pear list 显示梨的版本以及梨依赖包

现在,我一直这样做是为了让PHPunit在CL工作5天,想象一下挫折,作为Ubuntu的新手,我做了很多sudo而不是sudo命令,错过了我的整个事情,所以我决定做一个ubuntu的全新安装(删除我安装的所有那些pear,php和phpunit软件包并且无法跟踪它们的路径)所以从新的ubuntu 11.10和xampp 1.7.7开始,我做了以下工作让phpunit工作:

  1. 我使用cL为xampp的php和pear建立了链接(我在上面写了上面的内容),在CL中键入以下步骤:
  2. sudo /opt/lampp/bin/pear uninstall phpunit (xampp是1.2.something,我想安装3.6.10)
  3. sudo /opt/lampp/bin/pear list(PHPunit不存在,这是一个检查),PHPunit手册1中建议的以下步骤
  4. sudo /opt/lampp/bin/pear config-set auto_discover 1 (打开下载频道或其他内容)
  5. sudo /opt/lampp/bin/pear install pear.phpunit.de/PHPUnit(这安装版本3.6.10),现在输入CL :( sudo /opt/lampp/bin/phpunit --version这显示3.6.10的版本,是的,你已经做到了)

我使用/ opt/lampp/bin/phpunit,让你看到快速的结果,不,你不需要在工作路径中包含任何东西,你已经完成了,你需要关闭那个终端并打开一个新的并只键入,phpunit --version,你会得到相同的结果,它就在那里,它都是你的

注意:

  1. 我使用'/ opt/lampp/bin/something然后命令',强制我的安装通过xampp的php和pear,这是不需要的(因为你设置环境路径),但这就是你如何做你做的事情花费超过5天的搜索时间.
  2. 我尝试使用phpunit 1.2.something of xampp's,但似乎它不适用于命令行,我不知道为什么而且我不想,所以如果这发生在你身上,你想要ver.1.2.something,找到所有版本,使用此链接(http://pear.phpunit.de/)中的说明并执行相同的步骤来安装它,我没有尝试该链接中的方法,如果你遇到困难,你可以评论这个答案,