今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

自宅サーバ構築 - blojsom編(1)

Rollerでは、ブログ名やカテゴリ名などいろんなところに日本語が使えないってことが分かったんで、自宅サーバのブログで Roller を使うのを断念。Java で書かれたブログアプリを探してみたら、blojsom ってのがあるらしいので、さっそく試してみた。
Tomcat Setup for MySQL - blojsom 3.0
手順どおりにインストール。さっそく自宅サーバのシステムにアクセスしてみたら、あっさりとトップページが表示された。(^^
次はブログの設定を開始。http://localhost:8080/blojsom/blog/default/?flavor=admin にアクセスして設定しろと書いてある。自宅サーバには ssh で接続して設定してるので、手元のパソコンから自宅サーバにアクセスしようと思って http://192.168.1.3:8080/blojsom/blog/default/?flavor=admin にアクセスした。Basic認証を仕様とするけどその先のページを表示できない。トップページに戻ってリンクが箇所のリンク先 URL をチェックしてみると、全部が http://localhost:8080/ にリンクされてる。(--;
自宅サーバで $TOMCAT/webapps/blojsom/WEB-INF ディレクトリ以下で localhost って文字列を探してみる。

$ cd $TOMCAT/webapps/blojsom
$ grep localhost `find . -type f -print`
./WEB-INF/classes/blojsom-full-initial-data-h2.sql
./WEB-INF/classes/blojsom-mysql.sql
./WEB-INF/classes/blojsom-full-initial-data-postgresql-lite.sql
./WEB-INF/classes/blojsom-full-initial-data-postgresql-less-text.sql
./WEB-INF/classes/blojsom-full-initial-data-oracle.sql
./WEB-INF/classes/oracle/blojsom-helper-beans-oracle-include.xml
./WEB-INF/classes/blojsom-full-initial-data-mysql.sql
./WEB-INF/classes/blojsom-full-initial-data-postgresql.sql
./WEB-INF/classes/blojsom-helper-beans-include.xml
./WEB-INF/web.xml

DB は MySQL なんで blojsom-full-initial-data-mysql.sql の内容をチェックすると、http://localhost:8080/ から始まる URL をテーブルに突っ込んでる。MySQL に接続してテーブルの内容を確認してみる。

mysql> use blojsom;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from Properties;
+---------+-------------------------+-------------------------------------------------+-------------+
| blog_id | property_name           | property_value                                  | property_id |
+---------+-------------------------+-------------------------------------------------+-------------+
|       1 | blog-url                | http://localhost:8080/blojsom/blog/default      |           1 |
|       1 | blog-admin-url          | http://localhost:8080/blojsom/blog/default      |           2 |
|       1 | blog-base-url           | http://localhost:8080/blojsom                   |           3 |
|       1 | blog-base-admin-url     | http://localhost:8080/blojsom                   |           4 |
     :

やっぱり予想通りで、テーブルに先のファイル内に書かれていた値が設定されている。
なぜっ!
なんとなく、リンク先を生成するのに、DB のテーブルから取得してきて埋め込んでるっぽい雰囲気。URL なんてパス名だけ書いとけば問題なくアクセスできるだろうに、なぜスキームやホスト名までここに書いておく必要が?
もしかすると、ここに書いておかなきゃいかん理由があるのかなー、とか思いつつ、テーブルを書き換えてみた。

mysql> select * from Properties;
+---------+-------------------------+---------------------------------------+-------------+
| blog_id | property_name           | property_value                        | property_id |
+---------+-------------------------+---------------------------------------+-------------+
|       1 | blog-url                | /blojsom/blog/default                 |           1 |
|       1 | blog-admin-url          | /blojsom/blog/default                 |           2 |
|       1 | blog-base-url           | /blojsom/blog/default                 |           3 |
|       1 | blog-base-admin-url     | /blojsom/blog/default                 |           4 |
    :

これで動かなくなったら元に戻すしかないなー、とか思いつつアクセスしてみたら、とりあえずは何の問題もなく動いてくれて、設定ページにも進めるようになった。
なんか、複数のブログも作れるような雰囲気。だって、テーブルに blog_id なんてフィールドもあるしね。さてー、どこまで希望通りに動いてくれるのか、試してみるかっ!