PHPで実装されたWebmailツール「RoundCube」をCentOS環境にインストールしてみます。
- 前提となる環境:Postfix+Dovecotでメールサーバ構築
- 参考:RoundCubeのインストール
ファイルの入手先。
- http://roundcubemail.sourceforge.net/
- http://sourceforge.net/projects/roundcubemail/files/
- roundcubemail-0.2.2.tar.gz
今回の使用環境。
| 項目 | バージョン |
|---|---|
| OS | CentOS 5.3(i386版) |
| Postfix | postfix-2.3.3-2.1.i386 (RPM) |
| Dovecot | dovecot-1.1.16(ソース) |
| Apache | httpd-2.2.11(ソース) |
| PHP | php-5.2.10(ソース,Apacheモジュールとして動作) |
| MySQL | mysql-server-5.0.45-7.el5 (RPM) |
Apacheに組み込んだモジュール。
- DSO、SSL、rewrite
PHPに組み込んだモジュール。libiconvとimapは組み込んでいません。
- mbstring
- gd
- pcre
- pear
- mysql、pdo-mysql
- sqlite、pdo-sqlite
- pgsql、pdo-pgsql
- mcrypt
- gettext
- openssl
- zip
RoundCubeの動作環境について
RoundCube 0.22が要求する動作環境は次のとおりです。
- PHP Version 5.2.0 or greater including
- PCRE (perl compatible regular expression)
- Session support
- Libiconv (recommended)
- OpenSSL (recommended)
- FileInfo (optional)
- Multibyte/mbstring (optional)
- Mcrypt (optional)
- php.ini options:
- error_reporting E_ALL & ~E_NOTICE (or lower)
- file_uploads on (for attachment upload features)
- session.auto_start needs to be off
- A MySQL or PostgreSQL database engine or the SQLite extension for PHP
- An SMTP server (recommended) or PHP configured for mail delivery
PHPに必要なモジュールを組み込んでおき、php.iniで設定します。もしくは、Apache側を設定しておき、.htaccessファイルで上書きできる環境にします。
PHPにFileInfoを静的に組み込む場合(参考)
PCREのFileInfoをPHPに組み込んでコンパイルする場合。
- FileInfoの入手先
- http://pecl.php.net/package/Fileinfo
- Fileinfo-1.0.4.tgz
ダウンロードしたソースを phpsrc/ext/ に fileinfo として展開する。PHPのconfigureスクリプトを再構築します。
[root]# rm -f configure [root]# ./buildconf --force
これで configure --help で --with-fileinfo の説明が表示されるようになります。あとは --with-fileinfo を付けてPHPのconfigureを実行し、makeとmake installをすればオッケーです。
RoundCubeの展開
ダウンロードしたアーカイブをインストール先(/var/www/webmailr)に展開します。展開後に全ファイルのオーナーをApache実行ユーザ(daemon)に変更しておきます。
[root]# cd /var/www [root]# tar xzvf /usr/local/src/roundcubemail-0.2.2.tar.gz [root]# mv roundcubemail-0.2.2/ webmailr [root]# chown -R daemon. webmailr/
データベースの準備
RoundCubeではユーザ毎の設定項目をデータベースに保存します。使用可能なデータベースは、MySQL/PostgreSQL/SQLiteです。ここでは、MySQLを使用しました。
MySQLにRoundCube用のデータベースとユーザを作ります。
[root]# mysqladmin create --default-character-set=utf8 -u root -ppassword roundcube [root]# mysql -u root -ppassword mysql> grant all on roundcube.* to roundcube identified by 'roundcube!';
作成されたデータベースは、次のとおりです。
| 項目 | 値 |
|---|---|
| DB名 | roundcube |
| ユーザ名 | roundcube |
| パスワード | roundcube! |
作成したデータベースにRoundCubeのテーブルを作成します。付属のSQLファイルを利用します。ここではMySQL5をバックエンドとしているので、mysql.initial.sqlファイルを使います。
[root]# cd /var/www/webmailr/SQL [root]# mysql -u roundcube -proundcube! roundcube < mysql.initial.sql
Apache側の設定
httpd.confでRoundCubeインストール先の設定をします。
# RoundCube Webmail Test - 2009/09/02 - <Directory "/var/www/webmailr"> AllowOverride All DirectoryIndex index.php index.html index.htm </Directory>
PHPやmod_rewriteのオプションなどは、RoundCubeインストール先に用意されている.htaccessファイルで設定されます。そのため、Apache側でAllowOverrideをAllにしておく必要があります。
RoundCubeインストーラ
クライアントPCのWebブラウザでRoundCubeのインストーラにアクセスします。
- http://mail.example.jp/webmailr/installer/
インストーラにアクセスすると、PHPとDBの要求仕様が表示されます。「START INSTALLATION」をクリックし、先に進みます。
PHPとDB、.htaccessのチェック結果が表示されます。必要な項目がOKになっている場合、NEXTで次に進みます。NOT AVAILABLEの場合は、必要に応じてインストールや設定を行ってください。
- ここではPHPのFileInfo、MySQLiがNOT AVAILABLEでした
- この2つは必須ではないので、このまま進みます
- PHPにFileInfoを組み込む手順は、上記にメモしてあります
RoundCubeの諸設定を行います。最後に「CREATE CONFIG」をクリックします。
- MySQLの設定を記載(DB名、アカウント、パスワード)
- IMAP Setting、SMTP Settingを記載(どちらもlocalhost)
- languageをja_JPに設定
- 他はデフォルトのまま
エラーが無ければmain.inc.phpとdb.inc.phpが生成されてブラウザに表示されます。各ファイルをサーバ内に設置したら次に進みます。
- それぞれをRoundCubeインストール先のconfigディレクトリに保存します
- サーバにログインできるならばvimなどでコピペすればオッケー
インストールの完了画面。各設定を確認できます。また、IMAPへのログインもテストできます。
インストーラを使用した設定ファイルの生成は完了です。以降で、インストーラへのアクセスは自動的に無効化されます。念のために installerディレクトリを削除しておくとよいでしょう。
再びインストーラーを使用したい場合は main.inc.php の次の場所をtrueに変更します。
$rcmail_config['enable_installer'] = true;
日本語環境用の微調整をします。main.inc.phpの次の2ヶ所を変更しておきます。
$rcmail_config['date_long'] = 'Y/m/d H:i'; $rcmail_config['timezone'] = +9;
RoundCubeにログイン
クライアントPCのWebブラウザでRoundCubeにアクセスします。
- http://mail.example.jp/webmailr/
- 各メッセージが日本語化されています
- IMAPのログインID、パスワードでログインする
「個人設定」をクリックし、RoundCubeの外観を調整します。標準では2ペインレイアウトなので。
- 受信箱 -> 「プレビューペインの表示」にチェックを付ける(3ペインレイアウト化)
- メールの表示 -> 「HTMLを表示」のチェックを外す
- メールの表示 -> 「リモート画像の表示」を「しない」にする
- メールの表示 -> 「メールに添付された画像を表示する」のチェックを外す
- 開封確認を無視する
3ペインレイアウトの例。左側にフォルダ一覧。右側の上段にメール一覧。右側の下段にメール内容の表示。
メール作成画面。左側で添付ファイルを選択できる。
IMAP Quotaの利用状況表示
IMAPサーバ側でQuotaが有効になっている場合は、RoundCube側で特に設定をしなくてもユーザのトップページ最下部に利用率が表示されます。
拡大したところ。マウスカーソルをバーに載せると、使用している値が表示されます。
ちなみに、容量制限の無いアカウントでログインした場合は「ディスク使用量」が表示されません。IAMPサーバ側でQuotaが有効でない場合や、maildirsizeファイルが生成されていない場合などでも同様になります。
参考
RoundCube本家のパッケージで日本語対応しているが、日本語周りをより調整したバージョンが次のサイトで公開されている。
0.3系の日本語化も検討されてるらしく、今後のリリースにも期待?あとで試してみる。
まとめ
比較的容易にインストールができ、見た目もそこそこ美しいWebmailツールです。メールのチェックと送信くらいだと簡単に使うことができ、動作も軽快な方です。
また、アドレス帳もシンプルな構成で物足りなさを感じます。特にフォルダ分けしたり、共有アドレス帳みたいな機能があればよかったと思います。










