アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

手軽なローカル 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 が割り当てられたりして気が利いている。

Copyright © 2009 - 2023 akabeko.me All Rights Reserved.