web-dev-qa-db-ja.com

OSXでデフォルトの代わりにPHPのMAMPのバージョンを使用する方法

Macにインストールされているデフォルトの代わりにPHPのMAMPのバージョンを使用したいと思います。

ln -s /Applications/MAMP/bin/php5.3/bin/php php

しかし、「ファイルが存在します」というエラーが表示されます。これを回避する最善の方法は何ですか?フルパスの代わりにphpを入力するだけですか?

56
Josh Fraser

コマンドラインで呼び出されるPHPのデフォルトバージョンを変更することはお勧めしません。そうすると、システムの他の部分が壊れたり、将来問題が発生する可能性があります。 OSをアップグレードすることにしました。

あなたのニーズを満たす代替手段があります。 MAMPのphp 5.3のコピーにエイリアスを作成できます。私の場合、エイリアスにphpmampという名前を付けました。ターミナルを開き、次を入力します。

alias phpmamp='/Applications/MAMP/bin/php5.3/bin/php'

コマンドラインでphpmampと入力すると、MAMP phpインタープリターが起動します。次を入力してこれを確認します。

phpmamp --help

ほとんどの場合、これとその他のエイリアスを~/.bash_profileに保存します。これにより、再起動後もエイリアスが保持されます。それ以外の場合、エイリアスは現在の特定のターミナルセッションでのみ有効です。.bash_profileファイルの作成に関する詳細については、次を参照してください。

http://www.redfinsolutions.com/redfin-blog/creating-bashprofile-your-mac

78
John Kramlich

元のphpの場所にシンボリックリンクを作成しました。

1。osx phpバージョンを見つけます:

which php

結果は次のようになります。

/opt/local/bin/php

2。元のPHPバイナリのバックアップ(移動):

Sudo mv /opt/local/bin/php /opt/local/bin/php.bak

。シンボリックリンクを作成:

Sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php

4。新しいPHPバージョンを実行します:

php -v

PS:

これがエルカピタンで機能するために

  • MacをRecoveryModeで再起動します(起動時にCmd + Rを押したままにします)
  • ターミナルを開き、次を入力します:csrutil disable
  • リブート
  • どちらか:Sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php
    またはSudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /usr/bin/php
  • RecoveryModeで再起動し、セキュリティを再度有効にします:csrutil enable
102
Heiko K.

現在のファイルを改ざんしたくないので、MAMP PHP binフォルダーを$PATH env変数に追加するだけです。

~/.bash_profileを編集し、次の行を先頭に追加できます

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

PHPバージョンを使用中の現在のバージョンに変更するだけです。

ファイルを編集した後、source ~/.bash_profileを行うことを忘れないでください。

65

Php.iniの設定がすべての場合とすべてのシステムで適切に読み込まれなかったため、特にioncubeなどのモジュールが必要な場合、これまでのところネットで見つけた結果/ソリューションに満足していませんでしたMAMP Proではさらに混乱します)。そのため、独自のphpバージョンエイリアスを(構成を使用して)作成したので、次のソリューションを例として考えました(MAMP Proに基づいて、php.iniのパスをニーズに合わせて調整することを忘れないでください)。

.bash_profileを編集します

vim ~/.bash_profile

そして、次のエントリを追加します。

alias php55="/Applications/MAMP/bin/php/php5.5.26/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.5.26.ini'"
alias php56="/Applications/MAMP/bin/php/php5.6.10/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"
alias php56cgi="/Applications/MAMP/bin/php/php5.6.10/bin/php-cgi -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"

現在のターミナルセッションで.bash_profileを再初期化します(そうしないと、ターミナルを再起動しない限り、変更は表示されません)。

source ~/.bash_profile

追加のモジュールがインストールされている場合は、php56 -vでテストできます。ioncubeなどのモジュールの出力を取得する必要があります。それ以外の場合は、php56 -iでテストします。 grep "yourModuleNameOrSomethingElse"

これで、すべての構成がロードされた状態で、ターミナルで「php56」などのphpバージョンの1つを簡単に使用できるようになりました。したがって、ターミナルを介した正しいphp.ini構成を含むバージョンのすべての反復を通じてアプリケーションをテストおよび構築するのに最適です。

通常のMAMPユーザーの場合、構成は/ Applications/MAMP/conf /にあるはずです。幸せなプログラミング。

2
ioCron

OSX10.12.5では、これらのどれも機能していませんでした

私は/ opt/local/binにインストールされたphp70のmacポートを持っています

どのPHPが示した:

/usr/bin/php

私はエイリアスとローカルパスなどを設定しましたが、それはほとんど私にとってはうまくいきましたが、他のプログラムは失敗しました(作曲家など)ので、私のための解決策は先頭に追加することでした:

/opt/local/bin
/opt/local/sbin

/ etc/pathsファイルへ

それはすべて魅力的でした!

0
pgee70

MAMPの最新バージョン(バージョン5以降)は、MAMP PHPバージョンをコマンドラインで使用可能にする簡単な方法を提供します。サイドバーメニューで[PHP]を選択し、[Makeこのバージョンはコマンドラインで利用可能です。」

スクリーンショット

0
hsaada

さて、「ファイルが存在する」エラーは、おそらく既に存在するファイルの名前でシンボリックリンクを作成しようとしたためです。置換しようとしているphpバージョンを含むディレクトリにいたか、これが2回目の試みであり、最初に既存のsym-linkを削除しなかったと仮定します。 phpのデフォルトバージョンを「置き換え/変更」しないことに関して、他の人に同意します。

質問の2番目の部分であるフルパスを入力する必要のない最善の方法に基づいて、エイリアスを示唆する答えはそれと正反対です。ただし、複数のバージョンが関係している場合は、実行するバージョンを実行するためにphp以外の何かを呼び出す必要があります。

使用したいphpのバージョンを「選択」して、そのバージョンへのシンボリックリンクを作成し、使用するときにコマンドとして「php」を入力するだけのスクリプトがあります。私はそれについてのブログを書きました here ここでスクリプトを入手できます。 @ioCronからの回答に基づいて、各バージョンに関連付けられた異なる構成フォルダーを説明するためにスクリプトを再検討する必要がある場合があります。

0
StevenHill