web-dev-qa-db-ja.com

PHPのパスをオーバーライドしてMAMPパスを使用するには?

完全に台無しにした後、PHP MACの設定でSOAPモジュールが動作するようにします(-bash:/ usr/bin/php:そのようなファイルやディレクトリはありません....)MAMPを使用する必要がありますが、パスを入力するたびに

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

MACのパス全体ではなくphpと入力する方法?私は再確認しましたが、.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
52
sf_tristanb

MAMP構成(PHPセクション)を保存するたびに、現在のバージョンのPHP on ~/.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 configから正しいバージョンを読み取ります。

4
Ricardo Martins

Exmapleのホームフォルダー/Users/Davidで、.bash_profileを作成できます。ここで、変数をエクスポートしてからパスに追加できます。

ファイルを開いてお気に入りのエディターで編集します。vimを使用します。

その後、パスに追加できます

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

システムのPHPが存在する場所である$PATHを既に含んでいるので、/usr/binの少し先にしたいので、システムは常に最初にMAMPバージョンを見つけます。

このファイルを保存してからターミナルを再起動すると、MAMPバージョンを取得する必要があることがわかります。

テストするには、php -vを使用します。OSXLionは5.3.10を使用し、MAMPは5.3.6を使用しています。
現在のphp実行可能ファイルへのパスを出力するwhich phpを使用してテストすることもできます。

128
David Yell

以前に受け入れられた回答が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を使用して、それらが有効になるようにします。)

他の人が述べたように、/Applications/MAMP/Library/binにあるMAMPのmysql実行可能ファイルを使用するようにシェルを変更することもできます。しかし、私はnotそのフォルダをエクスポートすることをお勧めします。libtoolのような他の実行可能ファイルがたくさんあるので、システムにインストールされているバージョンよりも優先する必要はありません。 here に記載されているように、この問題により、ノードパッケージ(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

エイリアスは子プロセスに渡されないため、または少なくともシェルスクリプトのコンテキストでは渡されないため、エイリアスの代わりに関数を使用しました。私が見つけた唯一の欠点は、which mysqlwhich mysqladminを実行しても何も返されないということです。これは残念です。どのmysqlが使用されているかを確認し、すべてが適切であることを確認する場合は、代わりにmysql --versionを使用します。

注:@julianromeraは、zshは関数のエクスポートをサポートしていないことを指摘しているため、その場合は、alias mysql='/Applications/MAMP/Library/bin/mysql'などのエイリアスを使用するのが最善です。エイリアスがサブシェルから使用できない場合があることに注意してください(シェルスクリプトの実行時など)。

104
Andrew Patton

Mavericks 10.8には.bash_profileがなく、私のパスは/ etc/pathsにあることがわかりました

新しいパス(これがphpのmampまたはbrewインストール)を有効にするには、このパスファイル内のデフォルトの/ usr/bin/phpの上にある必要があります。例えば。

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

変更後、新しいターミナルウィンドウを開き、更新されたパスを指す「どのphp」を実行します

12
Opentuned

あなたはまだその方法で見つからない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"

乾杯

8

入力する必要がある場合

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

コマンドラインで追加します

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

pATHを使用して、どこからでもphpを呼び出すことができます。

3
Kissaki

XAMPPユーザーの場合、これを使用できます。

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

そして、あなたはそれをチェックすることができます:

php -v
2
Lexsoul

これは私のために働いた:

Sudo mv /usr/bin/php /usr/bin/~php
Sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php
2
rckd

おそらくコメントするには遅すぎますが、Mac OSXでのXAMPPインストールのphp PATHの設定で問題に遭遇したときに私がしたことはここにあります

  1. 利用可能なテキストエディターを使用して、ファイル.bash_profile(現在のユーザーフォルダーの下にあります)を開きます。
  2. 以下のようにパスを追加します。

export PATH = / path/to/your/php/installation/binleave/rest/of/the/stuff/untouched /:$ PATH

  1. .bash_profileを保存して、Macを再起動します。

説明:端末/ Macは、ユーザーがプログラムを開始したときに、プログラムを見つけることを期待して、[〜#〜] paths [〜#〜]で検索を実行しようとします「ターミナル」から、したがって、ここでのコツは、ユーザーがインストールしたbinフォルダーのPHPのユーザーのバージョンを指すことにより、ユーザーが意図するphpをターミナルに検出させることです。

私のために働いた:)

P.S私はまだ新しいコンピューターの周りで迷子の羊です;)

1

時々、これを行う方が簡単です:

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

PHP投稿時のMampsバージョンはphp5.6.10、使用しているバージョンに変更してください。

あなたはジフィーで起きます。

1
Andrew Lazarus

これはnot 2つのiniファイルを管理する必要がある理想的なソリューションですが、mampのphp iniファイルをconfフォルダーからアクティブなphpバージョンにコピーすることで、この問題を回避することができました。 binフォルダー。

[MAMP INSTALL]\conf\[ACTIVE PHP VERSION]\php.ini

コピーする

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

0
Moshie

MAMPの最新バージョン(バージョン5以降)は、コマンドラインでMAMP PHPバージョンを使用できるようにする簡単な方法を提供します。サイドバーメニューで[PHP]を選択し、このバージョンはコマンドラインで利用できます。」簡単です!添付のスクリーンショットをご覧ください:)

screenshot

0
hsaada

現在受け入れられている答えを補完するために、MAMPがデフォルトとしてphp5の最新バージョンを使用すると仮定する場合、中央にgrep 'php5'を追加できます。

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

また、MAMPのバージョンに関係なく、最新のphp5を取得することが保証されています。

0
KalanyuZ