Web サーバー上で PHP スクリプトを実行するには複数の方法があります。これらのモードの違いについてよく質問されるので、ここで説明します。
Linux クラウド ホスティング製品群全体で、最も一般的な 3 つの PHP ハンドラーを提供しています。
それぞれには独自の長所と短所があります。
mod_php を使用して Web サーバー上で PHP スクリプトを実行するのは、お客様が使用する最も一般的な方法であり、最近まで、新しい Web スペースを作成するときに設定するデフォルトのモードでした。
mod_php を使用すると、サーバー上で生成される各 Apache プロセスに PHP インタープリターが埋め込まれます。これにより、すべての Apache ワーカーが PHP スクリプト自体を処理および実行できるようになり、外部プロセスを処理する必要がなくなります。 CGI や FastCGI とは異なります。これは、すべてのリクエストを Apache で処理できるため、多くのリクエストに PHP コードが含まれる可能性が高い「PHP 負荷の高い」サイト (WordPress、Drupal、Joomla など) で非常に役立ちます。
インタープリターは Apache とともに起動されるため、特定の情報をキャッシュでき、スクリプトが実行されるたびに同じタスクを繰り返す必要がないため、非常に高速に実行できます。
これの欠点は、PHP インタープリターが組み込まれているため、より多くのシステム リソースが必要となるため、各 Apache プロセスのフットプリントが大きくなることです。 PHP コードを実行する必要のない画像、テキスト、スタイル シートなどの静的コンテンツを提供する場合でも、プロセスには PHP インタープリターが含まれます。
長所
短所
CGI アプリケーションで PHP スクリプトを実行するのは、Web サーバー上でアプリケーションを実行する従来の方法であり、非常に非効率で、ほとんど使用されません。元々は 1990 年代に導入されましたが、非常に小規模なサイト以外で使用するには非効率すぎると考えられていました。
CGI でアプリケーションを実行する利点は、コードの実行が Web サーバーから分離され、セキュリティ上の利点がいくつか追加されることです。たとえば、FastCGI 経由で実行されるバグのある、または安全でない PHP スクリプトは、ホストされているドメイン外の他のファイルを破損したり、セキュリティに影響を与えたりすることはできません。これは、PHP インタープリターが必要な場合にのみ呼び出されるため、静的コンテンツを Web サーバーのみで提供できることも意味します。
CGI サポートを使用して PHP を実行する非効率性は、PHP コードを実行する必要があるたびに新しいプロセスを作成する必要があることから発生します。ご想像のとおり、負荷の高いサイトや PHP ベースのアプリケーションでは、非常にリソースを大量に消費する可能性があります。
このモードを使用しているレイヤーシフト顧客はほとんどいないため、お勧めしません!
長所
短所
FastCGI で PHP スクリプトを実行する場合、各リクエストは通信ソケットを介して Web サーバーから FastCGI に渡されます。これにより、必要に応じて Web サーバーと PHP インタープリターを独自の個別のサーバー環境に分割できるため、スケーラビリティが大幅に向上します。ただし、Apache の前で nginx を使用しても同様の最終結果を達成できます (nginx 自体が基本的なリクエストを処理し、動的リクエストのみを Apache に渡すなど)。そのため、この点だけで特定のシナリオの理想的な選択を決定することはできません。
Plesk 環境では、FastCGI はドメイン FTP ユーザーとして実行され、最新バージョンの Plesk パネルを実行するすべての Linux サービスで提供されるデフォルトの PHP ハンドラーです。
FastCGI サポートで PHP を実行する場合の欠点は、
.htaccess で定義された PHP ディレクティブが使用されないことです。 回避策として、カスタム php.ini ファイルを使用してドメインごとに PHP ディレクティブを設定することが可能です。任意の Plesk パネル サーバー
長所
短所
小規模なサイトでは、通常、どの PHP サポート モードが必要かを決定するのは個人的な好みになります。 CMS アプリケーション (WordPress、Drupal、Joomla など) を実行している顧客は、FTP スクリプトと PHP スクリプトに同等のアクセスを許可する FastCGI を好む傾向がよく見られます。つまり、CMS 内のファイルのアップロードと編集機能は、特別なことをしなくても広告どおりに動作します。ファイル権限の設定
これは、非常に複雑で奥深い問題の概要にすぎません。決定をお知らせするために主な考慮事項をいくつか紹介しましたが、各サイトはそれぞれ異なるため、さらに詳しいガイダンスが必要な場合はサポート チームにお問い合わせください。 Plesk を使用して PHP ハンドラーを変更する方法の詳細については、付随するナレッジベース記事を参照してください。
翻訳:http://blog.layershift.com/what-php-mode-apache-vs-cgi-vs-fastcgi