2011-12-10

LLでお手軽Webサーバ、そしてkanazawa.js v1.6.5のご紹介

ここ何年かずっと Web のフロントエンドの人にももっと Web サーバが手軽に使えるといろいろ捗るんじゃないかと思っている。なのでその紹介。

なお、分かっている人は読む必要ないし、とても冗長な記述になっています。

で、その前に、

kanazawa.js v1.6.5 に行きます

kanazawa.js v1.6.5 - もくもく会とたまにLT - : ATND

12/17(土) ITビジネスプラザ武蔵でボクと握手!

スケジュールに入ってないけど、このネタでデモります! デモらせろ!

なぜ Web サーバか

  • いちいちサーバにアップしなくても手元で本番と同じパスでアクセスできる1
  • <a href="./index.html" とか書かなくても <a href="./" でよい2
  • ついでに LL で開発もできちゃうかも

Webサーバの選択肢

  1. Apache, nginx など本格的なもの
  2. 主に個人向けなシンプルで軽量なもの
  3. LLで書かれたもの

選択基準 - 面倒はイヤ

  • コンパイルとか面倒
  • 設定とか面倒

面倒はイヤなので

  • 設定ファイル書かなきゃいけないのはボツ

あと個人的には

  • 環境が変わるたびに調べ直すのは面倒
    • Mac でも Linux でも Windows でも動いてほしい。説明もその方が楽。

ということで

3. LLで書かれたもの

だけを扱うことにします。

Windows には小さい Web サーバはたくさんある

ちょっと脱線。

実は Windows にはバイナリインストールできる軽量 Web サーバがたくさんある。KUROIGAMEN とか知らないし、マウスでポチポチするだけがいい、という場合はそれらの中から好きに選んでもらえばいいんだけど、これと同じものが Windows 以外では動かないとか動くけどコンパイルが必要で面倒くさいという場合が多い。こうなると Windows 以外の環境とノウハウを共有することが難しい。ここが自分の中では問題だと感じている。

例えば開発者が Windows でデザイナが Mac という環境の場合、どちらかのノウハウもお互いに教えることができず、効率が悪い。また個人で複数の OS を使うのは作り手としてはそれほど珍しい話ではない。そうなったときにもノウハウが共有できないと面倒が増える。

それに、一つくらい LL が使えるといろいろ世界が広がるよ。

※ 実はしばらくの間 Windows でも Mac でも mongoose ( 旧 shttpd ) を使えばノウハウも共有できるし立ち上げっぱなしでも邪魔にならないし、いいじゃんと思っていたんだけど、v3 になって Windows のタスクトレイに入るようになってからどうも Windows で挙動があやしいのでオススメしないことにした。

Python

長らく LL で手軽な Web サーバと言えば Python が有名だった。と思う。

python -m SimpleHTTPServer

と打てば

  • カレントディレクトリを Document Root に
  • port 8000

で Web サーバが立ち上がる。

http://localhost:8000/

を開くと python を起動したディレクトリの中身が一覧に出てくる。

インストール

Python は Windows ではインストーラで手軽に入るし、OSX なら最初から入っているので新たな作業は不要。

http://www.python.org/download/releases/

Ruby

Ruby も標準で WEBRick という Web サーバを持っているのだが、長いこと手軽に起動する方法がなかった。これが 1.9.2 になって改善した。

ruby -run -e httpd DIRCTORY

で ok. DIRECTORY を `.` とするとカレントディレクトリを Document Root として動作する。

ただし OSX や Linux などでは 80 番ポートで動かそうとして root 権限がないと怒られる。

sudo ruby -run -e httpd DIRCTORY

ruby -run -e httpd -- --port[=]3000 DIRCTORY

などとすると良い。代表的なのはこんな感じになる。

ruby -run -e httpd -- --port 3000 .

WEBRick サーバを自分でスタートするよりは手軽だけどまだ Python に比べるとちょっと気を使うし、面倒な感じはある。

cf. ruby -run -e httpd – –port=3000 . - %!zt! <diary> (2010-12-02)

インストール

  • Windows なら http://rubyinstaller.org/
  • Mac の場合は
    • コンパイルしたくない場合は実は JRuby が手軽じゃないか
    • jruby –1.9 -run -e httpd – –port 3000 でイケる

Perl

Perl は Perl 入れて cpan から好きなもん入れてください。以上。

PHP

フロントエンドの人といちばん仲の良さげな PHP. 実は PHP も 5.4 から build-in の Web サーバを持つらしい。でもまだそれが本当に手軽に手に入る環境はないので、これも割愛。

まとめ

やっぱ手軽さでは Python か。PHP 5.4 が来たら実は本命になる可能性もあるのかなぁなんてことを思ったりしている。.htaccess と php.ini から解放されるなら、だけど。

  1. JavaScript URL Dispatcher とか考えると実は必須。 

  2. こういう細かいところ気になるでしょ? 

About

例によって個人のなんちゃらです