macos-如何重写PHP的路径以使用MAMP路径?

在将我的PHP配置完全搞乱之后,尝试使SOAP模块正常工作(-bash:/ usr / bin / php:没有这样的文件或目录....)现在我必须使用MAMP,但是每次必须输入路径时

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

如何只键入php而不是MAC上的整个路径? 我仔细检查了一下,但没有一个名为.profilebash_profile的文件

谢谢

PS:这是输出echo $ 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
sf_tristanb asked 2020-01-14T09:27:21Z
13个解决方案
128 votes

例如,在主文件夹php -v中,您可以创建which php。在这里,您可以导出变量,然后将其添加到路径中。

打开文件,在您喜欢的编辑器中编辑它,我使用vim。

然后您可以添加路径

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

您想先于php -v,因为它已经包含了which php,这是系统PHP所在的位置。 因此,系统始终会首先找到您的MAMP版本。

保存此文件,然后重新启动终端,您会看到应该获得MAMP版本。

为了测试,我使用php -v,因为OSX Lion使用5.3.10,而我的MAMP使用5.3.6
您还可以使用which php进行测试,这会将路径输出到当前php可执行文件。

David Yell answered 2020-01-14T09:28:40Z
104 votes

先前接受的答案引用的是PHP 5.3.6,而MAMP的当前版本默认使用7.2.1(截至2018年初),这表明这不是一个非常可持续的解决方案。 您可以通过在source ~/.bash_profile中添加额外的一行来自动更新路径,以从/Applications/MAMP/bin/php/获得最新版本的PHP并将其导出到您的路径中。 这是我的方法:

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

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

正如其他人提到的那样,您可能还希望修改外壳以使用MAMP的mysql可执行文件,该文件位于alias mysql='/Applications/MAMP/Library/bin/mysql'。但是,我不建议导出该文件夹,因为那里还有很多其他可执行文件,例如which mysqladmin, 您可能不希望优先于系统安装的版本。 如此处所述,此问题使我无法最近安装节点软件包(libxmljs)。

我的解决方案是将alias mysql='/Applications/MAMP/Library/bin/mysql'which mysqladmin定义和导出为函数:

# 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

我使用函数而不是别名,因为别名不会传递给子进程,或者至少不会传递给Shell脚本。 我发现的唯一缺点是,运行alias mysql='/Applications/MAMP/Library/bin/mysql'which mysqladmin将不再返回任何东西,这真是令人讨厌。 如果要检查使用的是哪个mysql,并确保所有功能都是copacetic的,请改用mysql --version

注意:@julianromera指出zsh不支持导出功能,因此,在这种情况下,最好使用别名,例如alias mysql='/Applications/MAMP/Library/bin/mysql'。注意,子外壳可能无法使用您的别名(例如在执行shell时) 脚本)。

Andrew Patton answered 2020-01-14T09:29:25Z
12 votes

我发现在Mavericks 10.8上没有.bash_profile,我的路径位于/ etc / paths

为了使新路径(无论是php的mamp还是brew安装)生效,它必须高于该路径文件中默认的/ usr / bin / php。 例如。

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

更改后,打开一个新的终端窗口并运行“哪个php”,它现在应指向更新后的路径

Opentuned answered 2020-01-14T09:29:54Z
8 votes

您可能仍然会以这种方式遇到mysql二进制文件

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

如下编辑,保存,完全并重新启动终端或交替

source ~/.bash_profile

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

并且以上述DavidYell的帖子的方式,还添加以下内容。 您可以通过导出它们来堆叠各种变量,然后再进行一次PATH导出,我在下面进行了演示

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"

干杯

whatsnewsisyphus answered 2020-01-14T09:30:32Z
4 votes

每次保存MAMP config(PHP部分)时,它将在/usr/bin/env php文件中保存当前版本的PHP,并为php,pear和pecl创建别名,以指向当前配置的版本。 (注意:您需要在MAMP中选中“在命令行上提供此版本”选项)

但是,您需要刷新终端(打开另一个会话)以刷新此文件。 您也可以键入/usr/bin/env php手动刷新别名。

如果要在PHP_VERSION变量中提取当前版本(如上所述),以供进一步使用,则可以执行以下操作:

export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-`

然后,您将在当前版本的MAMP中获得$ PHP_VERSION。

最后,如果要在mamp上使用当前配置的版本运行php,只需将以下内容添加到/usr/bin/env php

export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-`
export PHPRC="/Library/Application Support/appsolute/MAMP PRO/conf/" #point to your php.ini folder to use the same php settings
export PATH=/Applications/MAMP/bin/php/php$PHP_VERSION/bin:$PATH

现在,即使依赖于/usr/bin/env php的脚本也将从Mamp config中读取正确的版本。

Ricardo Martins answered 2020-01-14T09:27:53Z
3 votes

如果必须输入

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

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

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

到您的PATH,以便可以从任何地方调用php。

Kissaki answered 2020-01-14T09:31:00Z
2 votes

这个为我工作:

sudo mv /usr/bin/php /usr/bin/~php
sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php
rckd answered 2020-01-14T09:31:20Z
2 votes

对于XAMPP用户,您可以使用以下命令:

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

您可以使用以下方法进行检查:

php -v
Lexsoul answered 2020-01-14T09:31:44Z
1 votes

有时,这样做更容易:

php5.6.10

发布时,PHP的Mamps版本为php5.6.10,因此请确保将其更改为所使用的版本。

你会生气的。

Andrew Lazarus answered 2020-01-14T09:32:18Z
1 votes

评论可能为时已晚,但是当我遇到在Mac OSX上为XAMPP安装设置php PATH时遇到的问题时,这是我的工作

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

导出PATH = / path / to / your / php / installation / bin:leave / rest / of / the / stuff / untouched /:$ PATH

  1. 保存您的.bash_profile,然后重新启动Mac。

说明:终端/ Mac尝试在其知道的路径上进行搜索,以期找到程序,当用户从“终端”启动程序时,因此这里的窍门是使终端找到php, 用户希望通过将其指向用户安装的某个bin文件夹中的用户版本的PHP。

为我工作:)

附言:我仍然是我的新电脑迷茫的羊;)

Bhaskar Pramanik answered 2020-01-14T09:33:09Z
0 votes

这不是一个理想的解决方案,因为您必须管理两个ini文件,但是,我设法通过将mamp中的php ini文件从conf文件夹复制到bin文件夹中的活动php版本来解决此问题。

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

复制到

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

Moshie answered 2020-01-14T09:33:43Z
0 votes

为了补充当前接受的答案,如果您假设MAMP使用最新版本的php5作为默认版本,则可以在中间添加grep'php5':

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

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

KalanyuZ answered 2020-01-14T09:34:08Z
0 votes

MAMP的最新版本(版本5+)提供了一种使MAMP PHP版本可用于命令行的简便方法。 只需在侧边栏菜单中选择“ PHP”,然后选中“在命令行上使该版本可用”即可。 十分简单! 请参阅所附的屏幕截图:)

screenshot

hsaada answered 2020-01-14T09:34:28Z
translate from https://stackoverflow.com:/questions/4145667/how-to-override-the-path-of-php-to-use-the-mamp-path