そろそろブログ+RSSアプリでも作ってみませんか?:小山博史のJavaを楽しむ(7)(2/3 ページ)
教育界、技術者コミュニティでJava言語の教育と啓蒙に長年携わってきた筆者が、独自の視点からJavaの面白さを掘り下げていく。(編集部)
Apache Rollerをセットアップしてブログを動かす
実は、WordPressという選択肢も……
実は、筆者はApache Roller以外にも、PHPで開発されているWordPressも使っています。WordPressは1つのブログを用意するために、1つのWordPressをインストールする必要がありますが、最近はWordPress MUのように、複数のブログを管理できるものが出てきています。
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 5、Apache Tomcat 5.5.23、MySQL 5.0 を用意しました。Tomcatだけは、Apache Tomcatからダウンロードしてインストールをしました。ほかは、Debianのapt-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関係のライブラリ(JavaMail、JAF(JavaBeans Activation Framework))は別途ダウンロードする必要があるのです。
そこで、今回はHibernate 3.1.2、JavaMail 1.4、JAF 1.1もダウンロードして使いました。このように、ライセンスについては、使用するライブラリによって変わってくるので、気を付けてないといけません。
このように、いろいろなところからダウンロードするというのは大変なのですが、最近はブロードバンド環境が整備されているため、昔ほど苦労せずとも必要なライブラリが手に入ります。随分楽になったものです。
さて、RollerはHibernateを使っているため、DBについては選択肢が多くなっています。しかし、対応しているDBが同じSQL文を受け付けるわけではないので、使用するDBによって注意する点は違ってきます。インストールマニュアルによると、MySQL 4とMySQL 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
- mysql-connector-java-3.1.14/mysql-connector-java-3.1.14-bin.jar
- javamail-1.4/mail.jar
- jaf-1.1/activation.jar
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
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>
コネクタの設定を変更を変更
コネクタの設定も変更が必要です。「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"/>
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
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
後は、Webブラウザで「http://localhost:8080/roller/」へアクセスすると、図7のような画面が表示されます。ユーザーを登録して、そのユーザーでログインをすれば、ブログの作成ができます。
WordPressはLAMP環境があれば、10分程度でWebブラウザからインストールができてしまうので、それと比較するとちょっと大変ですが、複数のユーザーに対して別々のブログを用意して管理していく場合のことを考えると、これぐらいの苦労でインストールできれば問題ありません。
Apache Velocityのテンプレートを適用できる!
ちなみに、デザインを変えたい場合のテンプレートファイルは、Apache Velocityで記述できます。Velocityは非常に強力なテンプレートエンジンなので、いろいろなカスタマイズが可能です。こういった点もRollerの魅力となっています。
Copyright © ITmedia, Inc. All Rights Reserved.