我最终尝试安装PEAR,因此我可以轻松安装PHPUnit。我想建立一个Mac,Apache,MySQL,PHP,PHPUnit开发环境,以便我可以在本地进行测试。我已经有Apach,MySQL和PHP工作了。现在我只需要PHPUnit,这意味着我需要PEAR来安装它。
我已经搜遍了所有,并且有关于如何在Mac OS X 10.5上安装PEAR的“教程”的一些变体。但是,我似乎无法让他们中的任何一个工作!有人有这个成功吗?我并不完全相信我已经设置了应有的一切,所以如果您可以包含“默认”Mac OS X 10.5包含路径,或者简单解释一切应该去哪里,我将不胜感激。
在this教程之后,我执行以下操作:
curl http://pear.php.net/go-pear > go-pear.php
sudo php -q go-pear.php
我按回车键直到找到包含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
,按Enter键继续,输入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:
</usr/local/PEAR>
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 </private/etc/php.ini>? [Y/n] :
我输入Y
并让pear自动更新我的包含路径:
php.ini </private/etc/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正在尝试创建自己的临时目录进行安装,那么它将在完成后删除它。所以我不应该创建这个符号链接,因为它会在安装完成后尝试删除临时目录。
答案 0 :(得分:16)
这里有一些可能出错的事情,这些只是猜测。
首先,两个包含您需要担心的路径。第一个是PHP包含路径。 PEAR库(大多数)只是PHP代码,特别打包。当您安装PEAR模块时,您正在下载该库所需的所有PHP代码,以及您正在安装的库所依赖的任何其他PEAR库(抱歉该句,但我不确定是否有更好的说法那)。这包括路径在你的php.ini文件中设置(一个文件用于命令行php,另一个用于yoru web服务器php;通常是相同的文件)。
您需要担心的第二个包含路径是您的UNIX / shell包含路径。这是从终端输入命令时计算机将搜索命令的路径。 'pear'命令是一个命令行命令。
所以,我们需要确保
因此,对于数字1,在您的服务器上放置一个包含函数调用
的PHP页面phpinfo();
这将列出一些有关您的服务器的信息。寻找php.ini的位置。在文本编辑器中打开此文件,查找include_path变量,并添加PEAR目录的路径(不要删除其他路径,只需添加您的路径)。
对于数字2,从命令行运行以下命令
php -r "phpinfo();" | grep '.ini'
将打印出一堆行,查找读取“加载配置文件”之类的行。在文本编辑器中打开此文件,查找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
这应该会给你一个有效的梨命令列表,但更重要的是让你知道梨在你的道路上。
祝你好运!答案 1 :(得分:2)
我明白了。你“必须”在你想要安装pear的地方运行go-pear.php,所以你需要在/ usr / local下运行它,如果你想在/ usr / local / bin下安装pear二进制文件
:-)
答案 2 :(得分:0)
用户“bryan kennedy”(上图)想知道“php.ini”中所需“include_path”更改的语法
(我对OP有类似的问题,我在这篇文章的帮助下解决了这个问题。)
对php.ini的更改看起来像......
include_path=".:/path_to_pear_dir/PEAR"
当你允许“go-pear.php”进行更改时,这就是它的样子....
;***** Added by go-pear
include_path=".:/usr/local/bin/PEAR"
;*****