macos-如何重写PHP的路径以使用MAMP路径?
在将我的PHP配置完全搞乱之后,尝试使SOAP模块正常工作(-bash:/ usr / bin / php:没有这样的文件或目录....)现在我必须使用MAMP,但是每次必须输入路径时
Applications/MAMP/bin/php5.3/bin/php to do command line.
如何只键入php而不是MAC上的整个路径? 我仔细检查了一下,但没有一个名为.profile或bash_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
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时遇到的问题时,这是我的工作
使用可用的文本编辑器打开文件.bash_profile(在当前用户文件夹下找到)。
添加如下路径:
导出PATH = / path / to / your / php / installation / bin:leave / rest / of / the / stuff / untouched /:$ PATH
保存您的.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”,然后选中“在命令行上使该版本可用”即可。 十分简单! 请参阅所附的屏幕截图:)
hsaada answered 2020-01-14T09:34:28Z