複数人で作業をしていると、ふとWebサーバを使いたくなるときがあります。
簡単なファイルの受け渡し等、ローカルマシンですぐにWebサーバを起動させることができると結構便利です。
でも、Apacheみたいな専用のWebサーバをわざわざインストールするほどでもない・・・。
そんなときにローカルマシンにRubyかPythonがインストールされていれば、コマンド一発(ワンライナー)ですぐにWebサーバを起動させることができます!
Python編
Pythonでは、バージョン2.4以降で追加されたモジュールをスクリプトとして実行できる"-m"オプションを活用します。
$ python -m SimpleHTTPServer
上記のような感じでコマンドを実行すると、デフォルトの8000番ポートで、実行時のカレントディレクトリをドキュメントルートとしたWebサーバが起動します。Pythonコマンド1つでWebサーバが起動!意外と便利!
ポート番号を指定したいときは、上記のコマンドにスペースを続けてポート番号を指定すればOKです。
# python -m SimpleHTTPServer 80
例えば、HTTPのデフォルト80番ポートを利用したい場合は、上記のような感じでポート番号をあわせて指定します。
尚、80番ポートで稼動させたいときは、rootユーザで実行するか、sudoを使う必要があります。きっと。
$ python -m CGIHTTPServer
また、上記コマンド例のように、"SimpleHTTPServer"ではなく、"CGIHTTPServer"を指定することで、CGIスクリプトを実行することも可能だそうだ。
Serving HTTP on 0.0.0.0 port 80 ... xxxxxxx.tokyo.ocn.ne.jp - - [12/Aug/2009 07:22:03] "GET / HTTP/1.1" 200 -
実行後、アクセスすると上記のようなログが、標準出力に表示されます。
Ruby編
Rubyだと以下のような感じっす。
# ruby -rwebrick -e 'WEBrick::HTTPServer.new({:DocumentRoot => "./"}).start'
上記のようにコマンドを実行することで、Pythonの場合と同様、実行時のカレントディレクトリをドキュメントルートとし、デフォルトでは80番ポート(rootユーザか、sudoを使う必要有り)で、Webサーバが起動します。Rubyでも、このようにワンラインでOKです。
$ ruby -rwebrick -e 'WEBrick::HTTPServer.new({:DocumentRoot => "./", :Port => 3000}).start'
ポートを指定したい場合は、上記のような感じで実行します。
尚、 RubyのWebrickの場合は、「プログラミング言語 Ruby リファレンスマニュアル」を見てもらえば分かる通り、MaxClientsやTimeout、ログ出力場所等、簡易Webサーバながら、割とオプションが豊富で細かく設定できます。
[2009-08-12 07:19:00] INFO WEBrick 1.3.1 [2009-08-12 07:19:00] INFO ruby 1.8.6 (2008-08-11) [i386-linux] [2009-08-12 07:19:00] INFO WEBrick::HTTPServer#start: pid=1110 port=80 xxxxxxx.tokyo.ocn.ne.jp - - [12/Aug/2009:07:19:13 EDT] "GET / HTTP/1.1" 200 12 - -> /
コマンド実行後、Webrickが起動し、アクセスすると上記のようなログが、標準出力に表示されます。
参考
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (133件) を見る
- 作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/01/26
- メディア: 大型本
- 購入: 21人 クリック: 356回
- この商品を含むブログ (129件) を見る