めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

「10 分で作る Sledge アプリケーション」のめも

本当にメモ書きなので、間違えとか、勘違いとか、ありまくると思います。
あと、Apacheの設定とか、MySQLとかも、触りだしたばかりなので、よくわからないままメモしています。
そこらへんは、?をつけてみました。

追記:2005-11-26
めも添削 - にぽたん休憩所」にて、id:nipotanさん自らによる添削があります。ありがとうございます。また、それに沿って、一部修正しています。

  • pwd は、現在いるディレクトリを表示する。今回の場合は、「/home/nipotan/」
  • bookmarkというディレクトリを作成。その中に、「etc」「view」「misc」「lib」というディレクトリを作成*1
  • cd lib
  • % sledge-setup Bookmark*2
  • ここで設定ファイル?らしいのが作られています。
  • find は、ディレクトリ内の検索コマンド
  • sudo vi /etc/Bookmark-conf.pl
  • $ENV{SLEDGE_CONFIG_NAME} = '_production';
  • MySQLのセッション用DB(ここでは「bookmark」)を作成
  • /tmp/sledge1.11/eg/*3にあるsessions.sql*4を実行している
  • 先ほど作成したmisc内に、bookmark.sqlを作成
  • create table bookmark (id int unsigned not null auto_increment,url varchar(255),title varchar(255),description text,timestamp timestamp,primary key (id))type=innodb;
  • grant select,insert,delete,update on bookmark.* to www@localhost identified by 'nipotan'
  • /bookmark/lib/Bookmark/Config にある_common.pmを設定する
  • $C{TMPL_PATH} を設定
  • $C{DATASOURCE} を設定('db','ユーザ名','パスワード')
  • $C{COOKIE_NAME} を設定
  • $C{COOKIE_PATH} を設定
  • $C{COOKE_DOMAIN } を設定
  • _common.pmをコピーして、_production.pmを作る
  • MixIn.pmを作る。Exporterを継承
    • ここでは、何かを雛形にして製作しているのではなく、1から書いている
    • Exporterというのは、サブルーチンをインポートするpmらしい
  • mkdir Page Data
  • Bookmark::Data::Base; (Base.pm)をつくっています
  • Bookmark::Data::Base は、Class::DBI を継承
  • __PACKAGE__ ってなんだっけ?
  • Bookmark::Data::Bookmark; (Bookmark.pm)をつくっています
  • Bookmark::Data::Bookmark は、Bookmark::Data::Base を継承
  • ?)ここらへんがよくわからないです。たぶん、Class::DBIを継承しているので、DBへの操作が書かれているっぽい
  • cd ../Pages
  • Bookmark::Pages::Root; (Root.pm)をつくっています
  • Bookmark::Pages::Root は、Bookmark::Pages を継承
  • ?)ここらへんがよくわからないです。たぶん、Controllerになるのかな?
  • /bookmark/lib/view/ に、index.htmlを作成
    • form タグにactionを書いていないけれど?いいのかな?
    • TT2の形式で。
    • nl2brというフィルタはなんだ? → 試していないけれど、テキスト中の改行を<br>に変換?
  • /bookmark/etc/ startup.plを作成
  • ?)/bookmark/etc/ map.properties を作成
    • Sledge::Dispatcher::Propertiesに関係します。Sledge::Dispatcher::Propertiesは、後で調べる->自分
  • /bookmark/etc/ b.nipotan.org.conf を作成
    • httpd.confにIncludeするためのhttpd.conf。アプリごとにhttpd.confを別ファイルにすることができるので、トラブルの原因究明やメンテナンスがしやすい(と、後で知った)
    • SetHandler perl-script
    • PerlRequire /home/nipotan/bookmark/etc/startup.pl
    • PerlHandler Sledge::Dispatcher::Properties
    • PerlSetVer SledgeMapFile /home/nipotan/bookmark/etc/map.properties
  • httpd.conf を設定
    • Include /home/nipotan/bookmark/etc/b.nipotan.org.conf とする
  • configtest を実行
    • 「こいうのがあるんだねぇ。知らなかった」と書いたとおり、本当に知りませんでした。会社にあった「Apacheハンドブック(第1版でした)」に書いてあった...。
  • restart
  • ここからテスト開始

こうして書き出してみると、

が足りないんですね、私。
わかっていましたけれど、足りなすぎ、というのが身に染みます。
O'Reilly Village / オラの村: 話題の「はてなオリジナルTシャツ2005」を当てよう!なんかを見ながら、参考になる書籍を探すことにしようかしら。

*1:L社の社内ルールらしい[http://blog.shebang.jp/archives/50247705.html:title]

*2:「Bookmark」がプロジェクト名になります

*3:Sledge のソースツリーがある場所

*4:sessions-pg.sqlは、PostgreSQL