LAMPスタックとは
今日の最も人気のあるオープンソースのWebアプリケーションが、長期にわたり実績のあるLinux、Apache、MySQL、PHPのスタックで使用されている理由をご説明します。
青と黒の背景
LAMPスタックとは

LAMPスタック(ソフトウェア群)について、耳にされたことがあるかもしれません。 それは当然のことです。なぜなら、 WordPressやDrupalなど、今最も人気のあるオープンソースのWebアプリケーションの一部が、LAMPで実行されているためです。

LAMPには、他にも数多くの功績があります。 かつてWeb用の最初のオープンソース・ソフトウェア群の1つであったLAMPは、今でもWebアプリケーションを配信する上で、最も一般的な手段の1つであり続けているのです。 そのように非常に幅広く使用されてきたため、業務において既存のアプリケーションを更新またはホストするときなどに、しばしばLAUPに出会う機会があったかもしれません。 現在も多くの人が、新規のカスタムWebアプリケーションを開発するための選択肢として、LAMPを検討しています。 

安定、シンプル、強力。これらはLAMPを説明する際に最もよく使われる言葉です。 これらすべてを備えたLAMPは、十分に学び甲斐があるとともに、開発者が履歴書へ記載する場合には、付加価値を加えることになります。

LAMPスタック・コンポーネント

LAMPは、Linux、Apache、MySQL、PHPの頭文字を取ったものです。 それらは共に、高パフォーマンスのWebアプリケーションを実現する、実績あるソフトウェア・セットを提供しています。 各コンポーネントは、そのスタックに次のような重要な機能を提供しています。

  • Linux:オペレーティング・システム。 Linuxは、1990年代中頃から続いてきた無料のオープンソースのオペレーティング・システム(OS)です。 今日では、業界を超えて広がる世界規模の広範なユーザー・ベースがあります。 Linux は、いくつかのオペレーティング・システムよりも柔軟性に優れ、構成オプションが多いため、一部で人気があります。

  • Apache:Webサーバー。 Apache Web サーバーは要求を処理し、HTTPを介してWeb資産を処理します。これにより、アプリケーションには、単純なWeb URLを介して、パブリック・ドメイン上で誰でもアクセスが可能です。 オープンなコミュニティーによって開発・維持されているApacheは、現在インターネット上のWebサイトでの市場占有率が高い、成熟した機能豊富なサーバーです。 

  • MySQL:データベース。 MySQLは、アプリケーション・データを保管するためのオープンソースの リレーショナル・データベース管理システム です。 My SQLでは、すべての情報をSQL言語で簡単に照会できる形式で保管することができます。 適切に構造化されたビジネス・ドメインを処理し、その構造をバックエンドに変換する必要のある場合には、SQLは最適な選択肢であるといえます。 MySQLは、大規模で複雑なサイトの実行に適しています。 SQLとNoSQLの詳細については、「SQLとNoSQLデータベース:相違点は何か?」(英語)をご覧ください。

  • PHP:プログラミング言語。 PHPのオープンソースのスクリプト言語は、Apacheと連携して、動的なWebページの作成を支援します。 データベースからデータを取り出すなどの動的プロセスの実行に、HTMLを使用することはできません。 このタイプの機能は、動的コードを作成したいページの箇所に、PHPコードをドロップするだけで提供できます。 

PHPは効率性を重視して設計されています。 それにより、プログラミングが簡単になります。さらに楽しい機能として、新しいコードを作成し、更新を押すことで、コンパイルを必要とせずに結果の変化をすぐに見ることができます。 必要に応じて、PHPを、Perl、またはますます人気が高まっているPython言語に置き換えることができます。

LAMPには、古典的な階層化アーキテクチャーがあり、最下位レベルにはLinuxが該当します。 次の層は、ApacheとMySQL、そしてPHPが続きます。 PHPは、名目上トップレベル、つまりプレゼンテーション層になりますが、PHPコンポーネントはApacheの内部にあります。

LAMPスタックの複数のエレメントが共に機能する仕組み

LAMPスタックの実行順序を精査することで、エレメントがどのように相互運用しているのかがわかります。 このプロセスは、Apache WebサーバーがユーザーのブラウザーからWebページへの要求を受信したときに開始されます。 要求がPHPファイルに対するものである場合、Apacheは、要求をPHPに移します。PHPは、ファイルをロードし、ファイルに含まれるコードを実行します。 また、PHPは、MySQLと通信をすることで、コードで参照されているデータを取り出します。 

その後、PHPは、ファイル内のコードとデータベースのデータを使用して、Webページを表示するためにブラウザーが必要とするHTMLを作成します。 LAMPスタックは、静的Webページだけでなく、動的ページの処理にも効率的です。動的ページでは、コンテンツが、ロードされるたびに、日付、時刻、ユーザーID、その他の要因に応じて、変更される可能性があります。 

ファイル・コードを実行した後、PHPは、結果のデータをApache Webサーバーに戻し、それをブラウザーに送信します。 MySQLにこの新しいデータを保管することもできます。 そしてもちろん、これらの操作はすべて、スタックの基部で実行されているLinuxオペレーティング・システムによって使用可能になります。

LAMPスタックの柔軟性

LAMPは、LinuxをOSとして使用しますが、お客様固有の要件を満たすために、他のコンポーネントを代替OSとして使用することもできます。 例えば、Microsoft Windowsを使用するWAMPスタック、Mac OSを使用するMAMP、MicrosoftからWindowsとInternet Information ServicesのWebサーバーを使用しているWIMPなどがあります。 

LAMPは、すべてオープンソースであり、非プロプラエタリーであるため、ロックインを回避できます。 特定のプロジェクト、またはビジネス要件に対応する適切なコンポーネントを柔軟に選択することができます。

LAMPは、他の方法でも柔軟性を提供します。 Apacheは、モジュール式の設計になっており、多くの異なる拡張機能に使用できる既存のカスタマイズ可能なモジュールがあります。 これらのモジュールは、他の言語サポートから認証機能まで多岐にわたります。 

LAMPのもう1つの利点は、エンタープライズで実証された、セキュアなアーキテクチャーと確立された暗号化プラクティスにあります。

LAMPスタックと開発の効率性

LAMPは、開発期間を短縮するのに役立ちます。 LAMPは、10年以上利用されてきたオープンソースのスタックであるため、今日では、実質的なLAMPのエコシステムが存在します。 過去に別の誰かが構築したものを基にビルドして、それを自分のものにすることができます。 Apacheのモジュール内の作業の80%はできあがっており、最後の20%をカスタマイズするのみであるため、結果として多くの時間が節約できます。

関連ソリューション
LAMP構成

LAMPスタックで構成されたクラシック仮想サーバーで高性能Webアプリを配信します。

LAMP構成の詳細はこちら
参考情報 リレーショナル・データベースとは

リレーショナル・データベースは、キーによって結合された複数のテーブルにわたってデータを編成します。 構造化照会言語(SQL)は、リレーショナル・データベースとのやり取りのための標準プログラミング言語です。

MEANスタックとは

MEAN(MongoDB、Express.js、AngularJS、Node.jsの頭文字を取ったもの)はエンドツーエンドのJavaScriptスタックで、主にクラウド対応のアプリケーションに使用されます。

詳細情報はこちら

LAMPのご使用を始めてみますか。 このシンプルなチュートリアルでは、仮想プライベートクラウド(VPC)環境の作成と仮想サーバー・インスタンス(VSI)のプロビジョニングから、LAMPスタックのインストールとWordPressのホスティング、プロビジョニング、構成まで、VPCでのLAMPスタックのプロビジョニングと構成を自動化する方法をご説明します。 (IBM Cloudのアカウントが必要です。)

LAMPチュートリアルを試す