Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

PHPにはモジュール版とCGI版が存在する。その場合の違いをまとめる。

説明

CGI版

実行ファイル形式とも呼ばれ、Webサーバーとは別のプロセスで実行される。
このメリットとしては、まずセキュリティ面。CGI(版のPHP)を動かす各ユーザーは、Webサーバー本体を動かすユーザーとは異なる。つまりは、アプリケーションサーバとwebサーバーが別に存在する状態となる。そのため誤って他ユーザーに干渉してしまうといった危険がない。また、副次的な効果としてサーバの複数台運用の際に依存が少ないことによる移行しやすさがある。
一方デメリットとしては、Webサーバーとは別個のプロセスとして動かすぶん、実行するたびにメモリのロードが必要となり、処理作度がモジュール版に比べて遅くなる。
なお処理速度の問題を解決するためにFastCGIという仕様も存在していて、レンタルサーバーによってはこのFastCGIを採用しているところもある。

モジュール版

CGI版の逆で、WebサーバーのプロセスのなかでPHPを実行してしまう方法。現在多くのレンタルサーバーはWebサーバーにApache(アパッチ)を採用しているため、モジュール版というと、通常はApacheのモジュール版を意味。
ただPHPがWebサーバーを動かすユーザー(root権限など)で動作するため、ユーザーが複数いる共用サーバーではセキュリティ面に不安がある。そこでモジュール版には「セーフモード」という設定があり、ユーザー間のファイル干渉を防止できるようになっている。またモジュール版のメリットとして、WebサーバーのプロセスでPHPが実行されるため、CGI版に比べて動作速度が高速になるという点がある。

一言でまとめると

モジュール版

Apache の拡張機能で直接処理する方法

CGI版

Apache で直接処理せず、CGI プログラムを別途起動して処理する方法

補足情報

モジュール版の欠点として

ユーザーが複数いる共用サーバーではセキュリティ面に不安がある

と書いたが、これは複数のユーザで一つのミドルウェア(Apache)を利用することによることが要因。そのため、共用サーバーでは導入がためらわれる時もある。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした