我最终尝试安装PEAR,因此我可以轻松安装PHPUnit.我想建立一个Mac,Apache,MySQL,PHP,PHPUnit开发环境,以便我可以在本地进行测试.我已经有Apach,MySQL和PHP工作了.现在我只需要PHPUnit,这意味着我需要PEAR来安装它.
我已经搜遍了所有,并且有关于如何在Mac OS X 10.5上安装PEAR的"教程"的一些变体.但是,我似乎无法让他们中的任何一个工作!有人有这个成功吗?我并不完全相信我已经设置了应有的一切,所以如果您可以包含"默认"Mac OS X 10.5包含路径,或者简单解释一切应该去哪里,我将不胜感激.
按照本教程,我执行以下操作:
curl http://pear.php.net/go-pear > go-pear.php sudo php -q go-pear.php
我按Enter键直到找到包含7个包含路径的列表:
1. Installation prefix ($prefix) : /Users/andrew 2. Temporary files directory : $prefix/temp 3. Binaries directory : $prefix/bin 4. PHP code directory ($php_dir) : $prefix/PEAR 5. Documentation base directory : $php_dir/docs 6. Data base directory : $php_dir/data 7. Tests base directory : $php_dir/tests
我改变Installation prefix
是/usr/local
,按回车键继续,类型Y
也安装PEAR_Frontend_Web-beta, PEAR_Frontend_Gtk2, MDB2
.最终,一切都安装好了.
下一个...
在第一次尝试时,我认为include_path
是从php.ini文件中注释掉的,但由于我已经更改了这一行,这不是我第一次尝试安装,我得到以下消息:
WARNING! The include_path defined in the currently used php.ini does not contain the PEAR PHP directory you just specified: If the specified directory is also not in the include_path used by your scripts, you will have problems getting any PEAR packages working. Would you like to alter php.ini ? [Y/n] :
我输入Y
并让pear自动更新我的包含路径:
php.ini include_path updated. Current include path : .:/usr/share/pear Configured directory : /usr/local/PEAR Currently used php.ini (guess) : /private/etc/php.ini
我按Enter继续,并收到以下消息:
The 'pear' command is now at your service at /usr/local/bin/pear ** The 'pear' command is not currently in your PATH, so you need to ** use '/usr/local/bin/pear' until you have added ** '/usr/local/bin' to your PATH environment variable. Run it without parameters to see the available actions, try 'pear list' to see what packages are installed, or 'pear help' for help. For more information about PEAR, see: http://pear.php.net/faq.php http://pear.php.net/manual/ Thanks for using go-pear! PHP Warning: rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237 Warning: rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237
更新:我想我知道为什么最后两个警告出现了.以前,我尝试通过创建/ tmp的符号链接来修复临时目录问题,但如果我理解正确,PEAR正在尝试创建自己的临时目录进行安装,那么它将在完成后删除它.所以我不应该创建这个符号链接,因为它将在安装完成后尝试删除临时目录.
这里有一些可能出错的事情,这些只是猜测.
首先,您需要担心的是两条包含路径.第一个是PHP包含路径.PEAR库(大多数)只是PHP代码,特别打包.当您安装PEAR模块时,您正在下载该库所需的所有PHP代码,以及您正在安装的库所依赖的任何其他PEAR库(抱歉该句,但我不确定是否有更好的说法那).这包括路径在你的php.ini文件中设置(一个文件用于命令行php,另一个用于yoru web服务器php;通常是相同的文件).
第二个包含您需要担心的路径是您的UNIX/shell包含路径.这是从终端输入命令时计算机将搜索命令的路径.'pear'命令是一个命令行命令.
所以,我们需要确保这一点
您网站的php.ini文件在其包含路径中包含PEAR目录
命令行php应用程序的php.ini文件在其include路径中有PEAR目录
您的shell应用程序(终端,可能是OS X上的BASH)在其包含路径中有PEAR目录
因此,对于数字1,在您的服务器上放置一个包含函数调用的PHP页面
phpinfo();
这将列出有关您的服务器的大量信息.寻找php.ini的位置.在文本编辑器中打开此文件,查找include_path变量,并添加PEAR目录的路径(不要删除其他路径,只需添加您的路径).
对于数字2,从命令行运行以下命令
php -r "phpinfo();" | grep '.ini'
将打印出一堆行,查找读取"Loaded Configuration File"之类的行.在文本编辑器中打开此文件,查找include_path变量,并添加PEAR目录的路径(不要删除其他路径,只需添加您的路径).
最后,这就是我认为你的问题,我们需要确保pear命令行命令在你的shell/bash路径中.这就是这个错误所指的内容
** The 'pear' command is not currently in your PATH, so you need to
您的主目录中应该有一个名为".bash_profile"的文件.这是一个隐藏文件,因此它不会在Finder中显示.用文本编辑器打开它.如果您遇到问题,因为这是一个隐藏文件,请使用命令行pico编辑器.Ctrl-X将从pico中保存
cd ~ pico .bash_profile
每次打开终端窗口时,shell都会执行此文件.我们要将/ usr/local/bin添加到PATH,这意味着当您尝试运行命令时,yoru计算机将在此文件夹中搜索该命令.将以下行添加到.bash_profile的底部
export PATH=/usr/local/bin:$PATH
这或多或少与以下PHP代码等效
$PATH = '/usr/local/bin:'.$PATH
您将/ usr/local/bin添加为查找命令的第一个以冒号分隔的位置,然后将其余的现有路径添加到其中.添加该行后,关闭终端,重新打开,然后键入
pear
这应该给你一个有效的梨命令列表,但更重要的是让你知道梨在你的道路上.
祝好运!