完全搞砸我在PHP上的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
每次保存MAMP配置(PHP部分)时,它会将当前版本的PHP保存在~/.profile
文件中,并为php,pear和pecl创建别名,以指向当前配置的版本。 (注意:您需要在MAMP中选中“在命令行上使此版本可用”选项)
但是,您需要刷新终端(打开另一个会话)才能刷新此文件。您也可以键入source ~/.profile
手动更新别名。
如果要在PHP_VERSION变量中提取当前版本(如上所述)以供进一步使用,您可以执行以下操作:
export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-`
然后你将获得当前版本的MAMP $ PHP_VERSION。
最后,如果你想在mamp上使用当前配置的版本运行你的php,你只需要在~/.bash_profile
中添加以下内容:
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配置中读取正确的版本。
可能为时已晚,无法发表评论,但这是我在Mac OSX上为我的XAMPP安装设置php PATH时遇到的问题
export PATH = / path / to / your / php / installation / bin:leave / rest / of / the stuff / untouched /:$ PATH
说明:当用户从“终端”启动程序时,终端/ Mac尝试在它知道的PATHS上运行搜索,希望找到程序,因此这里的技巧是让终端找到php,用户打算通过将其指向用户安装的某个bin文件夹中的用户PHP版本来实现。
为我工作:)
P.S我在新电脑周围仍然是一只迷失的羊;)
这不是一个理想的解决方案,因为你必须管理两个ini文件,但是我设法通过将mamp中的php ini文件从conf文件夹复制到bin文件夹中的活动php版本来解决这个问题。
sudo ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /usr/bin/php;
复制到
php5.6.10
为了补充当前接受的答案,如果你假设MAMP使用最新版本的php5作为默认值,你可以在中间添加grep'php5':
[MAMP INSTALL]\conf\[ACTIVE PHP VERSION]\php.ini
无论MAMP版本如何,您都可以获得最新的php5。
最新版本的MAMP(版本5+)提供了一种简单的方法,使MAMP PHP版本可用于命令行。只需在侧栏菜单中选择“PHP”,然后选中“在命令行中使此版本可用”。十分简单!见附件截图:)
例如,在你的主文件夹qazxsw poi中,你可以创建一个qazxsw poi。在这里,您可以导出变量,然后将它们添加到您的路径中。
打开文件在你喜欢的编辑器中编辑它,我使用vim。
然后你可以添加你的路径
/Users/David
你希望你的位置优于.bash_profile
,因为它已经包含了PHP系统所在的export MAMP_PHP=/Applications/MAMP/bin/php/php5.3.6/bin
export PATH="$MAMP_PHP:$PATH"
。因此系统将始终首先找到您的MAMP版本。
保存此文件,然后重新启动终端,您将看到您应该获得您的MAMP版本。
为了测试我使用$PATH
作为OSX Lion使用5.3.10而我的MAMP使用5.3.6
您还可以使用/usr/bin
进行测试,它将输出当前php可执行文件的路径。
以前接受的答案是指php 5.3.6这一事实,而当前版本的MAMP默认使用7.2.1(截至2018年初),指出这不是一个非常可持续的解决方案。您可以通过向php -v
添加额外的行来自动更新路径,以便从which php
获取最新版本的PHP并将其导出到您的路径。我是这样做的:
.bash_profile
(在进行更改后使用/Applications/MAMP/bin/php/
以确保它们生效。)
正如其他人所提到的,你可能还想修改你的shell以使用位于# 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
的MAMP的mysql可执行文件。但是,我不建议导出该文件夹,因为那里有许多其他可执行文件,如source ~/.bash_profile
,您可能不希望优先考虑系统安装的版本。这个问题阻止我最近安装一个节点包(libxmljs),如/Applications/MAMP/Library/bin
所记录。
我的解决方案是定义和导出libtool
和here作为函数:
mysql
我使用函数而不是别名,因为别名不会传递给子进程,或者至少不会传递给shell脚本的上下文。我发现的唯一的缺点是运行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
将不再返回任何东西,这是一个无赖。如果你想检查使用哪个mysql并确保一切都是copacetic,请改用which mysql
。
注意:@julianromera指出zsh不支持导出函数,因此在这种情况下,最好使用别名,如which mysqladmin
。请注意,您的别名可能无法从子shell中获取(例如执行shell脚本时)。
我发现在Mavericks 10.8上没有.bash_profile,我的路径位于/ etc / paths
为了获得新路径(无论这是php的mamp还是brew安装)生效,它需要高于此路径文件中的默认/ usr / bin / php。例如。
mysql --version
在更改之后,打开一个新的终端窗口并运行现在应指向更新路径的“php”
你可能仍然遇到以这种方式找不到的mysql二进制文件
alias mysql='/Applications/MAMP/Library/bin/mysql'
编辑如下,保存,完全重新启动终端或交替
/Applications/MAMP/bin/php/php5.3.6/bin
/usr/bin
在不重启终端的情况下执行新的PATH
并且以上面DavidYell的帖子的方式,还添加以下内容。您可以通过导出它们来堆叠各种变量,然后是我在下面演示的单个PATH导出
open terminal, type
touch ~/.bash_profile; open ~/.bash_profile
干杯
如果你必须打字
source ~/.bash_profile
在命令行中然后添加
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"
到你的PATH能够从任何地方调用PHP。
这个对我有用:
/Applications/MAMP/bin/php5.3/bin/php
对于XAMPP用户,您可以使用:
/Applications/MAMP/bin/php5.3/bin
你可以用以下方法检查:
sudo mv /usr/bin/php /usr/bin/~php
sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php
有时,这样做更容易:
# Use XAMPP version of PHP
export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH
source ~/.bash_profile
发布时Mamps版本的PHP是php -v
,因此请确保将其更改为您正在使用的版本。
你会快活的。