roundcube0.3.1+SQLiteのインストール

FreeBSDRoundcubeを再インストールしたのでメモ。
RoundcubeとはIMAPサーバへのwebインタフェース。まあ、Gmailへのインタフェースと思えば。
いわゆるLAMPサーバ上で動くが、FreeBSD, Apache, SQLite, PHP5の組み合わせでだって動く。


インストール

apache, php5がインストールされている前提。

roundcubeインストール。packagesの出来合い設定だと都合が悪いのでportsでインストールする。
わざわざMySQL, PostgreSQLなんて重いDBを使いたくないのでチェックマークを外し、SQLiteにチェックする。
さらにSSLにもチェックし、make install cleanする。

$ cd /usr/ports/mail/roundcube
# make config
<オプションを選択>
# make install clean

sqliteもインストールする。
sqlite2じゃないとダメなので注意。ただ、こちらはデフォルト設定でよいのでpackagesでインストール。portsとpackagesの使い分けこそFreeBSDのキモ。
なお、sqlite3とは競合しないので問題無し。(sqlite3はsqlite3、sqlite2はsqliteとしてインストールされる)

# pkg_add -r sqlite2
Fetching ftp://ftp1.jp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/sqlite2.tbz... Done.


apacheの設定

roundcubeは/usr/local/www/roundcubeにインストールされるので、apacheの公開ディレクトリにaliasを作る。

apache設定ファイル/usr/local/etc/apache22/httpd.confに以下の記載を追加。

Alias /roundcube /usr/local/www/roundcube
<Directory /usr/local/www/roundcube>
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

apacheの再起動を忘れないこと。下記のrcrestartコマンドは便利な管理ツール。

# rcrestart apache22
Performing sanity check on apache22 configuration:
Syntax OK
Stopping apache22.
Waiting for PIDS: 23644.
Syntax OK
Starting apache22.


roundcubeの設定

最低限、データベース設定ファイルである/usr/local/www/roundcube/config/db.inc.phpを修正すればOK。
ここでデータベースのタイプ(sqliteか、mysqlか)と、データベースへの接続方法を指定する。
sqliteにするので、mysql指定になっている行をコメントアウトして、例に沿って一行追加。
sqliteなのでデータベースのファイルを指定する。念のためroundcubeディレクトリとは別の場所にした。

◎/usr/local/www/roundcube/config/db.inc.php

//$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
$rcmail_config['db_dsnw'] = 'sqlite:////usr/local/www/maildb/mail.db?mode=0646';
// postgres example: 'pgsql://roundcube:pass@localhost/roundcubemail';
// Warning: for SQLite use absolute path in DSN:
// sqlite example: 'sqlite:////full/path/to/sqlite.db?mode=0646';


データベースファイルの作成

上記で指定した場所にファイルを作り、データベースの初期設定をする。
sqliteからは「.quit」で抜ける。オーナを変更する。
なお、マニュアルにはchmod o+wするように書いてあるが、web serverが読み書きできれば良いので省略。

# mkdir /usr/local/www/maildb/
# cd /usr/local/www/maildb
# sqlite -init ../roundcube/SQL/sqlite.initial.sql mail.db
Loading resources from ../roundcube/SQL/sqlite.initial.sql
SQLite version 2.8.17
Enter ".help" for instructions
sqlite> .quit
# chown -R www:www ../maildb

アクセス

あとはブラウザでhttp://webサーバ/roundcube/へアクセス。
ユーザ、パスワード、IMAPサーバを入力すればOK。
Gmailの場合は、「ssl://imap.gmail.com:993」と指定すれば良い。


Gmail用設定

Gmailにしか繋がない、という場合には、roundcubeの設定ファイルを修正しておけば、サーバ名の入力を省略できる。…ただ、サーバ名入力フォーム自体が無くなるので注意。

# vi /usr/local/www/roundcube/config/main.inc.php

//$rcmail_config['default_host'] = '';
$rcmail_config['default_host'] = 'ssl://imap.gmail.com:993';