Macで気軽にHTTPサーバを立てる
なぜ HTTP サーバが必要なのか?
HTML
ページを確認するだけなら、ファイルをそのままブラウザで表示すれば見ることができます。
しかし近頃の Web サイト・Web アプリでは、XMLHttpRequest(XHR)
により、非同期にリクエストを行う SPA が増えてきました。
SPA ではなくてもXHR
でデータを要求することが当たり前になってきましたが、file:///
で始まるファイルプロトコルではXHR
リクエストができません。
この問題を解決するために、ローカル HTTP サーバを起動して、XHR
リクエストにも応えられるようにします。
Python で http サーバ
Python
は Mac にデフォルトでインストールされているスクリプト言語です。
Python のバージョンチェック
まずはインストールされているPython
のバージョンをチェック。
Python には 2 系(2.x.x)と 3 系(3.x.x)があり、デフォルトでは 2 系が有効になっていると思います。
python --version
# Python 2.7.10
python でローカル web サーバを立ち上げる
コンソールから、HTTP サーバに公開したいディレクトリまで移動します。
cd /path/to/public
いよいよ HTTP サーバを起動します。
先程調べたPython
のバージョンによって、使用するモジュールが違います。
# 2.x.x系
python -m SimpleHTTPServer 8000
# 3.x.x系
python -m http.server 8000
2 系、3 系とも数字の8000
はポート番号です。
http://localhost:8000/にアクセスすると、HTTP サーバが起動されています!
もちろん XMLHttpRequest も有効です。
終了するにはCtrl+C
でコマンドを終了しましょう。
Mac では Apache2 が常駐している
Python
を利用する方法は、作成中の Web サイトや Web アプリを試したときに使用します。
実は、Mac では何もしなくても http サーバが常駐しているんです。
/Library/WebServer/Documents
配下が公開されているので、ここに公開ディレクトリを配置しておけば見れます。
80 番ポートで公開されているので、ポート番号の指定もなくhttp://localhost/でアクセスできます。
Python
によるサーバは一時的なもの、ローカル Wiki や常時使用したい Web アプリなどはこちらに置いておくと良いでしょう。
公開したいディレクトリをドキュメントルートにリンクする
/Library/WebServer/Documents
がルートとして公開されます。
この下にあるディレクトリはポート指定なしでアクセスできるようになります。
ただ、ローカル WEB プロジェクトを全部ここに置くのもちょっと管理しにくいですね。
そこで、ここにシンボリックリンクを張ります。
# root権限が必要なので sudo して作業する
sudo ln -s /path/to/public publish-name
/path/to/public
は公開したいディレクトリのパス、publish-name
は公開パスを指定します。
こうすることでhttp://localhost/publish-name/
で常時アクセスできるようになります!
Windows ではいろいろ準備が必要ですが、Mac だとお手軽ですね!