こんにちは。バックエンドエンジニアのヤスタカです。
今回は、サーバーの環境構築をする上で欠かせない「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
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サーバー
他によく使われているWebサーバー用のソフトウェアには、「nginx」という軽量で高速に動作するものがあります。ですが、「Apache」は高機能かつある意味デファクト・スタンダード(事実上の標準)のようなもので、Web上にもたくさんの情報があり参照できます。初めて環境を構築する人はまずは「Apache」を使ってWebサーバーを構築してみてはいかがでしょうか。
3. MySQLとは:データベースソフト
また、データベースを操る「SQL」という専門の言語もあります。SQLとはなんぞやということを語るとまたひとつ連載ができてしまうので、詳細はこちらをどうぞ。
【初心者入門編】MySQLのコマンドで数値集計する方法をマスターしよう vol.1 【初心者入門編】MySQLのコマンドで数値集計する方法をマスターしよう vol.2
「MySQL」はアメリカのソフトウェア会社「サン・マイクロシステムズ」が開発・保守していたのですが、現在は「Oracle」に買収されて、「Oracle」がメンテナンスしています。Apache同様、世界中で最も利用されているデータベースの一つです。
4. PHPとは:プログラミング言語
Webサイトを作る場合、大きくフロントエンド領域とバックエンド領域というものに分かれています。どこまでがどちらの領域になるかというのは難しいところもあるのですが、次の表のようになるかと思います。
フロントエンド | HTMLやCSS、JavaScriptなどを駆使し、「サイトの見た目や動きを作る」領域 |
---|---|
バックエンド | インフラの構築やWebサービスであれば、データベースがデータを取得してログイン処理を実装する、といった「機能面」の実装をおこなう領域 |
そして、サーバーサイドは「機能面」の処理なので、バックエンド側の領域に属します。もっと詳しい解説は次回の連載で紹介しますので、ひとまずはこれくらいのことを頭に入れておけば問題ないです。
さて、PHPはなにかとディスられることが多いのですが、初心者がはじめに学ぶ言語としては比較的簡単で学びやすいと思います。また、最近PHP7というメジャーバージョンアップがおこなわれ、とても速くなっているようです。パフォーマンスの面も優れています。
バックエンドの開発では、PHP以外にもPerlやPython、Rubyなどのスクリプト系言語や、JavaやGoといったさまざまな言語での開発が可能です。
おわりに
今回の記事では、LAMP環境の概念のようなものを中心にお話しました。L(Linux)、A(Apache)、M(MySQL)、P(PHP)がどんなものか、なんとなくわかっていただけたでしょうか? 「習うより慣れろ」という言葉もある通り、一度環境を構築してみるのも手だと思います。環境構築のより実践的なものはLIGブログでも以前にご紹介していますので、参考にしてみてください。
さくらVPSにLAMP環境をインストールする方法をまとめてみました。
環境構築するには共用のレンタルサーバーではできることが限られてしまうので、VPSなどをためしに作ってみていろいろと操作してみるとより具体的に理解できると思います。これであなたも黒い画面を操るエンジニアに一歩近づきましたね。
さて、次回はサーバーの選び方についてです。利用できるサービスや料金、セキュリティなど、サーバーを決定するにはいろんな要因があり過ぎて迷っちゃいますよね。そんな迷える子羊なあなたに希望の光をお届けする、LIGブログ「バックエンドエンジニアへの道」。次回もお楽しみに!!
あと、こちらのLAMPもよろしくお願いします。
▼LIGの「堀田」が支配人を務める長野のゲストハウス「LAMP」
長野県にあるゲストハウス
LAMP野尻湖のご予約はこちらから!
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。