LAMPスタック(ソフトウェア群)について、耳にされたことがあるかもしれません。 それは当然のことです。なぜなら、 WordPressやDrupalなど、今最も人気のあるオープンソースのWebアプリケーションの一部が、LAMPで実行されているためです。
LAMPには、他にも数多くの功績があります。 かつてWeb用の最初のオープンソース・ソフトウェア群の1つであったLAMPは、今でもWebアプリケーションを配信する上で、最も一般的な手段の1つであり続けているのです。 そのように非常に幅広く使用されてきたため、業務において既存のアプリケーションを更新またはホストするときなどに、しばしばLAUPに出会う機会があったかもしれません。 現在も多くの人が、新規のカスタムWebアプリケーションを開発するための選択肢として、LAMPを検討しています。
安定、シンプル、強力。これらはLAMPを説明する際に最もよく使われる言葉です。 これらすべてを備えたLAMPは、十分に学び甲斐があるとともに、開発者が履歴書へ記載する場合には、付加価値を加えることになります。
LAMPは、Linux、Apache、MySQL、PHPの頭文字を取ったものです。 それらは共に、高パフォーマンスのWebアプリケーションを実現する、実績あるソフトウェア・セットを提供しています。 各コンポーネントは、そのスタックに次のような重要な機能を提供しています。
PHPは効率性を重視して設計されています。 それにより、プログラミングが簡単になります。さらに楽しい機能として、新しいコードを作成し、更新を押すことで、コンパイルを必要とせずに結果の変化をすぐに見ることができます。 必要に応じて、PHPを、Perl、またはますます人気が高まっているPython言語に置き換えることができます。
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%をカスタマイズするのみであるため、結果として多くの時間が節約できます。