macOS で PHP バージョンを使用して PHP バージョンを切り替える方法を理解する

coldplay.xixi
リリース: 2023-04-09 06:22:02
転載
3067 人が閲覧しました

macOS で PHP バージョンを使用して PHP バージョンを切り替える方法を理解する

ローカル環境は 7.1 で、会社のプロジェクト環境と一致していますが、laravel6.0 のアップグレードには 7.2 が必要です (グループ内の友人のローカル環境は 7.2 であり、コードを作成した後、プロジェクトの開発環境を自動的にデプロイすることはできません) よく考えてみると、PHP バージョンの切り替えを容易にするために何かをローカルで入手する必要があります。

方法 1. valet use php@version を使用します (環境をセットアップするために valet を使用している友人は、ここをお読みください)

これは、実際には私が読んでいなかったためです。ドキュメントを注意深く読んでください - -、以前は valet の基本的な使い方を大まかにしか学んでいません - -、ドキュメントを注意深く読めば、半日を節約できます - -

Valet を使用すると # を使用できます##valet use php@version PHP バージョンを切り替えるコマンド。指定されたバージョンがインストールされていない場合、Valet は Brew を通じて指定された PHP バージョンをインストールします:

valet use php@7.2
valet use php@7.1
ログイン後にコピー
ただし、これは valet の新しいバージョンである必要があり、最初にアップグレードする必要があります。そうでない場合は、エラーが報告されます。 、次のように

[qian@bogon ~ ]$ valet use php@7.2
  Command "use" is not defined.
ログイン後にコピー

Valet アップグレード:

ターミナルでコンポーザー グローバル アップデート コマンドを使用して、Valet を更新できます。アップグレード後、必要に応じて、Valet が構成ファイルをアップグレードできるように、valet install を再度実行することが最善です (実際には、それが必要であることがわかっています)。

composer global update
valet install
ログイン後にコピー

青色以降は問題ありません

valet use php@7.2

[qian@bogon ~ ]$ valet use php@7.2
Stopping php@7.1...
Unlinking current version: php@7.1
Linking new version: php@7.2
Updating PHP configuration...
Restarting php@7.2...
Restarting nginx...
Valet is now using php@7.2.
ログイン後にコピー

方法 2: php-version をインストールします (valet を使用しない場合は、これをインストールします) Yes である必要があります)

ステップ 1. brew を使用して複数の php バージョンをインストールします

brew install php71 // 元々持っている場合は必要ありません
brew install php72

ステップ 2. php-version をインストールする brew コマンドが無効であることがわかった場合は、手動でインストールします。

[qian@bogon ~ ]$ mkdir $HOME/.local
[qian@bogon ~ ]$ cd $HOME/.local
[qian@bogon .local ]$ git clone https://github.com/wilmoore/php-version.git
[qian@bogon .local ]$ source $HOME/.local/php-version/php-version.sh
//测试  查看当前php版本
[qian@bogon .local ]$ php-version
* 7.1.18
 7.2.22
ログイン後にコピー

ここで環境変数を追加します

[qian@bogon ~ ]$ echo "source $HOME/.local/php-version/php-version.sh" >> ~/.zshrc
[qian@bogon ~ ]$ source ~/.zshrc
ログイン後にコピー

PHP バージョンの切り替え

php-version 7.1
或
php-version 7.2
ログイン後にコピー

コマンド ラインを使用して、既に切り替えられたバージョンである

php -v と入力します。


トラップ レコード

#1. 初めて brew を使用して php72 をインストールするとき、権限が不十分なので Frameworks ディレクトリを作成できません。

次の場合にエラーが報告されます。初回実行

==> Pouring python-3.7.4_1.mojave.bottle.tar.gz
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
ログイン後にコピー

次に、/usr/local/に移動して、新しいディレクトリFrameworksを作成し、再度実行します

brew install php72

2. brewを使用して、 php-version ツールをインストールしてください。コマンドは無効です

brew install php-versionエラーが発生しました

[qian@bogon ~ ]$ brew install php-version
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
atomist-cli                              webtorrent-cli

Error: No available formula with the name "php-version"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.
ログイン後にコピー

「」というものは存在しないと言われましたphp-version" に "homebrew/core" も入れました。

git -C "$(brew --repo homebrew/core)" fetch --unshallow
ログイン後にコピー

3 を実行します。

php -vTimes dyld を実行します: ライブラリがロードされていません: /usr/local/opt/icu4c/ lib/libicui18n.61.dylib
[qian@bogon ~ ]$ php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
[1]    66728 abort      php -v
ログイン後にコピー

とにかく、Dafa

brew uninstall --force php71 && brew install php71
ログイン後にコピー

4 を再インストールします。php-version はバレット環境では動作しません


valet を使用する友達がいないので、以下を読む必要はありません。わかりました~

上記の方法と同じで、php-version がインストールされており、

php -v も # に直面しています## しかし。 。 。 。 sudo pkill -INT -o php-fpm
sudo kill -9 process id, のどちらを使用するかに関係なく、php-fpm プロセスを強制終了することはできません。 #ps -ef | grep php プロセスを確認します:

[qian@bogon ~ ]$ ps -ef |grep php
  501   307     1   0 四09上午 ??        51:34.33 /Applications/PhpStorm.app/Contents/MacOS/phpstorm -psn_0_90134
    0 70900     1   0  2:33下午 ??         0:00.11 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize
  501 70901 70900   0  2:33下午 ??         0:00.00 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize
  501 70902 70900   0  2:33下午 ??         0:00.00 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize
  501 70904 10409   0  2:33下午 ttys007    0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn php
ログイン後にコピー
コード内で phpinfo() を出力します。切り替える前の php バージョンのままです。理由を見つけて別の方法を見つける必要があります

sudo php-fpm

Command を使用すると、報告されたエラーが valet に関連していることがわかりました

[qian@bogon ~ ]$ sudo php-fpm && php -v
Password:
[16-Sep-2019 18:27:08] ERROR: An another FPM instance seems to already listen on /Users/qian/.config/valet/valet.sock
[16-Sep-2019 18:27:08] ERROR: FPM initialization failed
[qian@bogon ~ ]$
ログイン後にコピー
関連する学習の推奨事項:初心者から熟練度までの PHP プログラミング

以上がmacOS で PHP バージョンを使用して PHP バージョンを切り替える方法を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!