バックエンドへの道

LAMP環境ってなに?Webサービスを作るための環境構築を理解しよう


LAMP環境ってなに?Webサービスを作るための環境構築を理解しよう

こんにちは。バックエンドエンジニアのヤスタカです。

今回は、サーバーの環境構築をする上で欠かせない「LAMP環境」の基本をご紹介します。「LAMP」は、とある単語の頭文字を4つ並べたものです。どんな単語を想像しますか?

開発未経験のエディター・うららに聞いてみたら、こんな答えが返ってきました。

うらら
L → Lightning Talk
A → Azure
M → MovableType
P → Programming……?

IT系っぽい感じのものを並べてきましたね。
ひとつくらい合ってそうですが、なにも合ってません。

正解は、

LAMP
L → Linux
A → Apache
M → MySQL
P → PHP(perl, python)

となります。
これら4つは、Webアプリケーションを開発する環境として支持されているオープンソースソフト。それではひとつずつ説明していきましょう。

1. Linuxとは:サーバーでよく使われるOS

625px-NewTux.svg

▲Linuxの公式マスコットのTux(タックス)

Linux」について説明するだけで一つの連載になってしまいそうなほど奥が深いものなのですが、ほんと〜に簡単に説明すると、「サーバーでよく使われるOS」です。読み方は「リナックス」となります。

Wikipedia的な説明をしておきますと、そもそも「Unix」というOSがあったのですが、当時学生だったリーナス・トーバルズっていう人が「商用のUnixは高けぇーからUnixみたいなOSを自分でつくってやるぜ! ヒャッハー!!」ということで作られた大変ロックなOSです。

そんなOSが、今では世界中の技術者の手で開発・メンテナンスされていて、銀行などのシステムにも使われているってすごいですよね。ちなみにエンジニアがよく利用する「Git」というバージョン管理システムを開発したのもこのトーバルズさんです。ただの天才ですね。

最近ではLinuxもGUI(Graphical User Interface)と呼ばれる、マウスで操作できる画面を備えているものが多くなりました。ですが、サーバー用途に限っていえば、未だにCUI(command line interface)と呼ばれる、コマンドを打って操作する画面が多いです。これが俗に言う「黒い画面」です。Macだとターミナルを起動することで、同じようにCUIで操作できます。

またCUIでの操作にはいろいろなコマンドを覚えなければいけません。例えば、「今いるディレクトリを移動する」というだけでも、

$ cd /User/yasutaka/Desktop

と打ち、コンピューターに命令を伝える必要があります。「WindowsやMacではクリックひとつでできる操作を、なんでいちいちコマンド打ってやらなきゃいけないの!?」と思うかもしれませんが、悲しいかなエンジニアとはそういう生き物なんです。でも大丈夫、すぐに慣れます。

2. Apacheとは:Webサーバー

apache

Web上にサイトを公開するためには、必ず「Webサーバー」というものが必要になります。その構築をしてくれるソフトウェアとして、世界中でもっとも多く使われているのが「Apache」です。読み方は「アパッチ 」。

他によく使われているWebサーバー用のソフトウェアには、「nginx」という軽量で高速に動作するものがあります。ですが、「Apache」は高機能かつある意味デファクト・スタンダード(事実上の標準)のようなもので、Web上にもたくさんの情報があり参照できます。初めて環境を構築する人はまずは「Apache」を使ってWebサーバーを構築してみてはいかがでしょうか。

3. MySQLとは:データベースソフト

logo-mysql

MySQL」は、RDBMS(リレーショナルデータベース)と呼ばれる種類のデータベースソフトです。Webサービスを作るときは、このデータベースにユーザー情報やその他もろもろの情報を保存して、プログラムを通してデータを書き込んだり変更したりして処理を実装していくことが多いです。読み方は「マイエスキューエル」です。

また、データベースを操る「SQL」という専門の言語もあります。SQLとはなんぞやということを語るとまたひとつ連載ができてしまうので、詳細はこちらをどうぞ。

「MySQL」はアメリカのソフトウェア会社「サン・マイクロシステムズ」が開発・保守していたのですが、現在は「Oracle」に買収されて、「Oracle」がメンテナンスしています。Apache同様、世界中で最も利用されているデータベースの一つです。

4. PHPとは:プログラミング言語

php-logo

PHP」とは、サーバーサイドで使用するプログラミング言語です。サーバーサイドって?と思う方もいるかと思いますが、その名の通り「Webのサーバー側」ということ。

Webサイトを作る場合、大きくフロントエンド領域とバックエンド領域というものに分かれています。どこまでがどちらの領域になるかというのは難しいところもあるのですが、次の表のようになるかと思います。

フロントエンド HTMLやCSS、JavaScriptなどを駆使し、「サイトの見た目や動きを作る」領域
バックエンド インフラの構築やWebサービスであれば、データベースがデータを取得してログイン処理を実装する、といった「機能面」の実装をおこなう領域

そして、サーバーサイドは「機能面」の処理なので、バックエンド側の領域に属します。もっと詳しい解説は次回の連載で紹介しますので、ひとまずはこれくらいのことを頭に入れておけば問題ないです。

さて、PHPはなにかとディスられることが多いのですが、初心者がはじめに学ぶ言語としては比較的簡単で学びやすいと思います。また、最近PHP7というメジャーバージョンアップがおこなわれ、とても速くなっているようです。パフォーマンスの面も優れています。

バックエンドの開発では、PHP以外にもPerlやPython、Rubyなどのスクリプト系言語や、JavaやGoといったさまざまな言語での開発が可能です。

おわりに

今回の記事では、LAMP環境の概念のようなものを中心にお話しました。L(Linux)、A(Apache)、M(MySQL)、P(PHP)がどんなものか、なんとなくわかっていただけたでしょうか? 「習うより慣れろ」という言葉もある通り、一度環境を構築してみるのも手だと思います。環境構築のより実践的なものはLIGブログでも以前にご紹介していますので、参考にしてみてください。

環境構築するには共用のレンタルサーバーではできることが限られてしまうので、VPSなどをためしに作ってみていろいろと操作してみるとより具体的に理解できると思います。これであなたも黒い画面を操るエンジニアに一歩近づきましたね。

さて、次回はサーバーの選び方についてです。利用できるサービスや料金、セキュリティなど、サーバーを決定するにはいろんな要因があり過ぎて迷っちゃいますよね。そんな迷える子羊なあなたに希望の光をお届けする、LIGブログ「バックエンドエンジニアへの道」。次回もお楽しみに!!

あと、こちらのLAMPもよろしくお願いします。

▼LIGの「堀田」が支配人を務める長野のゲストハウス「LAMP」

171
http://www.sundayplanning.com/lamp/


この記事を書いた人

ヤスタカ
ヤスタカ バックエンドエンジニア 2015年入社
長野の豪雪地域、野尻湖オフィスでバックエンドエンジニアやってます。寒いのは苦手です。