CLISP で CGI
Script としての clisp ファイル
CLISP だと、ファイルの冒頭に #!/usr/bin/clisp とか(実際の CLISP のPATH)やって実行権限付与すれば、そのままスクリプトとして実行できる。ということは・・・CGI 書けるのでは?と思ってやってみた。
CGI サンプルファイル
こんな感じ。動作すれば、ブラウザには Hello! とだけ表示されるはず。
#!/usr/bin/clisp (format t "Content-Type:text/plain~%~%") (format t "Hello!")
Mac OS X での動作
Mac 同梱の Apache を動作させた場合、CGI のファイルは /Library/WebServer/CGI-Executables/ に置くことになっている。上記のファイルを sample.l として保存して実行権限を付与する。この状態で http://localhost/cgi-bin/sample.cgi とやることで実行できた。
Debian での動作
Debian の Apache では、CGI のファイルは /usr/lib/cgi-bin/ に置くことになっている。デフォルトの拡張子は .cgi なので、これも /usr/lib/cgi-bin/sample.cgi としてブラウザで http://$LINUX_HOST_NAME/cgi-bin/sample.cgi へアクセス。問題なく表示される。もちろん、apache の設定ファイルで AddHandler cgi-script *** とやれば、Lisp とわかる拡張子も使用できる。.lsp とか .l だろうか。.l の場合はこんな感じの設定になるはず。
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .l Order allow,deny Allow from all </Directory>