AllegroServeのインストール
Commonlisp(今後CL)にはasdfというパッケージシステムがあるそうです。
(require 'asdf)
(require 'asdf-install)
(asdf-install:install 'aserve)
asdfをrequireしてasdf-install:installするとwebから取って来て、依存関係を含めてコンパイルしてインストールしてくれる。
CLiki : ASDF-Installここに書いてあるパッケージを見てインストールしてくれるみたいです。
RubyでいうとGitHub RubyGemsみたいなもんなのかな?
下記の依存パッケージも入りました。
- acl-compat
- cl-ppcre
- cl-unicode
- flexi-streams
- trival-gray-streams
- puri
- htmlgen
何か便利そうなのいっぱいありますね。
aserveの起動
(require 'aserve)
(net.aserve:start :port 8888)
上記で起動。
(net.aserve:publish
:path "/"
:content-type "text/html; charset=utf-8"
:function
#'(lambda (req ent)
(net.aserve:with-http-response
(req ent)
(net.aserve:with-http-body
(req ent)
(net.html.generator:html
(:html
(:head (:title "Hello World!"))
(:body "Hello World!")))))))
foo:barっていうのはメソッドかな? net.aserve:publishというのでリクエストと関数をマッピングするそうです。
「rackかsinatraみたいだ!」
と一瞬思いますが、そもそもプリミティブなHTTPってこういうもんですよね。
が、ブラウザからアクセスするとエラーが。まったくイミフですが、こちらに解決策を載せてくださってるのでそのまま実行。
長いのでファイルに保存して読み込むとか出来ないのかな?と思ってやってみました。
foo.lispという拡張子はSLIMEがSLIMEのモードとして開いてくれるらしく、C-M-xで評価できて凄く便利!
~/code/cl/boot-aserve.lisp というファイルに保存しました。
(load "code/cl/boot-aserve")
で読み込めるみたいです。
(net.aserve:publish
:path "/"
:content-type "text/html; charset=utf-8"
:function
#'(lambda (req ent)
(net.aserve:with-http-response
(req ent)
(net.aserve:with-http-body
(req ent)
(net.html.generator:html
(:html
(:head (:title "Hello World!"))
(:body "Hello World!"
:br
(JPN "へろー"))))))))
上記を実行してブラウザのlocalhost:8888にアクセス。
出た。
JPNというマクロで日本語がちゃんと出るようになってるみたいです。webサーバーの方で対応したいな。他にいいwebサーバーないのかしら?
参照:
![[いこーよ </del> 新機能 #1662] いこーよをRails 2.3.3へいこーよ。 <del> komagata@gmail.com </del> Gmail](http://farm3.static.flickr.com/2443/3812050414_6e6be5b29c.jpg)








![闘うプログラマー[新装版] ビル・ゲイツの野望を担った男達 闘うプログラマー[新装版] ビル・ゲイツの野望を担った男達](http://ecx.images-amazon.com/images/I/51kV6tOSplL._SL160_.jpg)


