Apache Roller5.0.0 インストール (その1)2012/07/09 17:44

オープンソースでJavaベースのブログソフト、Apache Rollerのインストールメモです。
rootユーザで作業する前提になってますので、必要に応じてsudoなど使ってください。

その1では、Rollerのソフトウェアそのもののインストールについて説明します。

インストールを行ったのは少し前の5.0.0ですが、現時点(2012/7/9)での最新版は5.0.1です。 詳しくはみていませんが、機能的な変更ではなくセキュリティアップデートのようです。 なので、インストール方法は変わらないじゃないかと思っています(未確認)。


インストールした環境)
だいぶ古いですが、以下がセットアップ済みの環境に対してインストールを行いました。
  CentOS 5.8 (Xenの上で動作)
  JDK 1.6.0_19
  Tomcat 6.0.26  (RollerにはTomcat6 か 7 が必要です)
  Apache 2.2.3    (なくても問題ありません)
  PostgreSQL 9.1.3


参考にしたサイト等など)

  Apache Roller 4.0.1 ユーザーガイド 日本語訳
  そろそろブログ+RSSアプリでも作ってみませんか?
 

手順1) zipファイルのダウンロード
今回はTomcat上で動かすことになるため、Rollerのダウンロードサイトからroller-weblogger-5.0.0-for-tomcat.zipをダウンロードします。(今ならroller-weblogger-5.0.1-for-tomcat.zipですね)
ダウンロードしたzipファイルを解凍すると、docディレクトリの中にroller-install-guide.pdfというPDFファイルがあるので、その内容に従っていけば簡単にインストールできました。


手順2) warファイルをTomcatのwebappディレクトリに展開
手順1のzipファイルを解凍すると、webappディレクトリの中にroller-5.0.0-tomcat.warというファイルがあるので、これをTomcatのwebappディレクトリにコピーします。 Tomcat自身に展開させるため、Tomcatが起動している状態でコピーします。
─────────────────────────────────────
  # cp roller-5.0.0-tomcat.war /usr/local/tomcat/webapp/
─────────────────────────────────────
※Tomcatのインストールディレクトリが /usr/local/tomcat/ の場合

ファイルの展開を確認後、Tomcatを停止します。
─────────────────────────────────────
  # service tomcat stop
─────────────────────────────────────


手順3) JDBCドライバの取得
PostgreSQLのサイトなどから、postgresql-9.1-902.jdbc4.jarを取得して、Tomcatのlibディレクトリに配置し、所有者をtomcatに変更します。
─────────────────────────────────────
  # pwd
  /usr/local/tomcat/lib
  # chown tomcat:tomcat postgresql-9.1-902.jdbc4.jar
─────────────────────────────────────


手順4) Java Mailライブラリの取得
OracleのサイトなどからJavaMailAPIを取得・解凍して、Tomcatのlibディレクトリに配置し、所有者をtomcatに変更します。
─────────────────────────────────────
# pwd
/usr/local/tomcat/lib
# chown tomcat:tomcat mail.jar
─────────────────────────────────────


手順5) Tomcatのserver.xmlのエンコーディング設定
/usr/local/tomcat/conf/servver.xml を開き、Connectorに「URIEncoding="UTF-8"」が未設定であれば、設定します。
─────────────────────────────────────
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8" />
    ・・・
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
─────────────────────────────────────


手順6) Roller用ディレクトリの作成
イメージファイルのアップロード先などとなるディレクトリを用意します。
今回は /usr/local/rollerdata/ とします。
─────────────────────────────────────
  # cd  /usr/local/
  # mkdir rollerdata
  # chown tomcat:tomcat rollerdata/
  # cd rollerdata/
  # mkdir mediafiles
  # mkdir searchindex
  # chown tomcat:tomcat *
─────────────────────────────────────


手順7) PostgreSQLへの追加設定
9.1以降のPostgreSQLを使うため、バックスラッシュのエスケープ方法を以前と同じ方法に変更します。
/usr/local/pgsql/data/postgresql.conf を以下のように修正します。
─────────────────────────────────────
#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
#backslash_quote = safe_encoding        # on, off, or safe_encoding
#default_with_oids = off
escape_string_warning = off               #エスケープに関する警告を非表示にする。
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
standard_conforming_strings = off      #標準でバックスラッシュをエスケープする。
#synchronize_seqscans = on
# - Other Platforms and Clients -
#transform_null_equals = off

・・・
─────────────────────────────────────


手順8) Roller用データベースの作成

以下のようにデータベースを作成します。
    データベース名       = rollerdb
    データベースユーザ = rollerdb
    ユーザパスワード    = rollerdb123
─────────────────────────────────────
 # su - postgres
 $ psql -U postgres
 psql (9.1.3)
 Type "help" for help.
 postgres=# CREATE DATABASE rollerdb WITH OWNER=postgres ENCODING='utf-8' TABLESPACE=pg_default;
 CREATE DATABASE

 postgres=# \l
                              List of databases
        Name    |  Owner       | Encoding   | Collate     | Ctype   |   Access privileges
 -----------+----------+----------+---------+-------+-----------------------
  postgres      | postgres     | UTF8         | C            | C        |
  rollerdb       | postgres      | UTF8         | C           | C         |
  template0    | postgres     | UTF8         | C            | C         | =c/postgres          +
                   |                  |                  |               |            | postgres=CTc/postgres
  template1    | postgres     | UTF8          | C            | C         | =c/postgres          +
                   |                  |                  |               |             | postgres=CTc/postgres
 (4 rows)

 postgres=# \connect rollerdb
 You are now connected to database "rollerdb" as user "postgres".

 rollerdb=# CREATE USER rollerdb PASSWORD 'rollerdb123' VALID UNTIL 'infinity';
 CREATE ROLE

 rollerdb=# \du
                              List of roles
  Role name   |                   Attributes                                               | Member of
 -----------+------------------------------------------------+-----------
  postgres      | Superuser, Create role, Create DB, Replication              | {}
  rollerdb       |                                                                                | {}
 
 rollerdb=# GRANT ALL ON SCHEMA public TO rollerdb;
 GRANT
 rollerdb=# \q
 $
─────────────────────────────────────


手順9) Roller用設定ファイルの作成

/usr/local/tomcat/webapps/roller/WEB-INF/classes/roller-custom.properties を作成し、以下の内容を設定します。 JDBCの設定内容は、実際のサーバの設定に合わせてください。
※installation.type には、この段階では auto を設定します。
─────────────────────────────────────
installation.type=auto
mediafiles.storage.dir=/usr/local/rollerdata/mediafiles
search.index.dir=/usr/local/rollerdata/searchindex
log4j.appender.roller.File=/usr/local/rollerdata/roller.log
database.configurationType=jdbc
database.jdbc.driverClass=org.postgresql.Driver
database.jdbc.connectionURL=
jdbc:postgresql://192.168.1.10:5432/rollerdb
database.jdbc.username=rollerdb
database.jdbc.password=rollerdb123
#mail.configurationType=properties
#mail.hostname=
#mail.username=
#mail.password=

─────────────────────────────────────


手順10) ApacheとTomcatの連携(httpサーバとしてApacheを使いたい場合)
今回はmod_jkを使って連携します。

/etc/httpd/conf.d/ssl.conf を修正します。
─────────────────────────────────────
・・・
##
## SSL Virtual Host Context
##
<VirtualHost _default_:443>

JkMount /roller/* rollerWorker     # 追記する
・・・
─────────────────────────────────────

/etc/httpd/conf/httpd.conf を修正します。
─────────────────────────────────────
・・・
#<IfModule mod_disk_cache.c>
#   CacheEnable disk /
#   CacheRoot "/var/cache/mod_proxy"
#</IfModule>
#
#</IfModule>
# End of proxy directives.
Include conf/mod_jk.conf      # 追記する
### Section 3: Virtual Hosts
#
・・・
─────────────────────────────────────

/etc/httpd/conf/mod_jk.conf を作成します。
─────────────────────────────────────
LoadModule jk_module modules/mod_jk.so
<IfModule mod_jk.c>
  JkWorkersFile "/etc/httpd/conf/workers.properties"
  JkLogFile "/etc/httpd/logs/mod_jk.log"
  JkLogLevel emerg
  JkMount /roller rollerWorker
  JkMount /roller/* rollerWorker
</IfModule>

─────────────────────────────────────

/etc/httpd/conf/workers.properties を作成します。
設定内容は、実際のサーバの設定に合わせてください。
─────────────────────────────────────
worker.list=rollerWorker
worker.rollerWorker.port=8009
worker.rollerWorker.host=192.168.1.10
worker.rollerWorker.type=ajp13

─────────────────────────────────────



ファイルの修正、作成が終わったら、Apacheを再起動します。
─────────────────────────────────────
  # service httpd stop
  # service httpd start
─────────────────────────────────────


手順11) Tomcatの起動
─────────────────────────────────────
  # service tomcat start
─────────────────────────────────────


手順12) Rollerのトップページにアクセスし、データベースを作成
「http://192.168.1.10/roller/」のようにRoolerのトップページにアクセスすると、以下のようにデータベースが見つからない旨が表示されますので、「Yes - create tables now」ボタンを押します。
テーブルが見つからない

テーブルが作成されます。
テーブル作成


手順13) Roller用設定ファイルの変更
以上でテーブルの作成が完了しましたので、手順9で作成したRoller設定ファイルを変更します。
installation.type が auto となっていますので、manual に変更します。
─────────────────────────────────────
  # service tomcat stop

  # vi /usr/local/tomcat/webapps/roller/WEB-INF/classes/roller-custom.properties
      installation.type=manual
      ・・・

  # service tomcat start
─────────────────────────────────────



Rollerのソフトウェアのインストールは以上で完了です。
その2では、Rollerの画面を使ったブログの作成方法について説明する予定です。