連載
» 2007年08月09日 00時00分 公開

そろそろブログ+RSSアプリでも作ってみませんか?小山博史のJavaを楽しむ(7)(2/3 ページ)

[小山博史,ガリレオ]

Apache Rollerをセットアップしてブログを動かす

実は、WordPressという選択肢も……

 実は、筆者はApache Roller以外にも、PHPで開発されているWordPressも使っています。WordPressは1つのブログを用意するために、1つのWordPressをインストールする必要がありますが、最近はWordPress MUのように、複数のブログを管理できるものが出てきています。

図6 WordPressのサイト 図6 WordPressのサイト

 Apache Rollerを本格的に稼働させようとすると、それ相応の性能がサーバに要求されます。Tomcatを快適に稼働させるためには、256Mbytesのメモリを常時確保するように起動オプションで指定したりしますが、用意できるサーバに搭載されたメモリが少ない場合には、WordPressのようなPHPアプリケーションを選択するということもあります。また、Jettyを使うといった選択もあり得ます。

 この辺りは稼働の条件や要件によって変わってきますから、柔軟に検討できるようにしたいものです。

ダウンロードするものはたくさんあるするものはたくさんある

 さて、話が若干ずれましたので、Apache Rollerに戻りましょう。Apache Rollerのサイトからダウンロードページへ移動し、Rollerのアーカイブファイル(apache-roller-3.1.tar.gz)を取得しました。インストールマニュアルはPDF(roller-install-guide.pdf)で用意されているので、それも取得しました。

 さて、インストールマニュアルを確認してみたところ、Apache Rollerのシステム要件は次のようになっていました。Debian GNU/Linux 4.0、SunのJDK 5Apache Tomcat 5.5.23MySQL 5.0 を用意しました。Tomcatだけは、Apache Tomcatからダウンロードしてインストールをしました。ほかは、Debianapt-getコマンドを使ってインストールしました。

  • Operating System:UNIX or Windows based operating system
  • Java development kit:Java 2 SE 1.4 SDK(or later)
  • Application server:Tomcat 5.X(or later)
  • Relational Database:MySQL 4.X(or later)

 これらの準備に、それなりの時間がかかりましたが、実はまだ準備が必要です。ライセンスの都合からHibernateやJavaMail関係のライブラリ(JavaMailJAF(JavaBeans Activation Framework))は別途ダウンロードする必要があるのです。

 そこで、今回はHibernate 3.1.2、JavaMail 1.4、JAF 1.1もダウンロードして使いました。このように、ライセンスについては、使用するライブラリによって変わってくるので、気を付けてないといけません。

 このように、いろいろなところからダウンロードするというのは大変なのですが、最近はブロードバンド環境が整備されているため、昔ほど苦労せずとも必要なライブラリが手に入ります。随分楽になったものです。

 さて、RollerはHibernateを使っているため、DBについては選択肢が多くなっています。しかし、対応しているDBが同じSQL文を受け付けるわけではないので、使用するDBによって注意する点は違ってきます。インストールマニュアルによると、MySQL 4MySQL 5では使用するJDBCドライバが違うということなので、使うことにしたMySQL 5用の説明に従って、MySQL J/Connector 3.1.14のJDBCドライバを用意しました。

インストールは配置するだけ

 こうやって、必要なファイルを用意できたら、後はインストールマニュアルに書いてある通りに、ファイルを配置していくだけです。

  • hibernate-3.1/hibernate3.jar
  • hibernate-3.1/lib/asm-attrs.jar
  • hibernate-3.1/lib/asm.jar
  • hibernate-3.1/lib/cglib-2.1.3.jar
  • hibernate-3.1/lib/dom4j-1.6.1.jar
  • hibernate-3.1/lib/ehcache-1.1.jar
  • hibernate-3.1/lib/jdbc2_0-stdext.jar
  • hibernate-3.1/lib/jta.jar
apache-roller-3.1/webapp/roller/WEB-INF/lib/へコピーするもの
  • mysql-connector-java-3.1.14/mysql-connector-java-3.1.14-bin.jar
  • javamail-1.4/mail.jar
  • jaf-1.1/activation.jar
apache-tomcat-5.5.23/common/lib/へコピーするもの

DBの準備

 DBの準備では、次の通りにRollerが用意しているSQL文を実行してテーブルを作成します。このときの注意点ですが、MySQLではUTF-8で動作するように設定をしておかないと、実際にRollerを稼働させたときに日本語エントリが投稿できないといった問題が発生することがあります。ちなみに、「create database roller default character set utf8;」のように、DBを作成するときに文字セットをUTF-8と指定することもできます。

# cd apache-roller-3.1/webapp/roller/WEB-INF/dbscripts/mysql/
# mysql -u root -p
password:
mysql> create database roller;
mysql> grant all on roller.* to rio@localhost identified by 'lion';
mysql> use roller;
Database changed
mysql> source createdb.sql
mysql> quit
DBの設定をするために、コマンドを実行

Apache Rollerの設定

 Rollerの設定ファイルは、「apache-tomcat-5.5.23/conf/Catalina/localhost/roller.xml」となります。次のような内容で、Resourceタグのurl属性は実際は1行です。

<Context path="/roller"
         docBase="/usr/local/apache-roller-3.1/webapp/roller" debug="0">
 
    <Resource name="jdbc/rollerdb" auth="Container"
              type="javax.sql.DataSource"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/roller?autoReconnect=true
&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8"
              username="rio"
              password="lion"
              maxActive="20"
              maxIdle="3"
              removeAbandoned="true"
              maxWait="3000" />
</Context>
roller.xml

コネクタの設定を変更を変更

 コネクタの設定も変更が必要です。「apache-tomcat-5.5.23/conf/server.xml」の「non-SSL HTTP/1.1 Connector on port 8080」について、次のように「URIEncoding="UTF-8"」を追加します。

 ここで、もしApache HTTP ServerとApache Tomcatを連携する際に AJP/1.3を使う予定の場合は、「AJP 1.3 COnnector」へも同様な処置が必要となります。この設定をしておかないと、文字化けが発生します。

 ほかの文字のエンコードを使うWebアプリケーションを動かしていると、それらとは共存できません。その場合は、8005、8080、8443、8009といったポート番号を別の番号に変更した別のTomcatを用意して、そちらでRollerを動作させるといった工夫が必要になります。

<Connector port="8080" maxHttpHeaderSize="8192"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" redirectPort="8443"
           acceptCount="100" connectionTimeout="20000"
           disableUploadTimeout="true" URIEncoding="UTF-8"/>
 
<Connector port="8009"
           enableLookups="false" redirectPort="8443"
           protocol="AJP/1.3" URIEncoding="UTF-8"/>
server.xml

Apache Rollerのカスタム設定

 最後に、「apache-tomcat-5.5.23/common/classes/roller-custom.properties」へRollerのカスタム設定をします。

 ここでは、「/usr/local/apache-roller-3.1/」に、「roller_data/uploads」、「roller_data/search-index」ディレクトリをあらかじめ作成して、指定をしています。「/usr/local/apache-roller-3.1」はRollerをインストールしたディレクトリです。

uploads.dir=/usr/local/apache-roller-3.1/roller_data/uploads
search.index.dir=/usr/local/apache-roller-3.1/roller_data/search-index
passwds.encryption.enabled=true
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
roller-custom.properties

Apache Rollerを動かしてブログを投稿してみよう!

 準備が終わったら、Tomcatを起動します。筆者の環境では、次のようなコマンドになりましたが、インストール状況によって、CATALINA_HOME、JAVA_HOMEの値は変わります。

# export CATALINA_HOME=/usr/local/apache-tomcat-5.5.23
# export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
# /usr/local/apache-tomcat-5.5.23/bin/startup.sh
Tomcatの起動

 後は、Webブラウザで「http://localhost:8080/roller/」へアクセスすると、図7のような画面が表示されます。ユーザーを登録して、そのユーザーでログインをすれば、ブログの作成ができます。

図7 Apache Rollerの起動画面 図7 Apache Rollerの起動画面

 WordPressはLAMP環境があれば、10分程度でWebブラウザからインストールができてしまうので、それと比較するとちょっと大変ですが、複数のユーザーに対して別々のブログを用意して管理していく場合のことを考えると、これぐらいの苦労でインストールできれば問題ありません。

Apache Velocityのテンプレートを適用できる!

 ちなみに、デザインを変えたい場合のテンプレートファイルは、Apache Velocityで記述できます。Velocityは非常に強力なテンプレートエンジンなので、いろいろなカスタマイズが可能です。こういった点もRollerの魅力となっています。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。