目次

    LAMP環境って何?

    そもそも「LAMP」とは「Linux・Apache・MySQL・PHP」の4つのオープンソース(ソースコードが公開されていて誰でもいじれる)ソフトウェアの頭文字をとった言葉。
    そして、この4つのソフトを使ってWebアプリケーションやシステムを作れる環境のことをLAMP環境」と呼びます。

    LAMPのゆかいな仲間たち

    Linux

    LAMPでのポジション:「サーバーOS」。
    
一度の多数のユーザーに安定的にWebサービスを提供する。
パソコンのosとしても使われる。
    「Lunix」ではない。

    Apache

    LAMPでのポジション:「Webサーバー」。
    Webアプリケーションへのホスティング(サーバーを貸すこと)もできる。

    読み方はアパチェでもアパトゥでもなく「アパッチ」。

    MySQL

    LAMPでのポジション:「リレーショナルデータベース管理システム」。つまり、データを表形式で保存・管理する。

    あのWordpressではデータベース管理を担当。Webアプリケーションやシステム開発の際に必要なデータの倉庫番。

    PHP

    LAMPでのポジション:「プログラミング言語」。サーバーが使う。
    Wordpressでは開発を担当している。
決済処理やお問い合わせフォーム、検索機能の実装が可能となる。

    LAMPを使用したWebサービスの例

    どうやって使うの?

    LAMP環境の構築方法は大きく2つ。
    1つ目は「ローカル上での構築」。PCに「仮想環境」を作り、その中で各ソフトを動かしていきます。
    オフラインで作業ができる反面、セキュリティ上のリスクやバージョン管理の困難さなどのデメリットもあります。

    2つ目は「クラウド上での構築」。AWSなどを使用してオンラインでソフトを動かしていきます。
    チーム開発がしやすく、効率化のためのテンプレートなどが提供されている場合もあります。

    学習目的ならローカル、業務上で使う場合はクラウドの使用がおすすめです。

    そこへ現れた新たな刺客!LAMPの後輩ソフトたち

    LAMP環境を構築するソフト。実はリリースからかなり年月が経っているものも多く、近年ではより多機能で使いやすいソフトも出始めています。

    Apache→nginx

    読み方は「エンジンエックス」。Apacheの抱える「C10K問題(同時接続しているPCが1万台を超えるとパフォーマンスがガクッと下がってしまう問題)」を解消できるとか。

    MySQL→BigQuery

    BigQueryの方が、より膨大な数のデータを格納可能。ただしまるっと移行するというよりも、MySQLがパンパンにならないようにデータを同期させるような使い方が主流なようです。

    PHP→Python、Ruby

    一番ライバルが多いのがPHP。Pythonは人工知能や機械学習の実装が可能で、記述の読みやすさに定評があります。Rubyは日本生まれの言語で、フレームワーク(処理方法も含めて開発に必要な機能がまとまっているもの)である「Ruby on rails」を使えば効率的にWebアプリケーションが制作できます。

    上記ソフトも、また日を改めてご紹介できればと思います。

    ところで…これってデザインにどう活用できるの?

    =「設計したい・デザインしたいものをどうやって構築するかがわかる!」

    上記のように紹介したLAMP環境。一見デザインには関係のないように感じますが、個人的には「知っておいた方がより広い視野でユーザーに価値提供できるのではないか」と考えています。

    例えば「問い合わせフォームつくりたーい」と思った時に、作り方や仕組みがわかってないとフォームのガワだけしか作れません。
    この状態では、お客様やエンドユーザーの「もっとこうして欲しい」という要求にうまいこと応えられなくなってしまう可能性もあります。

    魚は切り身の状態で海にいるわけではありません。
    それぞれの特性と捌き方を学んで、一流のデザイナーを目指すべく精進したいと思います。


    おまけ〜LAMPそれぞれの名前の由来〜

    • Linux:開発者「リーナス・トーバルズ」の名前から
    • Apache:アメリカのネイティブアメリカン「アパッチ族」から
    • MySQL:開発者ミカエル・ウィデニウスの娘の名前「My」+プログラミング言語「SQL」
    • PHP:「PHP:Hypertext Preprocessor」の略(略…?)
    PREV
    2025.03.10
    LaravelプロジェクトをVPSサーバーにデプロイする方法(MySQL)
    NEXT
    2025.03.12
    誰もが利用しやすいWebサイト構築へ:アクセシビリティの基本と実践方法