ホームページ  >  記事  >  バックエンド開発  >  Yii2 8日目 複数バージョンのPHPの設定

Yii2 8日目 複数バージョンのPHPの設定

WBOY
WBOYオリジナル
2016-06-23 13:39:441051ブラウズ

原因

Yii2 の最小要件は PHP5.4 ですが、現在多くのスペースやホストでは、PHP バージョンは依然として 5.3 以下のままです。現時点では、次の 2 つの選択肢があります:

PHP バージョンをアップグレードしてから、より上位のバージョンの PHP をインストールする

このサーバー上で既にサイトが実行されている場合、むやみに PHP バージョンをアップグレードすると、古い機能が使用されたり、非対応の機能が使用される可能性があります。 PHP の標準的な使用法 プログラムが大量の警告やエラーを報告した場合、それを回避する方法はありません。安全を期すために、より保守的なバージョンの PHP をインストールすることをお勧めします。では、Nginx または Apchce が異なるバージョンの PHP を使用している場合はどうなるでしょうか?それが PHP-FPM です。

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 をコンパイルします

対応するバージョンの 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 を設定する

インストール後、php-fpm.conf を開き、リスニング ポートを変更するか、sock ファイル名を変更して、古いバージョンの PHP-FPM プロセスとの競合を防ぎます。次に、php-fpm プロセスを開始します。

サイト構成を変更する

主なことは、対応するリスニング ポートまたは Sock ファイルを指すように FASTCGI_PASS を変更することです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。