Macにインストールされているデフォルトの代わりにMAMPのバージョンのPHPを使用したいと思います。使ってみました
ln -s /Applications/MAMP/bin/php5.3/bin/php php
しかし、「ファイルが存在します」というエラーが発生します。フルパスの代わりにphpと入力するだけで、これを回避するための最良の方法は何ですか?
元のphpの場所にシンボリックリンクを作成しました。
1.次のコマンドでosxphpバージョンを見つけます。
which php
結果は次のようになります。
/opt/local/bin/php
2.元のphpバイナリをバックアップ(移動)します。
sudo mv /opt/local/bin/php /opt/local/bin/php.bak
3.シンボリックリンクを作成します。
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
コマンドラインで呼び出されるPHPのデフォルトバージョンを変更することはお勧めしません。そうすることで、OSをアップグレードすることにした場合に、システムの他の部分が破損したり、将来的に問題が発生したりする可能性があります。
あなたのニーズを満たすかもしれない代替案があります。MAMPのphp5.3のコピーのエイリアスを作成できます。私の場合、エイリアスにphpmampという名前を付けました。ターミナルを開き、次のように入力します。
alias phpmamp='/Applications/MAMP/bin/php5.3/bin/php'
これで、コマンドラインでphpmampと入力すると、MAMPphpインターパーターが起動します。次のように入力して、これを確認します。
phpmamp --help
これと他のエイリアスをに保存することをお勧めし~/.bash_profile
ます。これにより、再起動後もエイリアスを保持できます。.bash_profile
それ以外の場合、エイリアスは現在の特定のターミナルセッションでのみ存続する必要があります。ファイルの作成の詳細については、次を参照してください。
http://www.redfinsolutions.com/redfin-blog/creating-bashprofile-your-mac
現在のファイルを改ざんしたくないので、MAMPPHPbinフォルダーの前に$PATH
env変数を追加します。
次の行を編集~/.bash_profile
して上部に追加できます
export PATH="/Applications/MAMP/bin/php/php5.6.1/bin:$PATH"
PHPのバージョンを現在使用しているバージョンに変更するだけです。
source ~/.bash_profile
ファイルを編集した後は、忘れずに行ってください。
php.ini構成がすべてのケースで、すべてのシステムで、特にioncubeなどのモジュールが必要な場合に正しくロードされなかったため、これまでにネット上で見つけた結果/ソリューションに満足していませんでした( MAMP Proではさらに混乱します)。そのため、(configsを使用して)独自の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/にあると思います。幸せなプログラミング。
2021- ohmyzshを使用している場合、編集するファイルは次のとおりです。
/Users/your_user/.zshrc
したがって、このファイルを編集してパスを追加できます。
export PATH=/Applications/MAMP/bin/php/php8.0.0/bin:$PATH
BigSurと完全に連携します
添付ファイルに示されているように、端末がzsh(oh-my-zosh)を使用している場合。 画像を確認 する次のようにします。
Mac Big Surは、端末に「zsh」Oh-my-zoshを使用しています。それで、私は次のことをしました。
ヘルプが必要な場合はお知らせください。
MacOSCatalinaの場合。ディレクトリを探す/Users/<user_name>/.zprofile
そして追加します(例えば)
# MAMP PRO PHP
export PATH="/Applications/MAMP/bin/php/php7.4.2/bin:$PATH"
再起動後、ターミナルで
which php
新しいphpバージョン/Applications/MAMP/bin/php/php7.4.2/bin/php
「ファイルが存在します」というエラーは、すでに存在しているファイルの名前でシンボリックリンクを作成しようとしたことが原因である可能性があります。置き換えようとしているphpバージョンを含むディレクトリにいる、またはこれが2回目の試行であり、最初に既存のシンボリックリンクを削除しなかったと想定します。デフォルトバージョンのphpを「置き換え/変更」しないことに関して、他の人たちに同意します。
質問の2番目の部分、つまりフルパスを入力する必要があることを回避するための最良の方法に基づいて、エイリアスを示唆する答えはそれと一致しています。ただし、複数のバージョンが関係している場合は、実行するバージョンを実行するためにphp以外の何かを呼び出す必要があることを意味します。
使用したいphpのバージョンを「選択」して、そのバージョンへのシンボリックリンクを作成し、使用するときにコマンドとして「php」と入力するだけのスクリプトがあります。スクリプトを入手できるブログをここに書きました。@ioCronからの回答に基づいて、各バージョンに関連付けられているさまざまな構成フォルダーを説明するために、スクリプトを再検討する必要がある場合があります。
これはOSX10.12.5ではうまくいきませんでした
/ opt / local/binにmacポートphp70をインストールしています
どのphpが示した:
/usr/bin/php
エイリアスやローカルパスなどを設定しましたが、ほとんどの場合は機能しましたが、他のプログラム(composerなど)が失敗したため、解決策は次のように追加することでした。
/opt/local/bin
/opt/local/sbin
ファイル/etc/pathsに
それからそれはすべて魅力的に働きました!
最新バージョンのMAMP(バージョン5以降)は、MAMPPHPバージョンをコマンドラインで使用できるようにする簡単な方法を提供します。サイドバーメニューで[PHP]を選択し、[このバージョンをコマンドラインで利用できるようにする]をオンにするだけです。簡単ピーシー!:)