如何覆盖PHP的path使用MAMPpath?

搞砸完全我的PHPconfiguration在MAC试图让SOAP模块工作(-bash:/ usr / bin / php:没有这样的文件或目录….)我现在必须使用MAMP,但每次我必须键入path

Applications/MAMP/bin/php5.3/bin/php to do command line. 

如何只键入PHP而不是MAC上的整个path? 我加倍检查,我没有一个名为.profilebash_profile的文件

谢谢

PS:这是什么输出回声$path:

 echo $PATH /Applications/MAMP/Library/bin/:/Applications/MAMP/bin/php5/bin/:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin 

以前接受的答案指的是php 5.3.6,而当前版本的MAMP默认使用5.6.2(截至2015-05-01),指出这不是一个非常可持续的解决scheme。 您可以通过在.bash_profile添加一行来从/Applications/MAMP/bin/php/获取最新版本的PHP并将其导出到您的path,从而自动更新path。 以下是我如何做到这一点:

 # Use MAMP version of PHP PHP_VERSION=`ls /Applications/MAMP/bin/php/ | sort -n | tail -1` export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH 

(进行更改后使用source ~/.bash_profile ,以确保其生效。)

正如其他人所提到的,您可能还想修改shell以使用位于/Applications/MAMP/Library/bin MAMP的mysql可执行文件。 但是,我build议导出该文件夹,因为那里有一堆其他的可执行文件,比如libtool ,你可能不希望在你的系统安装版本上给予优先权。 这个问题阻止了我最近安装一个节点包(libxmljs),如这里所述 。

我的解决scheme是定义和导出mysqlmysqladmin作为函数:

 # Export MAMP MySQL executables as functions # Makes them usable from within shell scripts (unlike an alias) mysql() { /Applications/MAMP/Library/bin/mysql "$@" } mysqladmin() { /Applications/MAMP/Library/bin/mysqladmin "$@" } export -f mysql export -f mysqladmin 

我使用函数而不是别名,因为别名不会传递给subprocess,或者至less不在shell脚本的上下文中传递。 我发现唯一的缺点是运行which mysqlwhich mysqladmin将不再返回任何东西,这是一个无赖。 如果你想查看哪个mysql正在使用,并确保一切都是同步的,请改用mysql --version

注意:@ julianromera指出zsh不支持导出函数,所以在这种情况下,最好使用别名,如alias mysql='/Applications/MAMP/Library/bin/mysql' 。 请注意,您的别名可能无法从子shell中获得(如执行shell脚本时)。

在您的主文件夹/Users/David中,可以创build.bash_profile 。 在这里你可以导出variables,然后将它们添加到你的path。

用你最喜欢的编辑器打开文件进行编辑,我使用vim。

然后你可以添加你的path

 export MAMP_PHP=/Applications/MAMP/bin/php/php5.3.6/bin export PATH="$MAMP_PHP:$PATH" 

您希望您的$PATH之前的位已经包含/usr/bin ,这是系统PHP所在的位置。 所以系统总是会首先find你的MAMP版本。

保存这个文件,然后重新启动你的terminal,你会看到你应该得到你的MAMP版本。

为了testing我使用php -v因为OSX Lion使用5.3.10,我的MAMP使用的是5.3.6
您也可以testing使用which php将输出path到您当前的PHP可执行文件。

我发现,在小牛10.8没有一个.bash_profile和我的path位于/ etc /path

为了有新的path(不pipe这是一个mamp还是brew的brew安装)生效,它需要在这个path文件中默认的/ usr / bin / php之上。 例如。

 /Applications/MAMP/bin/php/php5.3.6/bin /usr/bin 

在更改之后,打开一个新的terminal窗口并运行现在应该指向更新path的“哪个php”

你可能仍然遇到mysql二进制文件没有find那种方式

 open terminal, type touch ~/.bash_profile; open ~/.bash_profile 

编辑如下,保存,然后重新启动terminal或交替

 source ~/.bash_profile 

在不重新启动terminal的情况下执行新的PATH

并以DavidYell的post的方式,还添加以下内容。 您可以通过导出它们,然后单个PATH导出来堆叠各种variables,我将在下面进行演示

 export MAMP_PHP=/Applications/MAMP/bin/php/php5.6.2/bin export MAMP_BINS=/Applications/MAMP/Library/bin export USERBINS=~/bins export PATH="$USERBINS:$MAMP_PHP:$MAMP_BINS:$PATH" 

干杯

如果你必须input

 /Applications/MAMP/bin/php5.3/bin/php 

在你的命令行中,然后添加

 /Applications/MAMP/bin/php5.3/bin 

到您的PATH能够从任何地方调用PHP。

这个为我工作:

 sudo mv /usr/bin/php /usr/bin/~php sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php 

有时候,这样做更容易:

sudo ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /usr/bin/php;

在发布的时候PHP的Mamps版本是php5.6.10 ,所以确保你改变你使用的版本。

你会很兴奋的。

对于XAMPP用户,您可以使用这个:

 # Use XAMPP version of PHP export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH source ~/.bash_profile 

你可以检查它:

 php -v 

可能来不及发表评论,但这里是我遇到的问题,在Mac OSX上为我的XAMPP安装设置php PATH

  1. 使用可用的文本编辑器打开文件.bash_profile(在当前用户文件夹下find)。
  2. 添加path如下:

export PATH = / path / to / your / php / installation / binleave / rest / of / the stuff /不受影响/ :$ PATH

  1. 保存你的.bash_profile并重新启动你的Mac。

说明:当用户从“terminal”启动一个程序时,Terminal / Mac尝试在它所知道的PATHS上运行search,希望find程序,因此这里的诀窍是让terminalfindphp,用户希望通过将其指向用户安装的某个bin文件夹中的用户版本的PHP。

为我工作:)

PS我仍然是我的新电脑周围失去了羊;)

这是不是一个理想的解决scheme,因为你必须pipe理两个ini文件,但是,我设法解决这个问题在windows上通过复制php文件in mamp从conf文件夹到您的活动php版本在bin文件夹中。

[MAMP INSTALL]\conf\[ACTIVE PHP VERSION]\php.ini

复制到

[MAMP INSTALL]\bin\php\[ACTIVE PHP VERSION]

为了恭维当前接受的答案,如果你认为MAMP使用最新版本的php5作为默认,你可以在中间添加grep'php5':

 PHP_VERSION= `ls /Applications/MAMP/bin/php/ | sort -n | grep 'php5' | tail -1` 

而且无论MAMP版本如何,您都可以获得最新的php5。