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

PHP-fpmの環境設定するにあたって理解出来るように仕組みについて調べてみた!

どうもUT(@ut_1029)です。ブログ(UTの日常)の紹介です。
PHP-fpmでプログラミングしているとあまり気にしていなかったんですが、PHP-fpm環境構築設定などするにあたり、何も知らないなぁっと自分で感じたので、基本的なことを調べることにしました。

これまでは、PHPの設定とかは
ただググってとりあえず動けばOK
って感じでした。

でも、
細かなチューニング正しい設定となるとお手上げでした。。。

それで
少しでも理解できればと思い本記事を書きました。

今回、以下の事を中心に調べてみました。

  • PHP-fpmってなに?
  • CGIとかFastCGIってなに?
  • PHP-fpmはPHPと何が違うの?
  • NginxとPHP-fpmの連携ってどうなってるの?

などなど。

では、
PHP-fpmで知っておくべき知識について
まずはこちらから紹介します。

PHPとは

PHP : Hypertext Preprocessor
Webシステムの作成によく使われるプログラム言語のひとつ。

ポイントは

pointプログラミング言語だよ
pointスクリプト言語だよ
pointWeb系のプログラムを作るときによく使われるよ

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

広く使われているオープンソースの汎用スクリプト言語です。
PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。
PHP: PHPとはなんでしょう?

あと、
PHPの詳しい動作について書かれている記事がありましたので、紹介しておきます。

知っていますか?あなたの書いたPHPのコードが実行される4つのプロセス

ちなみに
PHPは、インタープリタ言語コンパイラ言語どちらでしょうか?

正解は、
インタープリタ言語
です。

コンパイラ言語

コンパイラ言語は、プログラム作成後にコンパイルを行う必要があります。

インタープリタ言語

インタープリタ言語は、プログラムを実行する度の機械語へ変換されます。
なので、コンパイルを行うこと必要がありません。

また
PHPには、モジュール版CGI版の二種類があります。

これが、
PHP-fpmPHPの違いの第1歩です。

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

CGI版

Webサーバとは別のプロセスで実行される。

Webサーバとは別プロセスで動作ということは、実行する度にメモリのロードが必要となります。
その為、動作速度がモジュール版に比べて遅くなります。

モジュール版

WebサーバのプロセスのなかでPHPを実行する方法。
CGIに比べて動作速度が高速になります。

CGIとは

Common Gateway Interface の略。

すごくかみ砕くと
ホームページでプログラムを動かすための仕組み
だそうです。

つまりは

  • 掲示板サイト
  • ショッピングサイト

など
は、CGIの仕組みでプログラムを動かしているWebサイトになります。

ポイントは、

  • pointWebサーバ上でプログラムを動かすための仕組みだよ
  • pointWebサーバ上で(クライアントからの要求に応じて)動くプログラムを指していることもあるよ
  • point動的にページを生成して返すよ

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

FastCGIとは

CGIの改良版で
Webサーバのプログラムを一度起動させたら、しばらくメモリ上へ保持し待機させる仕組み
だそうです。

一度起動させたプログラムを待機させることで
プログラムの起動や終了の処理を軽減させ、Webサーバの負荷軽減が期待できます。

一定期間待機しているプログラムはメモリ上に展開されます。

この用語のポイント

  • pointCGIの改良版だよ
  • point一度動き出したプログラムは、しばらくメモリ上に待機させるよ
  • point起動/終了処理が減る分、CGIと比較して、処理の高速化と負荷の軽減が見込めるよ

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

続きは、ブログ(UTの日常)で!!

PHP-fpmの環境設定するにあたって理解出来るように仕組みについて調べてみた! | UTの日常

ut_1029
はじめまして、UTと言います。Web関係のエンジニアをしております。 自分の技術備忘録としてQiitaを利用させてもらっています。 ※今は自分のブログを作ったので、そちらで記事を書いています。  また、過去の記事は自分のブログへ移しました。 詳しいプロフィールについては、こちらから! https://uteee.com/profile/644/
https://uteee.com
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