手軽なローカル HTTP サーバー
Web 開発しているとローカルで HTTP サーバーを起動したくなるときがある。
iPhone シミュレーターから localhost
アクセスして確認したいとかファイル読み込みを ajax でおこなっているが Chrome だとポリシー変更か起動オプション指定 (-allow-file-access-from-files
) しないとローカルに対してエラーになるのを回避したいとか。VirtualBox & Vagrant でサーバーたてて...でもよいのだけど、もっと手軽なものはないかな?と探してみたら Node.js の http-server
がよい感じだった。
これは npm からインストールできる。どこからでも使えるというのが利点なので -g
オプションつけてグローバルに入れる。
$ npm install -g http-server
あとはドキュメント ルートにしたいディレクトリに移動して http-server
コマンドを実行するだけ。
$ cd ルートにしたいディレクトリ
$ http-server
Starting up http-server, serving ./ on: http://0.0.0.0:8080
Hit CTRL-C to stop the server
これで Web ブラウザから http://localhost:8080/
にアクセスすると当該ディレクトリをルートにした状態で HTTP サーバーが起動している。停止は Ctrl + C。8080 以外のポートを利用したい場合は -p
オプションで指定する。
$ http-server -p 4000
XAMP/MAMP や VM だと htdocs は基本的にひとつなので新たな環境がほしいときはディレクトリ構成を工夫するかサーバーを新規作成することになる。サンプルの動作確認ぐらいだと、こういう管理はいかにも面倒。一方 http-server
なら実行ディレクトリがそのままルートになるため非常に気軽。
ちなみに -p
オプションなしで複数のサーバーを起動すると自動的にポートを分けてくれる。例えば 8080
で起動しているものがある状態で実行するとポート 8081
が割り当てられたりして気が利いている。