Macにインストールされているデフォルトの代わりにPHPのMAMPのバージョンを使用したいと思います。
ln -s /Applications/MAMP/bin/php5.3/bin/php php
しかし、「ファイルが存在します」というエラーが表示されます。これを回避する最善の方法は何ですか?フルパスの代わりにphpを入力するだけですか?
コマンドラインで呼び出される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
元の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:
これがエルカピタンで機能するために
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
csrutil enable
現在のファイルを改ざんしたくないので、MAMP PHP binフォルダーを$PATH
env変数に追加するだけです。
~/.bash_profile
を編集し、次の行を先頭に追加できます
export PATH="/Applications/MAMP/bin/php/php5.6.1/bin:$PATH"
PHPバージョンを使用中の現在のバージョンに変更するだけです。
ファイルを編集した後、source ~/.bash_profile
を行うことを忘れないでください。
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 /にあるはずです。幸せなプログラミング。
OSX10.12.5では、これらのどれも機能していませんでした
私は/ opt/local/binにインストールされたphp70のmacポートを持っています
どのPHPが示した:
/usr/bin/php
私はエイリアスとローカルパスなどを設定しましたが、それはほとんど私にとってはうまくいきましたが、他のプログラムは失敗しました(作曲家など)ので、私のための解決策は先頭に追加することでした:
/opt/local/bin
/opt/local/sbin
/ etc/pathsファイルへ
それはすべて魅力的でした!
MAMPの最新バージョン(バージョン5以降)は、MAMP PHPバージョンをコマンドラインで使用可能にする簡単な方法を提供します。サイドバーメニューで[PHP]を選択し、[Makeこのバージョンはコマンドラインで利用可能です。」
さて、「ファイルが存在する」エラーは、おそらく既に存在するファイルの名前でシンボリックリンクを作成しようとしたためです。置換しようとしているphpバージョンを含むディレクトリにいたか、これが2回目の試みであり、最初に既存のsym-linkを削除しなかったと仮定します。 phpのデフォルトバージョンを「置き換え/変更」しないことに関して、他の人に同意します。
質問の2番目の部分であるフルパスを入力する必要のない最善の方法に基づいて、エイリアスを示唆する答えはそれと正反対です。ただし、複数のバージョンが関係している場合は、実行するバージョンを実行するためにphp以外の何かを呼び出す必要があります。
使用したいphpのバージョンを「選択」して、そのバージョンへのシンボリックリンクを作成し、使用するときにコマンドとして「php」を入力するだけのスクリプトがあります。私はそれについてのブログを書きました here ここでスクリプトを入手できます。 @ioCronからの回答に基づいて、各バージョンに関連付けられた異なる構成フォルダーを説明するためにスクリプトを再検討する必要がある場合があります。