December 08, 2012

部署Caveman到Amazon EC2

上篇部署Lisp应用到heroku水分有点大,反正用Caveman框架写的demo没跑起来过。 这篇记录一下部署到Amazon EC2的过程。

Caveman是一个Common Lisp的web框架, 基于clack, 更多戳这里,作者是个日本人, twitter帐号

首先是创建EC2 Instance之类的不多说。

其次, 安装:

  1. sudo apt-get install tmux 用于跑REPL然后关掉终端但是执行的命令继续跑,StackOverflow上的讨论。
  2. sudo apt-get install sbcl 详细 http://www.sbcl.org/
  3. quicklisp 安装看这里
  4. 设置服务端的git,然后push代码到EC2, 可以参考这篇文章: How to set up your own private Git server on LinuxHN上的讨论,具体流程看这个gist

然后,启动sbcl, 在tmux中运行sbcl --load quicklisp.lisp, 执行(ql:quickload :myapp), 如有报错请检查quicklisp是否 安装正确,或者myapp目录是否在quicklisp/local_projects/目录下面,

最后, 在sbcl中运行(myapp:start) 启动. 启动后默认端口为5000(参config/dev.lisp), 如果想直接用80端口的话,

  1. sudo sbcl --load quicklisp.lisp
  2. (ql:quickload :myapp)
  3. (myapp:start :port 80)

Demo