トップ  »  Tech  »  Web

PHPで実装されたWebmailツール「RoundCube」をCentOS環境にインストールしてみます。


ファイルの入手先。


今回の使用環境。

項目 バージョン
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に組み込んでコンパイルする場合。


ダウンロードしたソースを 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」をクリックし、先に進みます。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_inst00.png


PHPとDB、.htaccessのチェック結果が表示されます。必要な項目がOKになっている場合、NEXTで次に進みます。NOT AVAILABLEの場合は、必要に応じてインストールや設定を行ってください。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_inst01.png

  • ここではPHPのFileInfo、MySQLiがNOT AVAILABLEでした
  • この2つは必須ではないので、このまま進みます
  • PHPにFileInfoを組み込む手順は、上記にメモしてあります

RoundCubeの諸設定を行います。最後に「CREATE CONFIG」をクリックします。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_inst02.png

  • MySQLの設定を記載(DB名、アカウント、パスワード)
  • IMAP Setting、SMTP Settingを記載(どちらもlocalhost)
  • languageをja_JPに設定
  • 他はデフォルトのまま

エラーが無ければmain.inc.phpとdb.inc.phpが生成されてブラウザに表示されます。各ファイルをサーバ内に設置したら次に進みます。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_inst03.png

  • それぞれをRoundCubeインストール先のconfigディレクトリに保存します
  • サーバにログインできるならばvimなどでコピペすればオッケー

インストールの完了画面。各設定を確認できます。また、IMAPへのログインもテストできます。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_inst04.png


インストーラを使用した設定ファイルの生成は完了です。以降で、インストーラへのアクセスは自動的に無効化されます。念のために 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://satospo.sakura.ne.jp/tech_image/webapp/roundcube_sc00.png

  • http://mail.example.jp/webmailr/
    • 各メッセージが日本語化されています
    • IMAPのログインID、パスワードでログインする

「個人設定」をクリックし、RoundCubeの外観を調整します。標準では2ペインレイアウトなので。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_sc01.png

  • 受信箱 -> 「プレビューペインの表示」にチェックを付ける(3ペインレイアウト化)
  • メールの表示 -> 「HTMLを表示」のチェックを外す
  • メールの表示 -> 「リモート画像の表示」を「しない」にする
  • メールの表示 -> 「メールに添付された画像を表示する」のチェックを外す
  • 開封確認を無視する

3ペインレイアウトの例。左側にフォルダ一覧。右側の上段にメール一覧。右側の下段にメール内容の表示。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_sc02.png


メール作成画面。左側で添付ファイルを選択できる。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_sc03.png


IMAP Quotaの利用状況表示

IMAPサーバ側でQuotaが有効になっている場合は、RoundCube側で特に設定をしなくてもユーザのトップページ最下部に利用率が表示されます。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_sc04.png


拡大したところ。マウスカーソルをバーに載せると、使用している値が表示されます。

http://satospo.sakura.ne.jp/tech_image/webapp/roundcube_sc04b.png


ちなみに、容量制限の無いアカウントでログインした場合は「ディスク使用量」が表示されません。IAMPサーバ側でQuotaが有効でない場合や、maildirsizeファイルが生成されていない場合などでも同様になります。


参考

RoundCube本家のパッケージで日本語対応しているが、日本語周りをより調整したバージョンが次のサイトで公開されている。


0.3系の日本語化も検討されてるらしく、今後のリリースにも期待?あとで試してみる。


まとめ

比較的容易にインストールができ、見た目もそこそこ美しいWebmailツールです。メールのチェックと送信くらいだと簡単に使うことができ、動作も軽快な方です。


また、アドレス帳もシンプルな構成で物足りなさを感じます。特にフォルダ分けしたり、共有アドレス帳みたいな機能があればよかったと思います。