\r\n\r\n
ここ数年、Windowsやmacosxは開発者に優しいOSとして進歩してきましたが、Web開発者は皆、Webのネイティブ環境であるLinuxで作業する必要があります。
この記事では、WindowsやOSXなどの安定した消費者向けのオペレーティングシステムを日常的に使用しながら、プロダクションコードと同じエコシステムで開発するメリットを享受する、両方の世界を手にする方法を紹介します。
これは、Linux、Apache、MySQL、PHPの頭文字をとったもので、通常Webサーバーとして理解されるものと同じように動作するようにバンドルされています。(Eは、Apacheの後継であるNginxの発音に由来し、「engine x」と呼ばれている)。")
ここでLinuxが明示的に含まれていることにお気づきかもしれませんが、開発者がLinuxを推奨する理由はそれだけではありません。Apache(またはNginx)、MySQL、PHPといった他の技術も、プラットフォームごとに異なるツールや実装が用意されていますが、歴史的・技術的な理由から、Linuxベースの構成がサーバースペースを支配し、より予測しやすい傾向があります。
予測可能性と信頼性も、この目的のみに使用されるオペレーティングシステムで開発したい理由、つまりウェブ開発者として毎日行う無数の作業をサポートするものではなく、専用のオペレーティングシステムであることの重要な理由です。つまり、新しいグラフィックドライバをインストールすると再起動が必要になるようなOSや、バックパックに詰めて外出しなければならないようなマシンでは、サーバーを稼働させたくないということです。一言で言えば、混在するマシンでサーバーを動かすために必要なプロセスやソフトウェアが混乱しているのです。
では、マルチタスクの能力と、アプリケーションのネイティブ環境で開発する必要性とのバランスを取るには、どうすればよいのでしょうか。
仮想マシンを入力します。
仮想マシンは、メインのオペレーティングシステムの中で動くプログラムです。物理的なマシン上で起こることとは完全に独立して、ウィンドウ内で完全に独立したオペレーティングシステムを実行することができますが、ある程度のオーバーヘッドがあります。
しかし、メリットはたくさんあります。
Vagrantというツールを使えば、様々なスタイルの設定済みLinuxオペレーティングシステムを含む「ベースボックス」をデプロイすることができます。
この記事では、GUIを使わずにコマンドラインインターフェース(CLI)だけで仮想マシンを操作できることを前提にしています。
基本的なボックスを構成する前に、仮想マシンプロバイダーとVagrantを用意しましょう。
ここで自動化の魔法がかかります。PuPHPetというツールは、LAMPでよく使われるソフトウェアの選択と設定のプロセスを凝縮してGUI化し、さらにそれを超えてRubyやGUI node.jsなどのサーバーサイド言語(厳密にはJavaScriptはサーバーサイドではないがこのタイプ)、そしてランプ他のコンポーネントの代替品
PuPHPetはVagrantの基本設定ファイルを作成します。このウィザードでは、20種類以上のディメンションを設定することができますので、ここでは最も重要なものだけを説明します。
PuPHPetは設定処理の最後にアーカイブを生成し、新しいサーバパラメータを設定する前に作成されたディレクトリに展開されます。
ここで、以下の操作を行います。
$ vagrant up観察結果
ローカルカタログに基本的なボックスがないため、vagrantはあらかじめ設定されたvagrantボックスのリポジトリであるAtlasからイメージを取得することになります。
(技術的には、以下のコマンドを発行することで、どれでもローカルコンピュータに追加することができます。
$ vagrant box add USER/BOX)
この時点で、仮想マシンが起動し、実質的にオンラインになりました。
$ vagrant ssh適切なSSHセッションに入り、(ヘッドレスの)VMをLAMPサーバとして動作させます。
ここからはレンジャーズでの言動が多くなり、ご存知の通り、自分の開発遊び場を利用して、仕事をスームズにこなすこと。公式のGetting Started Guideで確認してください。
皆さんは、ご自身の開発環境で仮想マシンを使用したことがありますか?この設定を使っているのか、それとも別の方法を取っているのか。以下のコメント欄でご意見をお聞かせください。