MoBo は、家計簿ウェブアプリケーションです。MoBo には以下の特徴があります。
家計簿の参照だけでなく、家計簿の更新、設定までも CGI でサポートします。ブラウザさえあれば面倒なメンテナンスは不要。手軽に使えて、長く続けられます。
i モードに限らず、ほとんどの携帯電話や Palm・ザウルスなどの携帯端末からも家計簿を更新できます。専用の特別な URL は必要なく、自動認識して最適なページを生成します。通信料金のシビアな端末向けには無駄を省いた小さなページを送るようになっています。
スタイルシートを使って見た目をがらりを変えることができます。これは「テーマ」と呼ばれ、tDiary のサイトでは、100 を越えるテーマが配布されています。もちろん自分で作ることも可能です。テーマは設定画面で簡単に切り替えることができます。
プラグインというモジュールを追加することで、家計簿の機能を増やしたり変更したりすることが可能です。使い方や作り方は、tDiary のプラグインとほぼ同じですので、詳しくは tDiary のドキュメントを参照してください。
重要なポイントでしょう:-) 実行には Ruby 1.6.3 以上が必要です。
一般的な CGI の実行を許可している ISP やレンタルサーバ上で利用する場合を想定し、以下のような環境を例に説明します。
配布アーカイブを展開し、中身をすべて /home/foo/public_html/mobo
にコピーします。以下の 2 つのファイルが CGI スクリプト本体なので、WWW サーバの権限で実行可能なようにパーミッションを設定してください。
また、/usr/bin/env を使った起動ができない環境では、各ファイルの先頭を、ruby のパスに書き換える必要があるでしょう。ISP のホームディレクトリにこっそり Ruby を入れたような場合を除き、通常はあまり気にしなくても良いはずです。
続いて、CGI の実行環境を整えます。dot.htaccess
を .htaccess
にリネームして、環境に合わせて書き換えます。添付のサンプルは以下のようになっています。
Options +ExecCGI AddHandler cgi-script .rb DirectoryIndex index.rb <Files "*.rhtml"> deny from all </Files> <Files "mobo.*"> deny from all </Files> <Files "*.rb"> AuthName MoBo AuthType Basic AuthUserFile /home/foo/.htpasswd Require user foo </Files>
ここでは、
という設定になっています。とりあえず書き換えが必要なのは、AuthUserFile
とRequire user
でしょう。意味は Web ででも調べて下さい。AuthUseFile
は、あらかじめhtpasswd
コマンドで作成しておく必要があります (これも Web で調べればわかります)。
また、利用する WWW サーバの設定が、CGI の実行ファイルのサフィックスを固定 (例:.cgi) にしている場合があります。この場合、AddHandler
やDirectoryIndex
も変更する必要があるでしょう。これに応じて、index.rb
やupdate.rb
のファイル名も変更する必要があります。
次に、mobo.conf.sample
を mobo.conf
にリネームして、内容を書き換えます。これは Ruby スクリプトとして、CGI に直接読み込まれます。MoBo の設定はほとんど CGI 経由で行えるので、最低限書き換えるべきなのは最初に出てくる @data_path
だけです。
@data_path = '/home/foo/mobo'
@data_path
は、家計簿のデータを保存するディレクトリです。このディレクトリは通常、WWW 経由でアクセスできない (public_html
配下でない) ディレクトリを指定します。このディレクトリは、WWW サーバの権限で書き込めるパーミッションにしておく必要があります。
mobo.conf
には、他にもいろいろな設定項目を記述できます。それらの項目には以下の二つの種類があります。
@data_path
のように、CGI では設定できない項目です。これらの項目は、mobo.conf
ファイルを直接編集して変更しなければいけません。
変更画面のメニューにある「設定」を開くと、ブラウザから MoBo の設定を変更できます。ほとんどの項目はここから設定できるので、わざわざ mobo.conf
を手で書き換える必要はありません。
各々の項目については、mobo.conf.sample
の説明を読んでください。一般的な使用では、@data_path
だけを正しく設定すれば、あとはブラウザから変更が可能です。
また、サフィックス.rb のファイルを CGI スクリプトとして指定できない環境では、index.rb
や update.rb
のファイル名を変更する必要がありますが、この変更を MoBo に教えるために、@index
や @update
という変数が用意されています。環境によってはこれも指定する必要があるでしょう。
mobo.conf
の設定が終わったら、http://www.hoge.example.org/~foo/mobo/
にアクセスしてみましょう。からっぽの家計簿ページが出れば設定は正しいです。不幸にして「Internal Server Error」が出てしまったら、Apache のエラーログを参照して間違った設定を修正してください。
mobo.conf
には、MoBo の設定を CGI から行う場合のセキュリティレベルを調整する変数があります。自分が管理する Web サーバで、自分だけが使う場合にはあまり気にしなくても良いですが、知人に貸したり、MoBo を使った家計簿サービスを提供するような場合には、ユーザにできることを制限したい場合が少なくありません。
そこで、mobo.conf
中でセキュリティの設定を行います。通常、mobo.conf
の末尾には以下の 2 行が書かれています。
@secure = false load_cgi_conf
@secure
は、セキュリティ設定を指定する変数です。この値が false
の場合、セキュリティチェックはいっさいかかりません。ユーザは CGI 設定で好き放題ができます。それでは危険という状況下で MoBo を運営する場合には、@secure
の値を true
にします。そうすると、CGI 設定中における危険な変数操作やファイル操作が禁止されます。
また、@secure
の値は、家計簿の表示時に後述するプラグインを実行する場合にも影響を及ぼします。これにより、@secure
が true
の場合には、いくつかのプラグインが利用できなくなります。
load_cgi_conf
はその位置で CGI による設定を読み込む指令です。つまり、@secure
でセキュリティレベルを設定したあとでファイルを読み込むようになっています。
なお、両者の指定位置は独立しているので、両者の位置を組み合わせることで様々な設定を行うことが可能です。また、@secure
を指定しない場合のデフォルト値は true
です。
同梱の使い方をご覧ください。
MoBo は、原作者のかずひこ (kazuhiko@fdiary.net) と共同開発者の方々が、GPL の元で配布、改変を許可するフリーソフトウェアです。
ただし、配布ファイルのうち erb/
ディレクトリ配下にあるファイルはすべて、咳さんによる ERb というライブラリです。これらのファイルについては別途 http://www2a.biglobe.ne.jp/~seki/ruby/ をごらん下さい。
MoBo は http://mobo.sourceforge.jp/ でサポートを行っています。バグ報告、機能改善の提案、説明書などの執筆、誤植の指摘、広報活動などなど、あらゆるご協力を歓迎します。