プロジェクト

全般

プロフィール

Roundcube Mail(Webメールサーバ)構築

簡易構築

ここではとりあえず使えるようにする場合を想定します。
オプション機能はある程度は有効にします。
 

前提条件

前提条件として、次のソフトウェアが必要になります。
DBはMySQL、PostgreSQL、MSSQLが利用できますが、今回はMySQLとします。

  • Apache
  • PHP (5.2以上が必要なため、標準rpmでは不可)
  • MySQL (php導入時にインストールされる為、設定のみ)

また、既存のメールサーバが存在しない場合には、下記の
メールサーバ環境も必要になります。

加えて、ウェブブラウザで情報をやりとりするため、
可能な限りOpenSSLを使用し、ApacheでHTTPS暗号化通信
を行えるようにしておくことが望ましいでしょう。

参考(下記に加え、virtualhostで443ポートを設定する必要があります)
セキュア暗号化通信を設定する(SSL)
 

インストール

上記ページによる前提条件の導入を済ませた状態とします。

パッケージについては、大きな変更ではないのですが
日本語文字化けを修正した当サイト改修版を使用します。
(恐らくメジャーバージョンが同一場合、オフィシャル版
 でも条件は変わらないと思います)

  • ここでは例として、「/usr/local/roundcube」に設置します。
    # mkdir /usr/local/work
    # cd /usr/local/work
    
    # wget http://nanako-net.info/wp-content/uploads/2010/05/roundcube-0.5.2-nni.zip
    # unzip roundcube-0.5.2-nni.zip
    
    # cp -Rp roundcube-0.5.2-nni ../roundcube
    

     

データベースの作成

  • ここでは下記の設定とする。
    ・DB「roundcube」
    ・DBユーザ「rc_user」
    ・DBユーザパスワード「password」
    # mysql -u root -p
    Enter password:(パスワードを入力)
    
    mysql> create database roundcube default character set=utf8;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> grant all privileges on roundcube.* to "rc_user"@"localhost" identified by "password";
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> quit
    Bye
    
    # cd /usr/local/roundcube
    # mysql roundcube -u rc_user -p < SQL/mysql.initial.sql
    Enter password:(パスワードを入力)
    
    

     

設定

下記のファイルを変更する。

  • config/db.inc.php
    • データベース設定ファイル
  • config/main.inc.php
    • 基本設定ファイル
  • /etc/httpd/conf/httpd.conf
    • WEBサーバ基本設定ファイル
       
  • データベース設定
    # cd /usr/local/roundcube
    # vi config/db.inc.php
    ------------------------------------------------------
    # 変更箇所のみ記載
    $rcmail_config['db_dsnw'] = 'mysql://rc_user:password@localhost/roundcube';
    
  • 基本設定
    # cd /usr/local/roundcube
    # vi config/main.inc.php
    ------------------------------------------------------
    # 変更箇所のみ記載
    $rcmail_config['mail_domain'] = 'example.co.jp'; (←自分のドメイン名を指定する)
    $rcmail_config['enable_installer'] = true;
    $rcmail_config['support_url'] = 'http://example.co.jp';
    

     
  • WEBサーバ設定
    「http://localhost/roundcube」として設定する。
    # vi /etc/httpd/conf/httpd.conf
    ------------------------------------------------------
    # 変更箇所のみ記載
    ServerAdmin root@localhost
    ServerName example.co.jp:80
    
    NameVirtualHost *:80
    
    <VirtualHost _default_:80>
        ServerAdmin root@example.co.jp
        DocumentRoot /var/www/html
        ServerName www.example.co.jp:80
        ErrorLog logs/virtualhost80-error.log
        CustomLog logs/virtualhost80-custom.log common
    
        Alias  /roundcube    /usr/local/roundcube
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
    
        <Directory "/usr/local/roundcube">
            AllowOverride All
            DirectoryIndex index.php index.html index.htm
        </Directory>
    </VirtualHost>
    
  • roundcubeの所有権をWEBサーバにして、WEBサーバを起動する。
    # chown -R apache.apache /usr/local/roundcube
    
    # service httpd start
    httpd を起動中:                                            [  OK  ]
    
    # chkconfig httpd on
    # chkconfig --list httpd
    httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
    

     

初回起動、不足機能確認

  • wordpressは初回のwebアクセス時に、ブラウザで設定や不足パッケージの確認を
    行えるようになっている。ここまでの設定が完了している場合、WEBブラウザで
    アクセスを行いながら、残りの作業を行う。
    (WEBブラウザでアクセス)
    http://サーバのIPアドレス/roundcube/installer
    

  • phpの機能として、必須ではないが「FileInfo」が足りない
  • phpの機能として、必須ではないが「Intl」が足りない
  • php.iniの「date.timezone」がよろしくない

とのことなので、順番に対応していってみる。

  • 「FileInfo」導入
    以下にrpmがあるので、ダウンロードして導入する。
    # wget http://rpms.famillecollet.com/enterprise/5/olds/x86_64/php-pecl-Fileinfo-1.0.4-3.el5.remi.x86_64.rpm
    # rpm -ivh *.rpm
    
  • 「Intl」導入
    非常に面倒なので省略する。(php5.3ならば、デフォルトで有効になっている)
    どうしてもやりたい人はこちら。 PHP-PEAR(pecl)のインストール
  • php.iniのタイムゾーン設定
    # vi /etc/php.ini
    ------------------------------------------------------
    # 変更箇所のみ記載
    date.timezone = Asia/Tokyo
    
  • ここまで設定したら、httpdを再起動する。
    # service httpd restart
    
  • 最終チェック

    口惜しいが、「Intl」以外がOKになっていることを確認し、次へ。
    PHP-PEAR(pecl)のインストール をやった人は全部OKになる)
     
  • コンフィグファイル生成は、既に手動で作成しているのでスキップされる。
  • 最後にコンフィグのテストを行う事が出来る。

    サーバが「localhost」であること、メールサーバ構築で作成した
    「test01」ユーザでログインできることが確認できれば問題無い。
  • なお、最後にインストーラを削除する旨が赤枠で記載されている。
    セキュリティ的にも望ましくないので、フォルダの削除か退避を
    行うこと。
# rm -rf /usr/local/roundcube/installer

 

動作確認

  • 改めて、次のアドレスにアクセスする。
    「http://サーバのIPアドレス/roundcube」
  • 警告が表示されず、先ほどテストしたアカウントでログインが出来ること。

以上、おつかれさまでした。
 

 

戻る