Phpコンソールとphpinfoバージョン番号が一致しません

4540 ワード

本来はそのSublime Text 3がいくつかの例を走っていたが、フォーマットプラグインphpfmtをインストールして保存すると、現在のPHPバージョンが低すぎることがヒントになり、アップグレードを考えてアップグレードしようとしたので、ピットに連れて行かれた...
PHPアップグレード
MacはPHPを持参しているようですが、バージョン番号照会:php -v
#   php   
$ php -v
PHP 5.5.38 (cli) (built: Oct 29 2017 20:49:07)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
PHP5PHP7は2つの大きなバージョンで、その中で異なるのは自分でネット上で探します
アップグレードというのは、実は再インストールですが、ソースコードのインストールは面倒です.ここには簡単な点があります.
#   PHP7,         
curl -s http://php-osx.liip.ch/install.sh | bash -s 7.2

最後にインストールされたディレクトリは:/usr/local/php5-7.2.2-20180201-132629額~~、よし、なぜphp5-7.2.2なのか...
そしてインストール後、/usr/local/php5のリンクが/usr/local/php5-7.2.2-20180201-132629を指しているはずです.PHPの多くの場所が/usr/local/php5のディレクトリを指していると推測しています.
$ ll /usr/local/
drwxr-xr-x   15 root        wheel   510B  4 12 19:31 php5-7.2.2-20180201-132629
lrwxr-xr-x    1 xuyinglong  wheel    37B  4 12 18:48 php5 -> /usr/local/php5-7.2.2-20180201-132629
#          
$ /usr/local/php5-7.2.2-20180201-132629/bin/php -v
PHP 7.2.2 (cli) (built: Feb  1 2018 13:23:34) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.2, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

大丈夫そうだ/usr/bin/phpを最新の
#     
$ whereis php
/usr/bin/php

#    
$ sudo /usr/bin/php /usr/bin/php5.5

#       ,   window       
$ sudo ln -s /usr/local/php5-7.2.2-20180201-132629/bin/php /usr/bin/php

そしてphp -vは7.2.2バージョンであることがわかります
PHPの例を走る
定番はもちろん:test.php


ええと、直接走ることはできません.この部分をnginxに配置して、sudo nginx -s reloadを再起動します.
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
    include        fastcgi_params;
}

上のtest.phpnginxインストールディレクトリの下のhtmlフォルダの下に置いて、それからブラウザの中でアクセスします:http://localhost/test.php幸運であれば、PHP関連のバージョンと配置などの情報を見ることができます
待って、php-fpmを起動するのを忘れたのではないでしょうか.今のPHPphp-fpm付きです(PHP 5.3.3の後にモジュールを変更しました).ええ、これは何ですか.文末の参考を見てください.php-fpmを直接実行するのはプロファイルがないことを示すようですね./etc/private/etcのディレクトリの下にphp-fpm.confのファイルがあります.では、1つ指定しましょう.
$ php-fpm --fpm-config /private/etc/php-fpm.conf

ええ、引き続き間違いを報告して、ヒント/usr/var/log/php-fpm.logディレクトリは存在しません.はい、ここで経路を修正します.
$ vim /private/etc/php-fpm.conf

#           ,               mkdir -p /usr/local/log
error_log = /usr/local/log/php-fpm.log

はい、再稼働で成功しました
そこでブラウザのhttp://localhost/test.phpリンクを再更新し、PHP関連の額情報を見ることができますが、バージョン番号とコンソールが間違っていますね...
コンソールとWeb側のバージョン番号が一致しません
ええ、この問題はネット上でたくさんの資料を調べました...最終的には外国人が大体の内容を頼りにしています.
  • php -v-phpのバージョン番号
  • を示すコンソールコマンド
  • phpinfo()-これはWebサーバによって表示されるPHP情報
  • である.
  • -Webサーバはphp-fpmを介してphpに関連付けられ、php-fpmが指すphpこそページ表示の情報である.phpphp-fpmはいつも1対1で、自分のバージョンは自分の対応するパートナーを探せばいい
  • Apachephp5_moduleモジュールがphp版と異なる本来の対応配置を検討しているのを見て考えました
    ソリューション
    何が起こっているのかが分かれば問題を解決できます.見てみましょう.
    $ php-fpm -v
    PHP 5.5.38 (fpm-fcgi) (built: Oct 29 2017 20:49:27)
    Copyright (c) 1997-2015 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
    
    php-fpmを最新に交換しています
    #     
    $ whereis php-fpm
    /usr/sbin/php-fpm
    
    #   
    $ sudo mv /usr/sbin/php-fpm /usr/sbin/php-fpm5.5
    
    #       
    $ sudo ln -s /usr/local/php5-7.2.2-20180201-132629/sbin/php-fpm /usr/sbin/php-fpm
    
    php-fpm -vを再実行すると、最新の7.2.2バージョンが表示されます.ブラウザのリフレッシュでは、最新の7.2.2バージョンが表示されるはずです.
    (nginxを再起動する必要があるかどうか忘れました)
    について述べるnginx:php -vphp-fpm -vはペアであるべきで、交換するには一緒に交換すべきであることを覚えておいてください.apache:同様に、phpが複数バージョンインストールされている場合は、php5_moduleモジュールも対応する必要があります.
    最後のSublime Text 3の中は自動的に使いやすくなりました