LAMPスタック

menu icon

LAMPスタック

現在最も人気のあるオープンソースのWebアプリケーションが、長期にわたる実績のあるLinux、Apache、MySQL 、PHPのソフトウェア群(LAMP)で実行されている理由を説明します。

LAMPスタックとは

  • オープンソースのコミュニティー全体で使用される、長期にわたる実績のあるソフトウェア群の詳細
  • すぐに始めて結果を見ることができる動的言語を使用したプログラム
  • カスタマイズ可能なモジュールで構築し、独自の方法でWebアプリを作成および展開
  • 貴重な新しい知識とスキルを履歴書に追加

LAMPスタック(ソフトウェア群)についてお聞き及びかもしれません。 これは驚くことではありません。WordPressやDrupalなど、今最も人気のあるオープンソースのWebアプリケーションの一部は、LAMPで実行されているのですから。

しかし、LAMPの功績は他にも数多くあります。 Web用の最初のオープンソース・ソフトウェア群の1つであり、今でもWebアプリケーションを配信するための最も一般的な方法の1つです。 これは非常に広く使用されているため、既存のアプリケーションを更新またはホストするときなど、これまでの経験の中で頻繁に見かけている可能性があります。 また、新しいカスタムWebアプリケーションを開発するための選択肢として、多くの人が検討しています。

安定、シンプル、強力。これらは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は大きな選択肢の1つです。 MySQLは、大規模で複雑なサイトの実行に適しています。QLとNoSQLの詳細については、「SQLとNoSQL データベース:相違点は何か?」をご覧ください。
  • PHP:プログラミング言語。PHPのオープンソースのスクリプト言語は、Apacheと連携して、動的なWebページの作成を支援します。 HTMLを使用して、データベースからデータを取り出すなどの動的プロセスを実行することはできません。 このタイプの機能は、動的コードを作成したいページの部分に、PHPコードをドロップするだけで提供できます。

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

 

LAMPアーキテクチャーの図

LAMPアーキテクチャー

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

エレメントの連携方法

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

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

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

柔軟性

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

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

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

LAMPのもう1つの利点は、エンタープライズで実証されている、セキュアなアーキテクチャーと確立された暗号化の方法です。

効率性

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

LAMPスタックとIBM

テクノロジーが複雑になると、ソフトウェアの基本的な動作がわかりにくくなることがあります。 LAMPスタックは、基礎に戻り、Webページの技術的な提供と、それがどのように行われるかを見えやすくします。 また、それがアプリケーションを作成するための純粋な方法であると言えるかもしれません。 独自のデータベース、独自に使用しているスクリプト言語、それをクライアントに提供するための方法が、LAMPにはあります。

サインアップしてIBM Cloud アカウントを作成してください。