これな
今は昔、wifky という 1ファイルで動作するPerl製 WikiEngine を開発していました。当時は、AN Httpd でローカルテストしてからサーバーにアップするということをしていたのですが、その後、AN Httpd は公式サイトは閉鎖され、パブリックなサポートがなくなってしまいました。
当時はもう真面目に wifky も保守しなくなっていて困ってもなかったのですが、最近になって不具合修正の依頼があって、何とかせんといかなくなりました。てっとり早く archive.org あたりから AN Httpd のバイナリをゲットしてきてもいいのですが、せっかくなので、この機会に Go 言語でウェブサーバーでもでっちあげようと思いました。
xnhttpd は、Windows で CGI を起動する機能しかありません。まず、拡張子とインタプリタのリンクを JSON に書きます
sample.json
{ "handler":{ ".pl":"c:/Program Files/Git/usr/bin/perl.exe" } }
この JSON を標準入力から読み込んで起動させます。
.\xnhttpd.exe < sample.json
すると、起動した時のカレントディレクトリ以下にある Perl スクリプト(例:.\sample.pl)が http://localhost:8000/sample.pl
みたいな URL でブラウザ呼び出すことができるようになります。
wifky は画像とかコンテンツを全部 CGI 側で動的に発信させるようになっているため、本ウェブサーバーは静的コンテンツをウェブサーバー側で発信する機能はありません。それゆえサーバーに負荷がかかります。が、テスト用なので、そこは気にしなくてもいいでしょう。
将来的には静的コンテンツの発信機能とか、markdownファイルを HTML 化して発信する機能をつけてもいいかな…とか思いますが、wifky の不具合を直した途端にまたやる気を失ってしまいました。やれやれだぜ
それにしても、最近の言語はウェブサーバーをサクッと書けてしまうくらいライブラリが充実してて、ほんと便利になりましたよね