首页 > 代码库 > [转载]为 Windows 下的 PHP 安装 PEAR 和 PHPUnit

[转载]为 Windows 下的 PHP 安装 PEAR 和 PHPUnit

为 Windows 下的 PHP 安装 PEAR 和 PHPUnit

粗略翻译自 Installing PEAR and PHPUnit on WAMP and Windows 7,略有增改。

有需要安装 PHPUnit 来测试脚本,搜索到一篇文章,记录下来。

注意
PHP 5.2 的目录下貌似是有 PEAR 目录的,也有 go-pear.bat,这个你可以自行研究下,看是否可用。
我这里测试的是 PHP 5.4,默认不自带 go-pear.bat,所以,如果你是 5.2 的话,这个教程是否可用我没有验证。

先安装 PEAR

由于 PHPUnit 依赖 PEAR,我们先把 PEAR 安装上。

修改 php.ini

在 Windows 上安装 PEAR 也比较简单,首先我们来设置下 php.ini(一般在 C:Windowsphp.ini,如果是绿色安装,则在你的套件目录下查找即可)中的一个参数:

phar.require_hash = Off

默认是注释掉的,我们把前面的分号去掉,然后将 On 改为 Off。

下载并安装 go-pear.phar

接下来到 http://pear.php.net/go-pear.phar 下载该文件,放到你的 PHP 安装目录,以 D:SERVERPHP 为例。
打开 CMD 命令提示符窗口,输入如下:

cd /D D:SERVERPHP
php go-pear.phar

如不出所料,安装流程应该没有问题,其中的各项参数配置你懂的话就修改,不懂的话就直接回车或 Y 等等操作。

注意
第一步问你是否是安装一个全局的 PEAR 还是本地的(... 不清楚这个怎么翻译合适),推荐输入 local,测试发现仅仅是 pear.ini 的位置不同... 但推荐放在 PHP 目录,而不是 C:Windows 目录。
最后一个步骤是问你是否修改 php.ini 中的 include_path,确认即可。

修改完 php.ini 后,整个安装流程结束,我们重启下 Apache / Nginx。

修改系统环境变量,加入 PEAR 的安装位置

为了让我们每次用的时候不那么蛋疼的敲入 D:SERVERPHPpear ooxx...,而是更优雅的敲入 pear install ...,我们得设置下环境变量。

打开环境变量设置对话框(计算机 - 右键 - 属性 - 高级系统设置 - 环境变量),在系统变量处,找到 PATH 这个项,双击,加入:

;D:SERVERPHP

注意和你的 PHP 安装位置保持一致,然后要和前面的配置有分号分隔。

PATH 修改确定后,点击系统变量处的 新建 按钮,再加一个项,变量名为 PHP_PEAR_PHP_BIN,变量值为 D:SERVERPHPphp.exe,仍然要注意和你的安装位置保持一致。

确认安装无误

打开一个 CMD 窗口,输入:

set %PATH% = ‘.‘

然后关闭 CMD 窗口...
好吧我不是在和你开玩笑,因为 Windows 的环境变量需要重启才能生效,我们这里利用了一个技巧:
当你尝试在 CMD 下修改 %PATH% 后,Windows 在下个回话会重新读取 %PATH%,这样就达到我们更新 %PATH% 的目的了。

现在重新打开一个 CMD 窗口,输入:

pear

看到 PEAR 的帮助信息了么,好,PEAR 安装完成。

等等!

测试发现,你以为安装完成了?其实不然。
当然,如果你不在意 PEAR 把它的安装文件搞得满硬盘都是的话,你可以跳过这个步骤。

经过上面坑爹的配置后,我兴致勃勃的运行了下面一节的命令,结果发现,O Shit,PEAR 面不改色的把它的包安装进了 C:php 目录下。
我不是告诉你安装在我设定的 D:SERVERPHP 目录下了么?嗯?你怎么能这么厚脸皮呢?嗯?

我们来看下 PEAR 的配置,打开 CMD,输入:

pear config-show

于是,你发现,你之前的对 PEAR 多达 12 项的配置基本是徒劳的,丫仍然是默认值...
好吧,一项项的手动改回去:

pear config-set php_dir D:SERVERPHPpear
...

最后,为了让之前安装的包使用新的配置,我们需要强制重新安装一次:

pear upgrade --force

好,终于安装完成了。

安装 PHPUnit

剩下的就简单多了。

打开 CMD,输入以下命令:

pear upgrade pear
pear channel-discover components.ez.no
pear channel-discover pear.phpunit.de
pear channel-discover pear.symfony-project.com
pear install --alldeps phpunit/PHPUnit

等待安装完成,我们输入 phpunit 来验证安装:

PHPUnit 3.6.10 by Sebastian Bergmann.

Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches]

  --log-junit        Log test execution in JUnit XML format to file.
  --log-tap          Log test execution in TAP format to file.
  --log-json         Log test execution in JSON format.

  --coverage-clover  Generate code coverage report in Clover XML format.
  --coverage-html
Generate code coverage report in HTML format. --coverage-php Serialize PHP_CodeCoverage object to file. --coverage-text= Generate code coverage report in text format. Default to writing to the standard output. ...

嗯,可以收工了。