ホームページ > バックエンド開発 > PHPの問題 > php -v と phpinfo() によって出力される PHP バージョンが一致しないのはなぜですか?

php -v と phpinfo() によって出力される PHP バージョンが一致しないのはなぜですか?

藏色散人
リリース: 2023-03-04 14:14:01
オリジナル
4603 人が閲覧しました

システム自体の php バージョンと新しくインストールされた php アドバンスト バージョンが同時に存在し、ターミナルと phpinfo によって読み込まれるファイルの場所が一致しないため、php バージョンが一致しません。解決策は、次のようにします。上位バージョンのphpをインストールディレクトリに追加 上位バージョン「php-fpm」のインストールディレクトリも端末設定ファイルに追加されます。

php -v と phpinfo() によって出力される PHP バージョンが一致しないのはなぜですか?

推奨: 「PHP ビデオ チュートリアル

問題は、システムに付属している PHP のバージョンと、新規インストール php の上級バージョンが同時に存在し、ターミナルと phpinfo() によってロードされるファイルの場所が一致しません。

その中で、phpinfo() を解析する

nginx サービスは php-fpm に依存しているため、phpinfo() の出力は php-fpm によって開始されたバージョンになります。ターミナルで

php -v

を実行すると、ターミナル構成ファイルに設定された php インストール ディレクトリに対応する php バージョンがロードされます; したがって、2 つの php バージョン間の不一致の主な原因は

started php-fpm バージョンは、ターミナル

に設定されているphpのバージョンと一致しません。 直接的な解決策は、高バージョンの php インストール ディレクトリの下に高バージョンの php-fpm インストール ディレクトリを端末設定ファイルに追加して、システムが高バージョンの php-fpm を自動的にロードできるようにすることです。

簡単な解決策:

Configuration~/.bash_profile:

export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}
ログイン後にコピー
ログイン後にコピー

システムが zsh を使用している場合は、

~/.zshrc## の最後に zsh を追加します。 # ファイル :

source ~/.bash_profile
ログイン後にコピー
ログイン後にコピー
次に、
source ~/.zshrc
ログイン後にコピー

を実行して構成を有効にし、php-fpm

sudo killall php-fpm
ログイン後にコピー
ログイン後にコピー
sudo php-fpm -D
ログイン後にコピー
ログイン後にコピー

特定のプロセス:

を再起動します。

1. 現在の PHP バージョン

php -v
ログイン後にコピー

を確認し、次の出力を取得します:

PHP 7.2.23 (cli) (built: Oct 10 2019 10:15:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies
ログイン後にコピー

2. PHP のインストール場所

which php
ログイン後にコピー

または

whereis php
ログイン後にコピー
# を確認します。 ## そして、次の出力を取得します:

/usr/local/Cellar/php@7.2/7.2.23/bin/php
ログイン後にコピー

3. php-fpm のバージョンとインストール場所を確認します

php-fpm -v
ログイン後にコピー

次の出力を取得します:

PHP 5.6.30 (fpm-fcgi) (built: Oct 29 2017 20:31:21)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
ログイン後にコピー
which php-fpm
ログイン後にコピー

次の出力を取得します。

/usr/sbin/php-fpm
ログイン後にコピー

上記を確認した結果、php によってロードされたインストール ディレクトリは新しくインストールされた php の高度なバージョンであり、php-fpm は依然として Mac システムに付属する下位バージョンであることがわかりました。新しいバージョンの php のインストール場所はシステムのターミナル設定ファイルで設定されていますが、php-fpm は設定されていません。インストール場所により、php-fpm の起動時にシステムの下位バージョンの php-fpm が自動的にロードされます。フレームワークは上位バージョンの php に依存しているため、実行されません。

4. php-fpm ローディング ディレクトリの新しいバージョンを設定します

Configuration

~/.bash_profile

:

export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}
ログイン後にコピー
ログイン後にコピー

システムが zsh を使用している場合は、 ~/.zshrcファイルの最後に

source ~/.bash_profile
ログイン後にコピー
ログイン後にコピー

を追加するか、~/.zshrc ファイルに上記のパス構成を直接設定します。

次に、source ~/.zshrc を実行して設定を有効にします

5. 現在の php-fpm バージョンを確認します<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">(base) qingshan@qingshan  ~  php-fpm -v PHP 7.2.23 (fpm-fcgi) (built: Oct 10 2019 10:15:34) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies</pre><div class="contentsignin">ログイン後にコピー</div></div>上位バージョンphp の -fpm が自動的にロードされました。

6. php-fpm を再起動します

バックグラウンドで実行されている php-fpm プロセスを終了します

sudo killall php-fpm
ログイン後にコピー
ログイン後にコピー

php-fpm を起動し、バックグラウンドで実行します:

sudo php-fpm -D
ログイン後にコピー
ログイン後にコピー

現時点でphpinfoで出力されるPHPバージョン情報は最新バージョン7.2

です

以上がphp -v と phpinfo() によって出力される PHP バージョンが一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート