ホームページ >バックエンド開発 >PHPチュートリアル >Yii2 8日目 複数バージョンのPHPの設定
Yii2 の最小要件は PHP5.4 ですが、現在多くのスペースやホストでは、PHP バージョンは依然として 5.3 以下のままです。現時点では、次の 2 つの選択肢があります:
PHP バージョンをアップグレードしてから、より上位のバージョンの PHP をインストールするこのサーバー上で既にサイトが実行されている場合、むやみに PHP バージョンをアップグレードすると、古い機能が使用されたり、非対応の機能が使用される可能性があります。 PHP の標準的な使用法 プログラムが大量の警告やエラーを報告した場合、それを回避する方法はありません。安全を期すために、より保守的なバージョンの PHP をインストールすることをお勧めします。では、Nginx または Apchce が異なるバージョンの PHP を使用している場合はどうなるでしょうか?それが PHP-FPM です。
FastCGI Process Manager、FastCGI プロセス マネージャーです。 PHP-FPM モードを使用して PHP サイトを構成する場合、リクエストのプロセスは次のとおりです (Nginx+PHP-FPM を例にします):
PHP-FPM はリスニングを開始します。通常、デフォルトは 9000 であるため、多くの Nginx 構成には Fastcgi が含まれます。 -pass 127.0.0.1:9000 ブラウザはリクエストを Nginx アプリケーション サーバーに送信し、FastCGI プロセスが PHP スクリプトを処理した後、Nginx は PHP リクエストをアプリケーション サーバーに返します。ブラウザに。したがって、異なるサイトで異なる PHP バージョンを使用できるようにするには、リクエストを異なる PHP-FPM プロセスに転送します。
対応するバージョンの PHP コードをダウンロードし、別のパスにコンパイルしてインストールし、できるだけ多くの拡張機能を追加します:
<!-- lang: shell -->./configure --prefix=/usr/local/php-5.5 --with-config-file-path=/usr/local/php-5.5/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-bz2 --with-curl=/usr/bin --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --with-mcrypt=/usr/bin --enable-zip --enable-soap --enable-mbstring --with-gd --with-openssl --enable-pcntl --with-xmlrpc --enable-opcache
Yii2 は mcrypt を使用するため、?with-mcrypt が追加されますが、そうでない場合はインストール後この場合、構成時に「mcrypt.h が見つかりません」などのエラーが報告され、システムにこのライブラリが実際に存在するため、最初に yum install libmcrypt mcrypt mhash Configure を使用して再度インストールする必要があることが示されます。
インストール後、php-fpm.conf を開き、リスニング ポートを変更するか、sock ファイル名を変更して、古いバージョンの PHP-FPM プロセスとの競合を防ぎます。次に、php-fpm プロセスを開始します。
主なことは、対応するリスニング ポートまたは Sock ファイルを指すように FASTCGI_PASS を変更することです。