サーバ
概要
Lisp + Apacheでサーバ構築
ここ(= Clackを動かす.CommonLispでWebアプリ(CGI?)動かせるようになるまで(Apache編) - ぺっくブログミラー@peccul)を参考にして、実際にやってみた際のまとめ。
Information
version | date | memo |
---|---|---|
0.1 | 2013/11/04 | first |
手順
modlisp
参考先の手順どおりでDL。
wget http://www.fractalconcept.com:8000/public/open-source/mod_lisp/mod_lisp2.c
Apache2に組み込む際のコマンドは、記載されているコマンドでは出来なかったので、以下を利用
# apxs2を入れる(apache2-threaded-devに入っているらしい) sudo apt-get install apache2-threaded-dev # Apache2にmod_lisp2.cを取り込む sudo apxs2 -i -c mod_lisp2.c
私の環境では、/usr/lib/apache2/modules/mod_lisp2.soにインストールされた。
httpd.conf
Ubuntuなので、/etc/apache2/mods-enablesにlisp.confを作成
(参考先とパスが違うので注意)
# 書き込んだ内容
LoadModule lisp_module /usr/lib/apache2/modules/mod_lisp2.so
httpd.confファイルの中身は、参考先と完全に一緒。
LispServer 127.0.0.1 5000 "clack" <Location /clack> SetHandler lisp-handler AddHandler lisp-handler .lisp </Location>
Apache2の再起動
sudo apachectl restart
(参考)
再起動時に、以下のようなメッセージが出力されることがある。
「apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName」
これは、「ServerNameに127.0.1.1を使用した、FQDNが確定できまんせんでした。」という事らしい。
「/etc/hosts」及び「/etc/sysconfig/network」に、自分で設定したホスト名がApacheの設定ファイルに記述されていないので、発生しているようである。
参考先(Apacheのエラー:Could not reliably determine the server’s fully qualified domain name〜とメッセージが出たときの対応 - yummy-yummy)
私の場合、/etc/hostsに127.0.1.1を別に定義していたが、今回のApacheの定義に127.0.1.1を定義していないので、発生している。
(再起動には、成功しているらしいので、別に直さなくても良いらしい。)
動作確認
私の場合「demo.lisp」ファイルは、下記のパスに存在したので、作業ディレクトリにコピーする。
/usr/share/common-lisp/source/modlisp/demo.lisp
参考先の同じ様に、20行目あたりを以下の様にする。
((equal url "/clack/fixed.lsp") (output-html-page (fixxed-html-string))) ((equal url "/clack/precompute.lsp")
実際に動作させる(参考先と同じ)
sbcl --load demo.lsp ;; エラーが無い場合、以下で開始 *1383564841* (ml:modlisp-start :port 5000) ;; 停止は以下のコマンド *1383564842* (ml:modlisp-stop-all)
ブラウザから動作を確認する。
以下のパスにアクセスしていろいろ表示されたら成功(参考先とは違うパスなので注意)
http://localhost/clack/fixed.lsp
http://localhost/clack/precompute.lsp
http://localhost/clack/debug.lsp
(参考)
modlisp関連の関数が無いとか怒られる場合。
.sbclrcに以下の記述を加えると良い。
(require :modlisp)
Clack起動
Clackのサンプルプログラムは(= Clackを動かす.CommonLispでWebアプリ(CGI?)動かせるようになるまで(ローカルで動かす編) - ぺっくブログミラー@peccul)
先ほどの参考リンクにもあるように、:server :apacheの行をのコメントアウトを外す。
起動の確認は、次のリンクで行う(http://localhost/clack)