PHPのCGI版とモジュール版の違い

PHPはHTMLと親和性が高く、Webサイト制作において現在非常に人気のある言語です。そのためレンタルサーバーにおいても、ほぼすべてのサービスでPHPの利用が可能になっています。

ただし、じつはこのPHPには「CGI版」と「モジュール版」という二種類があります。ここでは両者の違いについて簡単に解説したいと思います。なおレンタルサーバーがどちらを採用しているかは、公式サイトの機能一覧やよくある質問などのページに記載されていることが多いです。

CGI版

CGI版は実行ファイル形式とも呼ばれ、Webサーバーとは別のプロセスで実行されます。
このメリットとしては、まずセキュリティ面が挙げられます。CGI(版のPHP)を動かす各ユーザーは、Webサーバー本体を動かすユーザーとは異なります(切り離されています)。そのため誤って他ユーザーに干渉してしまうといった危険がありません。

一方デメリットとしては、Webサーバーとは別個のプロセスとして動かすぶん、実行するたびにメモリのロードが必要となり、処理作度がモジュール版に比べて遅くなります。

なお処理速度の問題を解決するためにFastCGIという仕様も存在していて、レンタルサーバーによってはこのFastCGIを採用しているところもあります。

モジュール版

モジュール版はCGI版の逆で、WebサーバーのプロセスのなかでPHPを実行してしまう方法です。現在多くのレンタルサーバーはWebサーバーにApache(アパッチ)を採用しているため、モジュール版というと、通常はApacheのモジュール版を意味します。

ただPHPがWebサーバーを動かすユーザー(root権限など)で動作するため、ユーザーが複数いる共用サーバーではセキュリティ面に不安があります。そこでモジュール版には「セーフモード」という設定があり、ユーザー間のファイル干渉を防止できるようなっています。

またモジュール版のメリットとして、WebサーバーのプロセスでPHPが実行されるため、CGI版に比べて動作速度が高速になるという点があります。

レンタルサーバーの多くはCGI版

CGIとモジュールのそれぞれに長所・短所がありますが、共用レンタルサーバーではCGI版が採用されやすいです。
※ただし近年ではモジュール版を採用しているサービスも少しずつ増えてきています。

これにはセキュリティ面の問題のほか、CGIだと各ユーザーのプロセスの負荷を計測しやすい(=過大な負荷をかけているユーザーを発見しやすい)という理由があるようです。

参考:PHP におけるモジュール版とCGI 版の比較 + WordPress の適用例 – 小粋空間

FastCGI・モジュール版を採用しているサービス

前述のとおり、モジュール版を用いるか、もしくはCGI版でも「FastCGI」を利用することによってPHPを高速化できます。

では具体的に、こうした高速化の工夫がどのレンタルサーバーで取られているかを最後に紹介しておきます。
※サーバー仕様はアップデートやリニューアル等で変更があるため、場合によっては以下の記載と異なっている可能性もあります。お申し込み前には、必ず公式サイト等でもご確認ください。

まずは個人向けのレンタルサーバーから紹介します。
なお近年広がりを見せているWebサーバー「LiteSpeed」上でPHPが動かされている場合には、多くのレンタルサーバーサービスでLiteSpeed版という呼称が用いられているため下記もそれに準じています。

  • エックスサーバー:FastCGI
  • ロリポップ!:エコノミー・ライトプランはCGI版、スタンダードプランはモジュール版、ハイスピード・エンタープライズプランはLiteSpeed版
  • ConoHa WING:LiteSpeed版

次に法人向けのサービスについてです。

負荷の高いCGIを使う予定のある方は、PHPの高速化を取り入れているサービスの利用をおすすめします。