Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

CommonLispのWebアプリケーションフレームワークCaveman2についてのメモ

はじめに

CommonLispでWebアプリケーションを作成するためのフレームワークであるCaveman2について、調べたことをメモしていきます。

注) Roswellを使うこと前提です。事前にインストールしてください。(以下参照)

スケルトンプロジェクト作成

Roswellのlocal-projectsディレクトリ内に移動します。
自分のディレクトリがあればその中に入り、

cd ~/.roswell/local-projects/"<User Name>"

無ければディレクトリを作成してから入ります。
(これは、Githubでのアカウント名とかが良いのかな?)

cd ~/.roswell/local-projects/
mkdir "<User Name>"
cd "<User Name>"

REPLを起動します。

ros run

QuickLispでCaveman2をロードします。

(ql:quickload :caveman2)

以下のプログラムを実行し、プロジェクトスケルトンを作成します。

(caveman2:make-project #P"./myapp/" :author "<Your Full Name>")

プロジェクトスケルトンの作成に成功したら一旦REPLを終了します。

(quit)

lsコマンドなどで「myapp」ディレクトリが作成されていることを確認してください。
プロジェクトスケルトンの初期ディレクトリ/ファイル構成は以下のようになっています。

プロジェクトスケルトンのディレクトリ/ファイル構成
myapp
  ├── README.markdown
  ├── app.lisp
  ├── db
  │    └── schema.sql
  ├── myapp-test.asd
  ├── myapp.asd
  ├── src
  │    ├── config.lisp
  │    ├── db.lisp
  │    ├── main.lisp
  │    ├── view.lisp
  │    └── web.lisp
  ├── static
  │   └── css
  │        └── main.css
  ├── templates
  │   ├── _errors
  │   │     └── 404.html
  │   ├── index.html
  │   └── layouts
  │         └── default.html
  └── tests
        └── myapp.lisp

次に、「local-projects」ディレクトリ内に移動し、system-index.txtを編集します。

cd ~/.roswell/local-projects

system-index.txtに以下を追記してください。

system-index.txt
"<User Name>"/myapp/myapp.asd

こうすることで、QuickLispから「myapp」をロードできるようになります。

動作確認

REPLを起動します。

ros run

「myapp」をQuickLispでロードします。

(ql:quickload :myapp)

Webアプリケーションを起動します。

(myapp:start)

以下のメッセージが出れば起動完了です。

Hunchentoot server is started.
Listening on localhost:5000.
#S(CLACK.HANDLER::HANDLER :SERVER :HUNCHENTOOT :ACCEPTOR #<PROCESS clack-handler-hunchentoot(4) [Active] #x17191B5E>)

Webブラウザからhttp://localhost:5000/にアクセスすると、「Welcome to Caveman2!」と書かれたページが表示されます。

以下、実行中のスクリーンショット

Screenshot_20180202_230748.png

ちゃんと動作してますね〜

Webアプリケーションを停止するときは以下のプログラムを実行します。

(myapp:stop)

最後に

とりあえず、Caveman2の動作確認まで出来たので、ここからもっと色々と勉強して何か作れたらな〜、と思っています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?