Lisp 開発環境メモ

レンタルサーバを借り、Lisp の開発環境を構築する際のメモ。

サーバ

さくらのVPS (http://vps.sakura.ad.jp/) を借りた。すぐに安価に始められ root 権限を持てる。Cent OS 5.6 環境。
デフォルトでは決して安全ではないのでファイアウォールを設定した。必要なアプリケーションはパッケージ管理 yum を用いてインストールした。

Web アプリケーション構成

フロントエンドに Nginx を置き、バックエンドに Common Lisp (SBCL) で動くアプリケーションサーバを置く、という構成にした(今は Portable AllegroServe)。フロントエンドは Lispアプリケーションサーバに余計なことをさせず、また安全にしたい、という意図で置いた。SBCL では quicklisp を使うことにした。

SWANK + SLIME

SWANK サーバを サーバで実行し、自宅の iMac からつなぐ、という構成にした(http://yfrog.com/hsvlacej)。
quicklisp で入手できる SLIME(slime-20110619-cvs) では、"start-swank.lisp" というファイルがあり、" sbcl --load-start-swank.lisp" とすれば SWANK サーバを起動できる。swank:create-server  の引数は :coding-system "utf-8-unix" :dont-close t などと編集する。

  • SLIME からサーバに接続する際は、 SSH トンネリングの設定をし安全に接続する。
  • (クライアントとなる自宅の iMac 側の) Emacs で動く SLIME のバージョンと、サーバで動く SWANK サーバのバージョンは合わせて置くことが望ましい。
  • クライアント側の SLIME を起動する際、slime-tramp という SLIME の contrib パッケージを使い、Emacs の TRAMP と組み合わせるとよい。これを行わないと、SWANK から見たディレクトリ構成と SLIME が動作するクライアントの Emacs からみたディレクトリ構成が異なるため、混乱する。slime-tramp はそれを解決してくれる。
リンク