【6日でできるPHP入門】LAMPとは

 Webアプリケーションを開発・運用する上で不可欠なソフトウェアの組み合わせの一つが「LAMP(ランプ)」です。
 LAMPは、Linux、Apache、MySQL、PHPという代表的なオープンソースソフトウェアで構成されており、世界中で広く利用されているWeb開発の基本環境となっています。
 この記事ではLAMPの各構成要素や役割、Webアプリの具体的な仕組みやデータベース操作(CRUD)について、図や表を交えて詳しく解説します。

1.LAMPとは何か

1.1. LAMPの基本構成

LAMPは4つのソフトウェアの頭文字からできています。

項目役割代表的なソフト
L(Linux)OS(オペレーティングシステム)Ubuntu, CentOSなど
A(Apache)WebサーバApache HTTP Server
M(MySQL)データベース管理システムMySQL、MariaDB
P(PHP)サーバサイドプログラミング言語PHP、Perl、Python(拡大解釈)
  • 現在は「M」はMariaDBも含める場合があり、「P」もPerlやPythonが該当することがあります。
  • いずれもオープンソースで、自由に利用・改良できます。

1.2. 各ソフトウェアの役割

ソフト主な役割
Linuxシステム全体を管理・制御する基本ソフト
ApacheWebからのリクエストを受け付け、ページを配信する
MySQLデータの保存・検索・管理を行うデータベース
PHPWebサーバ上で動的にWebページを生成するプログラム

2.データベースとSQLの基礎

2.1. データベースとその種類

  • データベースとは:データを体系的に保存・管理・検索できるシステム。
  • リレーショナルデータベース(RDB)は、表形式でデータを管理する最も一般的なタイプです。
用語説明
SQLデータベース操作用の標準言語。
RDB表(テーブル)形式でデータを扱うDB。
MySQL世界中で利用される有名なオープンソースRDB。

代表的なRDBMS(リレーショナルデータベース管理システム)
Oracle、MySQL、MariaDB、PostgreSQL、SQLite など

2.2. SQLとCRUD

  • SQL(Structured Query Language)はRDBを操作するための言語。
  • Webアプリの基本操作はCRUD(クラッド)で説明できます。
略語意味日本語訳代表的なSQL文
CCreate登録INSERT
RRead読み出しSELECT
UUpdate変更UPDATE
DDelete削除DELETE

Webアプリの「投稿」「表示」「編集」「削除」などは全てこのCRUDに該当します。

3.LAMP環境のWebアプリの流れ

3.1. Webアプリの基本的な動作例(掲示板システム)

例:掲示板アプリの流れ

  1. ユーザーが投稿フォームで内容を入力し「登録」ボタンを押す
  2. 投稿内容がWebサーバ(Apache)にリクエストとして送信される
  3. ApacheがPHPプログラムを実行
  4. PHPがMySQLにデータの登録や取得を指示(SQLによるCRUD操作)
  5. 実行結果のHTMLが生成され、Webブラウザに表示される

イメージ図

[ユーザー] 
   ↓(リクエスト)
[Apache] 
   ↓(PHPプログラム実行)
[PHP] 
   ↓(SQL発行)
[MySQL]
   ↑(検索・登録結果)
[PHP]
   ↓(HTML出力)
[Apache]
   ↓(レスポンス)
[ユーザー]

3.2. 実際の処理の流れ(掲示板の登録操作)

  1. 投稿ページで文章入力 → [登録]ボタン押下
  2. リクエストがApacheに届く → 該当PHPスクリプトが起動
  3. PHPスクリプトがMySQLに「INSERT」SQLでデータ登録
  4. 登録後、投稿一覧ページへリダイレクト
  5. 投稿一覧のHTMLがWebサーバ経由でブラウザに返される

この仕組みは、「編集」「削除」も同じ流れでCRUDのどれかを実行しています。

4.LAMP以外の代表的なWeb開発環境

名称構成例備考
MAMPmacOS, Apache, MySQL, PHPMac向けのLAMP風パッケージ
WAMPWindows, Apache, MySQL, PHPWindows向け
XAMPPCross OS, Apache, MariaDB, PHP, PerlOSを問わず利用可能
MEANMongoDB, Express, Angular, Node.jsJavaScript系スタック

まとめ

LAMPは、オープンソースソフトで構成されたWebアプリ開発の標準環境であり、
 Linux(OS)・Apache(Webサーバ)・MySQL(データベース)・PHP(サーバサイド言語)が連携することで、動的なWebサイトや多機能なWebサービスを実現しています。

 Webアプリの基礎はLAMP環境で学ぶことができ、CRUD操作やSQLの基礎も合わせて身につけることができます。今後は、より効率的な開発やセキュリティ対策のために、LAMPをベースにした各種フレームワークやミドルウェアの学習もおすすめです。