簡體   English   中英

如何覆蓋PHP的路徑以使用MAMP路徑?

[英]How to override the path of PHP to use the MAMP path?

在 MAC 上完全搞砸了我的 PHP 配置后,試圖讓 SOAP 模塊正常工作(-bash: /usr/bin/php: No such file or directory ....)我現在必須使用 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

例如,在您的主文件夾/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 -v因為 OSX Lion 使用 5.3.10 而我的 MAMP 使用 5.3.6
您還可以測試使用which php將輸出當前 php 可執行文件的路徑。

先前接受的答案指的是 php 5.3.6,而當前版本的 MAMP 以 7.2.1 作為默認版本(截至 2018 年初),這一事實指出這不是一個非常可持續的解決方案。 您可以通過向.bash_profile.zshrc添加額外的行來自動更新路徑,以從/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以確保它們生效。)

正如其他人所提到的,您可能還想修改您的 shell 以使用 MAMP 的 mysql 可執行文件,它位於/Applications/MAMP/Library/bin 但是,我建議導出該文件夾,因為那里還有一堆其他可執行文件,例如libtool ,您可能不希望優先考慮系統安裝的版本。 此問題阻止我最近安裝節點包 (libxmljs),如此處所述

我的解決方案是將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

我使用函數而不是別名,因為別名不會傳遞給子進程,或者至少不會在 shell 腳本的上下文中傳遞。 我發現的唯一缺點是運行which mysqlwhich mysqladmin將不再返回任何內容,這是一個無賴。 如果您想檢查正在使用哪個 mysql 並確保所有內容都正確,請改用mysql --version

注意:@julianromera 指出 zsh 不支持導出函數,因此在這種情況下,您最好使用別名,例如alias mysql='/Applications/MAMP/Library/bin/mysql' 請注意,您的別名可能無法從子 shell 中使用(例如在執行 shell 腳本時)。

每次保存 MAMP 配置(PHP 部分)時,它都會在~/.profile文件中保存 PHP 的當前版本,並為 php、pear 和 pecl 創建別名,以指向當前配置的版本。 (注意:您需要在 MAMP 中選中“使此版本在命令行上可用”選項)

但是,您需要刷新終端(打開另一個會話)才能刷新此文件。 您還可以鍵入source ~/.profile手動刷新別名。

如果您想在 PHP_VERSION 變量中提取此當前版本 - 如上所述 - 以供進一步使用,您可以執行以下操作:

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

然后您將有 $PHP_VERSION 可用於當前版本的 MAMP。

最后,如果你想在 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 配置中讀取正確的版本。

我發現在 Mavericks 10.8 上沒有 .bash_profile 並且我的路徑位於 /etc/paths

為了使新路徑(無論這是 php 的 mamp 安裝還是 brew 安裝)生效,它需要高於此路徑文件中的默認 /usr/bin/php。 例如。

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

更改后,打開一個新的終端窗口並運行現在應該指向更新路徑的“which php”

您可能仍然會遇到無法以這種方式找到的 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"

干杯

如果你必須輸入

/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

對於 XAMPP 用戶,您可以使用它:

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

你可以檢查它:

php -v

有時,這樣做更容易:

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

發布時 PHP 的 Mamps 版本是php5.6.10 ,因此請確保將其更改為您正在使用的版本。

你很快就會起來。

評論可能太晚了,但這是我在 Mac OSX 上為 XAMPP 安裝設置 php PATH 遇到問題時所做的

  1. 使用可用的文本編輯器打開文件 .bash_profile(在當前用戶文件夾下找到)。
  2. 添加路徑如下:

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

  1. 保存您的 .bash_profile 並重新啟動您的 Mac。

說明:終端/ Mac上嘗試運行在它知道的路徑搜索,找到程序,當用戶開始從“終端”程序,因此這里的技巧是讓終端找到PHP的希望,用戶打算通過將其指向用戶安裝的某個 bin 文件夾中的用戶版本的 PHP。

為我工作:)

PS 我在我的新電腦周圍仍然是一只迷路的羊;)

最新版本的 MAMP(版本 5+)提供了一種使 MAMP PHP 版本可用於命令行的簡單方法。 只需在側欄菜單中選擇“PHP”並選中“在命令行上提供此版本”。 十分簡單! 見附件截圖:)

截屏

不是一個理想的解決方案,因為您必須管理兩個 ini 文件,但是,我設法通過將 mamp 中的 php ini 文件從 conf 文件夾復制到 bin 文件夾中的活動 php 版本來解決此問題。

[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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM