後で泣かないための個人的なWeb開発環境の作り方

開発環境はしばらく使っていくと設定ファイルのゴミなどで散らかってしまいます。パソコンを買い換えたりサーバ環境を壊した時に構築し直すのもかなり面倒です。

運用も復旧も移行も楽にしたい。でも「開発サーバで動くのに本番サーバで動かない」なんてことにはなりたくない。

そんな風に考えたエンジニアが個人的なWeb開発環境を構築してみました。そのまとめです。

仮想化する

VirtualBoxを使ってLinuxとWindowsを仮想化します。

仮想化しておけば作業用PCとサーバ環境を分られるのでゴミファイルが邪魔になりません。物理的な場所もとらない。

設定ファイルをいじってサーバ環境を壊してもスナップショットから簡単に戻せます。マシン移行、バックアップ、レストアなんかもファイルコピーだけなので簡単です。

Linuxは開発サーバでいろいろ入ってます。

  • Webサーバ(Apache)
  • DBサーバ(MySQL/SQLite)
  • 内部DNSサーバ(BIND)
  • APサーバ(WordPress/Redmine/etc)

WindowsはIEの動作確認用に入れています。

サービスを追加する時はローカル用のドメイン、バーチャルホスト、DBを追加すれば開発を始められます。

XAMPPやMAMPは使わない

Web上で動くものはたいていLinuxサーバで動いています。

そこを軽く見ていると後で泣きをみます。開発サーバと本番サーバは似ていれば似ているほど後が楽です。

個人的にはユニットテストまでならアリだと思いますが、この環境でテストしたつもりになるのはやめておいた方がいいと思います。会社で「テスト終わりました」とか言うと間違いなく怒られます。

AMP(Apache/MySQL/PHP)環境の雰囲気を知りたい人やローカルでWordPress等を動かしてみたい人がとっかかりに使うのは凄くいいと思います。

また、他の言語、ライブラリ、フレームワークを使おうとすると非常に手間がかかり逆に不便です。あくまでもXAMPP、MAMPが提供している範囲で簡単に導入できるようになるソフトです。

内部DNSサーバを立てておく

これは本当に便利です。

ルータに内部DNS、プロバイダのDNSを使うように設定します。

これでLAN内のWindows/Mac/iPhoneどこからでも同じURLで開発サーバへアクセスできます。わざわざドメインを取得する必要もないし、hostsファイルにいちいち追加する必要もありません。

Web/DBサーバと比べるとDNSサーバは構築自体の敷居が高いですが、内部向けならあまりやることは無いしネットワークの勉強になると思います。

まとめ

要は企業が社内で使うイントラネットの簡易版です。

例えばブログをレンタルサーバ+独自ドメインで使っている人がこういう環境を構築すると、今まで各サービスの管理画面に参考サイトからコピペしていたものが何だったのかよく分かると思います。