PHPのモジュール版とCGI版の違いを簡単に説明するよ

最近では、ロリポップ!のように CGI版 (CGIモード) と モジュール版 (モジュールモード) を選択可能なレンタルサーバーも少なくありません。他にもPLESKを採用しているレンタルサーバーであれば、簡単に切り換えることができるでしょう。

CGI版には FastCGI と呼ばれる仕様もあるため、併せて説明します。おそらく、ほとんどのレンタルサーバーではFastCGIが採用されているはずです。

ここでの説明はあくまでも概略的なイメージです。詳細な説明はなくセキュリティや負荷的な内容についても省いています。

イラストと併せて説明します。

CGI版はPHPの処理が必要となるたびに起こされ、仕事を終えると再び眠ってしまいます。モジュール版であれば、Apache (Webサーバー) の内部で処理が行われるため、わざわざPHPを起こす手間が省けます。このPHPを起こす部分が処理時間の差となります。

もちろんモジュール版が効率的に処理されることになり、処理時間も短くなります。

FastCGIはCGI版とモジュール版の中間にあるような仕組みです。基本的にはCGI版と同様に必要なときに起こされます。しかし、仕事が終わってもしばらくは起きています。起きている間に新しい仕事が発生すれば、即座に対応できます。ただし、ずっと起きているわけではなく、しばらくすると眠ってしまいます。起きていられる時間は設定次第です。

つまり、FastCGIはCGI版より効率的に動作しますが、モジュール版には及びません。

ざっくりと説明しましたが、レンタルサーバー選びでモジュール版とCGI版を気にする必要はあまりありません。モジュール版に対応していたところで、サーバー自体の性能が低ければ意味がないからです。