Webシステム開発の基本形は、やはり「LAMP環境」です。
もちろん、ベテランエンジニアからすると、いやいや時代の先端は「MEAN環境」だ、とか、次世代言語の登場で「LAMP環境」は消滅、または変容する、という意見もあるかもしれません。しかし、実態として「LAMP環境」で動作しているWebシステムは多くあります。また、今現在、「LAMP環境」で開発進行中の案件もたくさんあります。
さらにいうと、「MEAN環境」を含めて、多くのWebシステム開発環境が「LAMP環境」との比較で語られることが多く、「LAMP環境」が分かっていないと、概念理解にも戸惑うことになりがちです。
という訳で、今回は、Webシステム開発、初心者の方を特に意識して、「LAMP環境」について詳しく解説したいと思います。
そもそもWebシステムとは?
LAMP環境とは、簡単に言えば「Webシステムの構成パターン」です。従って、LAMP環境について理解するためには、“Webシステムの仕組み”について知っておかなくてはなりません。
ところで、Webシステムの肝となるWebサーバがWebサーバとして動作するための“構成要素”ってなにがありますか?
真っ先に思い付くのは基本ソフト、いわゆる、“OS”ではないでしょうか? OSが入っていないサーバは、ただの鉄の箱でしかありません。OSがインストールされることで、初めてサーバはサーバとして起動することが可能となります。
次に重要なのは、ミドルウェアといわれるアプリケーション群です。サーバがサーバと言われるのは、「クライアント(パソコンやスマホ)からのサービス要求を処理するための仕組みを持っているから」ですが、OSがインストールされただけでは、サーバとしての役割を果たすことができません。なぜなら、素のOSには「クライアント(パソコンやスマホ)からのサービス要求には、こういう風に処理しなさい」という指示が入っていないのです。
では、「クライアント(パソコンやスマホ)からのサービス要求は、こういう風に処理しなさい」という指示はどうやってサーバに実装されているのか? というと、それがミドルウェアになります。WebサーバであればWebサーバ用のミドルウェアを、DBサーバならばDBサーバ用のミドルウェアをインストールしておく必要があります。
一つ勘違いして欲しくないのは、ミドルウェアは、あくまで仕組みを定義したアプリケーション群であって、Webページやデータ本体は含まれていません。つまり、Webサーバがクライアントに提供する、HTMLなどの“正味のWebページ情報”はミドルウェアに含まれません。ミドルウェアとはまた別に、用意・作成する必要がある、という訳です。
さて、長くなったので、いったんまとめると、Webサーバの構成要素は以下の通りになります。
①OS(基本ソフト):これがないと、サーバはただの箱。
②ミドルウェア: Webサーバの振舞い方を定義しているアプリケーション群。
③正味のデータ:HTMLなどの形式で作られた、ページ本体。
ここまでは大丈夫でしょうか? 大丈夫だと信じて、次のステップに進みます。
実は、上記の三つの構成要素を持ったWebサーバを立てただけでは、Webシステム開発としては不十分です。なぜならば、Webサーバだけでは、静的ページと言われる“決まったWebページをクライアントの要求通り配信すること”しかできないためです。
例えば、「買い物かご」や「ユーザーログイン」など必要に応じて画面への出力結果が異なるページ(いわゆる、動的ページ)を持った、Webシステムを作るためには、Webサーバだけでなく、DBサーバも必要になります。DBサーバがユーザーID“XXX”の人のパスワードは“1234”で、その人の買い物かごには、“ミカンが三個”入っている、という情報を管理し、必要に応じてWebサーバに“協力”することで「ログイン成功です」や「ログインできません」と表示できるWebシステムになるのです。
そして、クライアントから送られたデータ、(例えば、ユーザー名とパスワード)をどういう風に処理するのか、DBサーバからもデータを貰って、突き合わせて確認するのか、それとも、送られたデータを検証して、DBサーバに保存してもらうのか、といったロジックを作成するのにプログラミングが必要になります。
つまり、実際のWebシステムの構成要素としては以下となります。
①OS(基本ソフト):これがないと、サーバはただの箱。
②Webサーバ用のミドルウェア:Webサーバの振舞い方を定義しているアプリケーション群。
③DBサーバ用のミドルウェア:DBサーバの振舞い方を定義しているアプリケーション群。
④プログラム:クライアントの要求(送られた情報)に応じて、WebサーバとDBサーバ間で協力させて、適切なWebページをクライアントに送れるようにする。
ちなみに、WebサーバとDBサーバは別の筐体・OSである必要はありません。別の筐体にするか、一つのOS上に併存させるかは、資源管理(CPUやメモリなどの筐体性能など)の観点で決めることです。ですので、Webサーバと呼ばれている筐体が、実はDBサーバとしても機能している、ということがよくあります。気になる続きは👇👇👇
他にも『techcareer magazine』では
エンジニアやクリエイターの人生やキャリアのお役立ち情報を配信中!