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

PHPの「アプリケーションサーバー」について

More than 1 year has passed since last update.

Webサーバーの3構造の「Webサーバー」「アプリケーションサーバー」「データベースサーバー」についてなのですが、Javaにはtomcatという「アプリケーションサーバー」があり、RubyにはRuby用の「アプリケーションサーバー」があります。

ですが、PHPには「アプリケーションサーバー」が存在していないことに気づき「なぜないのだろう?」とずっと疑問に思っていたのですが、解決したのでまとめておきます。

PHPのアプリケーションサーバー

今までは、Apachaを使っていましたがApacheにはモジュールを追加することでアプリケーションサーバの役割を持てるようになります。それがmod_phpというモジュール。

以前は、
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php

こんな記述をして設定していたわけですが、今ではPHPをインストールするだけでデフォルトで最初から記載されているのでわざわざインストールする必要がないということです。

Apacheインストール・起動

$ sudo yum -y install httpd
$ sudo service httpd start

PHPのインストール

$ sudo yum -y install php

mod_phpの設定

特に設定することはありません。
/etc/httpd/conf.d/php.conf

ここにデフォルトで記載されているからです。

Apacheを再起動

$ sudo service httpd restart

Apacheを使う場合はこんな感じで大丈夫です。

CGIを使う場合

CGIとは

Common Gateway Interfaceは、ウェブサーバ上でユーザプログラムを動作させるための仕組み。現存する多くのウェブサーバプログラムはCGIの機能を利用することができる。 ウェブサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者の要求に応じて送り返すことである。

https://ja.wikipedia.org/wiki/Common_Gateway_Interface

FastCGIとは

FastCGIとは、Webサーバ上でユーザプログラムを動作させるためのインタフェース仕様の一つである。CGIの問題を解決するためにOpenMarket社によって1990年代中頃に開発されたもので、仕様は公開されている。

https://ja.wikipedia.org/wiki/FastCGI

PHP-FPM とは

FPM ( FastCGI Process Manager ) は PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。

http://php.net/manual/ja/install.fpm.php

CGIについてまとめると

PHPはphp-fpmという別のプロセスを後ろで動かしておいて、Webサーバーに来たリクエストをそっち側に転送したりする。別のプロセスで動いているので、切り離されている別々の道とイメージしたら良いかと思う。

だけど、必ずしも同じWebサーバー内とは限らないので「Apache+mod_php」の場合は一元化されているが、CGIは別のプロセスなので切り離すこともでき、別々のサーバーを用意できたりする。

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
ユーザーは見つかりませんでした