为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
泛舟湖上清波郎朗 2019-12-09 15:08:40
在将我的PHP配置完全搞乱之后,尝试使SOAP模块正常工作(-bash:/ usr / bin / php:没有这样的文件或目录...。)我现在必须使用MAMP,但是每次必须键入路径Applications/MAMP/bin/php5.3/bin/php to do command line.如何只键入php而不是MAC上的整个路径?我仔细检查过,但没有一个名为.profilenor 的文件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
查看完整描述

3 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

在/Users/David示例的主文件夹中,您可以创建一个.bash_profile。在这里,您可以导出变量,然后将其添加到路径中。


打开文件以在您喜欢的编辑器中对其进行编辑,我使用vim。


然后您可以添加路径


export MAMP_PHP=/Applications/MAMP/bin/php/php5.3.6/bin

export PATH="$MAMP_PHP:$PATH"

您需要先行一步,$PATH因为它已经包含/usr/bin了PHP系统所在的位置。因此,系统始终会首先找到您的MAMP版本。


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


要进行测试,我将php -vOSX Lion用作5.3.10,而我的MAMP使用5.3.6,

您也可以进行测试,使用which php它将输出当前php可执行文件的路径。


查看完整回答
反对 回复 2019-12-09
?
狐的传说

TA贡献1804条经验 获得超3个赞

先前接受的答案是指PHP 5.3.6,而MAMP的当前版本默认为7.2.1(截至2018年初),这表明这不是一个非常可持续的解决方案。您可以通过向您的行添加额外的一行来自动更新路径,.bash_profile以获取最新版本的PHP /Applications/MAMP/bin/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可执行文件(位于)/Applications/MAMP/Library/bin。但是,我不建议导出该文件夹,因为那里还有很多其他可执行文件,例如libtool,您可能不想将其优先于系统安装的版本。这个问题让我无法安装节点包最近(libxmljs),作为记录在这里。


我的解决方案是定义和导出mysql并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脚本。我发现的唯一缺点是运行which mysql并且which mysqladmin将不再返回任何东西,这真是令人讨厌。如果要检查使用的是哪个mysql,并确保所有功能都是copacetic的,请mysql --version改用。


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


查看完整回答
反对 回复 2019-12-09
  • 3 回答
  • 0 关注
  • 487 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信