在MAMP上安装PEAR

22

我正在使用MAMP进行开发。我从未能够让PEAR正常工作。MAMP文档和论坛似乎没有答案。在MAMP论坛上提问的人似乎都没有得到回复。

以前,我在MAMP上开发系统,只使用PEAR发送邮件,所以我只在服务器上使其成功运行过一次,而不是在MAMP上。现在我想更多地使用PEAR。

有没有人能给我个白痴式的入门指南。我可以访问终端并输入命令行,但是我真的不理解发生了什么,所以当事情停止或引发错误时,我必须要问更多的问题。我已经尝试了网上找到的各种方法,但是到目前为止还没成功。

MAMP版本为1.9.5,Mac OS 10.6.7


对于任何想在MAMP 2+上安装pear的人,请参考以下链接:https://bigdiver.wordpress.com/2011/11/10/mamp-2-0-pear-and-phpunit-installation/ - Aram Kocharyan
MAMP 1.x.x和MAMP 2.x.x的说明可以在我下面的答案中找到。https://dev59.com/7W035IYBdhLWcg3wSN-r#8178097 - zechdc
3个回答

51

@Marcelo Rodrigo的回答非常好!我很高兴他包含了他的来源。通过跟踪他的来源,我找到了以下信息。


在MAMP上安装PEAR

为了让PEAR与MAMP配合使用,请运行以下命令。注意有MAMP v1.x.x和新版本的命令。找出您正在运行的版本。还要注意PHP版本不同。确保下面的命令中的版本是您实际使用的版本。MAMP允许您更改版本。您可以通过打开MAMP>服务器>PHP来检查。

注意:

这对一些人来说可能很明显,但是你应该先停止MAMP。否则,您可能会遇到一些奇怪的错误。

1)更改目录权限以便您可以在其中执行文件:

MAMP v2.x.x

chmod 774 /Applications/MAMP/bin/php/php5.4.4/bin/pear
chmod 774 /Applications/MAMP/bin/php/php5.4.4/bin/php

MAMP v1.x.x

chmod 774 /Applications/MAMP/bin/php5.3/bin/pear
chmod 774 /Applications/MAMP/bin/php5.3/bin/php

2) 设置别名以避免输入整个路径。

每次访问pear时,您都需要键入“/Applications/MAMP/bin/php5.3/bin/pear”。键入“pear”会引用已安装在您的Mac上的内容,而不是MAMP的安装内容。 (这仅适用于当前会话。要进行永久别名,请将以下命令放置在~/.bash_profile文件中。 这里有一个关于如何做到这一点的教程。

MAMP v2.x.x

alias mpear="/Applications/MAMP/bin/php/php5.4.4/bin/pear"

MAMP v1.x.x

alias mpear="/Applications/MAMP/bin/php5.3/bin/pear"

3) 将php5和php5.3文件夹之间建立链接(对于MAMP v2.x.x不需要):

Pear会因为同时安装在php5.3和php5目录中而混淆其版本。

当您升级Pear时,它将创建一个新的/Application/MAMP/bin/php5目录,并在php5.3和php5文件夹之间分散文件。使用以下代码将两个文件夹链接起来,使它们像一个文件夹一样运作。有关“ln”命令的更多信息。来源:@Marcelo Rodrigo's post

ln -s php5.3 php5

4) 检查pear是否正常工作:

mpear -V

5) 现在升级pear:

mpear channel-update pear.php.net
mpear upgrade pear

6) 再次检查以确认pear是否已经成功升级

mpear -V

安装 PHPUnit

你不需要安装 PHPUnit。如果 mpear -V 命令可以正常工作,那么你已经成功在 MAMP 上安装了 PEAR。在我的开发环境中,我需要 PHPUnit 进行单元测试,因此我想提供一个教程来安装 PHPUnit。只有当你需要 PHPUnit 时才进行以下操作。如果你不知道它是什么,那么你就不需要它。

运行以下命令:

1) 安装 PHPUnit:

注意:下面的命令中,我使用的是别名 "mpear",这实际上是我在步骤2中设置的。你也可以直接使用 "/Applications/MAMP/bin/php5.3/bin/pear"。

mpear config-set auto_discover 1
mpear install pear.phpunit.de/PHPUnit

来源:http://www.phpunit.de/manual/current/en/installation.html

2)允许MAMP使用PHPUnit

将MAMP的phpunit安装与默认的phpunit位置链接起来。(在Mountain Lion上无效,而应参考步骤2a)

sudo ln -s /Applications/MAMP/bin/php5/bin/phpunit /usr/local/bin/phpunit

**2a) 仅适用于Mountain Lion - 在MAMP的php.ini和/etc目录下的php.ini之间创建符号链接

sudo ln -s /Applications/MAMP/bin/php/php5.4.4/conf/php.ini /etc/php.ini

如果显示文件已存在,请备份 /etc/php.ini 并将其删除。
3) 确保它能正常工作。
phpunit --version

关于安装phpunit的详细信息,请查看以下链接:


来源:


1
这非常有帮助,尽管我发现我还需要运行'/Applications/MAMP/bin/php/php5.4.10/bin/pear channel-discover pear.symfony.com'才能使事情成功完成。我看到的其他文档只让我添加了pear.phpunit.de频道和pear.symfony-project.com,而添加pear.symfony.com才使得这个过程可以完成。谢谢。 - DaOgre

7

如果你只想让phpunit工作,可以在全新的MAMP 1.9.5上使用以下命令:

cd /Applications/MAMP/bin
ln -s php5.3 php5
php5/bin/pear channel-discover pear.phpunit.de
php5/bin/pear channel-discover components.ez.no
php5/bin/pear channel-discover pear.symfony-project.com
php5/bin/pear channel-update pear.php.net
php5/bin/pear upgrade pear
php5/bin/pear install phpunit/PHPUnit
ln -s /Applications/MAMP/bin/php5/bin/phpunit /usr/local/bin/phpunit
phpunit --version

完成。

以上代码解决了以下问题:

Bug 1: pear 的版本会混淆,因为它同时安装在 php5.3 和 php5 目录中

Pear 更新、升级和安装都从 /Applications/MAMP/bin/php5.3/pear 进行,但它会创建一个新的 /Application/MAMP/bin/php5 目录,并将文件分散在 php5.3 和新的 php5 目录之间,对版本产生很大混淆。

修复方法: ln -s php5.3 php5

我认为,如果您使用的是 PHP 5.2,则使用 ln -s php5.2 php5 同样有效,但我没有测试过。

问题 2: pear 已经过时

这是 MAMP 团队可以理解的,问题实际上是由于 Bug 1 导致难以升级。

来源:http://forum.mamp.info/viewtopic.php?f=6&t=11102


6

我最近发现以下链接可以正确设置我的运行MAMP 2.1.1:

PEAR Version: 1.9.4
PHP Version: 5.4.4
Zend Engine Version: 2.4.0

尝试:

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set auto_discover 1
sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear install pear.phpunit.de/PHPUnit

为了使其在命令行中随处可用,您需要在本地 bin 中创建到 phpunit 的软链接。
sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/phpunit /usr/local/bin/phpunit

现在尝试一下:
 phpunit --version
  1. 确认它能正常工作,请从此处尝试:/Applications/MAMP/bin/php/php5.4.4/bin/
  2. 确认符号链接是否有效。请在其他地方尝试,如~//

如果两者都有效,则可以开始编码。

来源/来源:加拿大温哥华UBC的Enej Bajgoric Web Developer,在http://blogs.ubc.ca/enej/2012/10/01/installing-phpunit-on-mamps/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接