PHPの「アプリケーションサーバー」について
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の設定
$ sudo yum -y install httpd
$ sudo service httpd start
$ 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の機能を利用することができる。 ウェブサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者の要求に応じて送り返すことである。
FastCGIとは
FastCGIとは、Webサーバ上でユーザプログラムを動作させるためのインタフェース仕様の一つである。CGIの問題を解決するためにOpenMarket社によって1990年代中頃に開発されたもので、仕様は公開されている。
PHP-FPM とは
FPM ( FastCGI Process Manager ) は PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。
CGIについてまとめると
PHPはphp-fpmという別のプロセスを後ろで動かしておいて、Webサーバーに来たリクエストをそっち側に転送したりする。別のプロセスで動いているので、切り離されている別々の道とイメージしたら良いかと思う。
だけど、必ずしも同じWebサーバー内とは限らないので「Apache+mod_php」の場合は一元化されているが、CGIは別のプロセスなので切り離すこともでき、別々のサーバーを用意できたりする。
Author And Source
この問題について(PHPの「アプリケーションサーバー」について), 我々は、より多くの情報をここで見つけました https://qiita.com/andrew954/items/2fa78e9f7f83bd8cb9ac著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .