軽量とは言えど、CGIを使って結構色々動きます。
例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。
って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー!
今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。
mattn's tinytinyhttpd at master - GitHubリンク先に、動いてる様子のキャプチャがあります。
tiny tiny httpd
http://github.com/mattn/tinytinyhttpd/tree/master
ソースはC++で書いてます。WindowsとUNIX(Linuxでだけ動作確認)で動作します。
機能としては、マルチスレッドサーバ、カスタマイズ、ディレクトリスティング、CGI起動が可能です。
小ささをウリにしているのでインストールとか、レジストリとか、面倒くさいものは要りません。exeファイルだけあれば起動します。
一応、設定ファイルの記述も可能で
[global]
port=8080
root=c:/temp/mtos
indexpages=index.html,index.php
charset=cp932
[mime/types]
cgi=@c:/strawberry/perl/bin/perl.exe
php=@c:/progra~1/php/php-cgi.exe
という設定ファイルを"-c"オプションで指定する事も出来ます。デフォルトではポート8080番でカレントディレクトリをドキュメントルートとし、phpとperlが適当なパスでCGI起動される様になっています(パスが違う場合は設定ファイルから変更出来ますし、拡張子rbに対してrubyを追加する事も出来ます)。私が試した限りですが、以下のソフトウェアの動作が確認出来ています。
- MTOS(Movable Type Open Source) (perl)
- WordPress (php)
- blogn Plus (php)
- tDiary (ruby)
- PukiWiki (php)
- NucreusCMS (php)
- blosxom (perl)
ライセンスはBSDライセンスとします。使ってみて下さい。
コードはgithubにあるので、patchウェルカムです。
今後は、コードのブラッシュアップと、拡張なんかを考えて行きたいなーと思ってます。