ウェブサイト検索

CentOS/RHEL 8/7にRoundcube Webmailをインストールする方法


Roundcubeは、完全な機能を備えた無料のオープンソースで多言語対応のIMAPウェブメールソフトウェアであり、最新のウェブ標準を使用したアプリケーションのようなユーザーインターフェースを持っています。PHPを使用して構築されており、現代のメールクライアントから期待できる完全な機能を提供します。

Roundcubeの機能:

  • 多言語対応で、70以上の言語をサポートしています。
  • タイプ中に検索できるアドレス帳をサポートしています。
  • 複数の送信者アイデンティティをサポートしています。
  • 高度なプライバシー保護を提供します。
  • グループとLDAPコネクタを備えたフル機能のアドレスブックがあります。
  • リッチテキスト/HTMLメッセージの作成を提供します。
  • メッセージや連絡先の検索をサポートしています。
  • 国際化ドメイン名 (IDNA) をサポートします。
  • フォルダー操作、共有フォルダー、およびACLをサポートしています。
  • プラグインAPIを使用して拡張可能です。
  • スペルチェック機能を提供します。
  • インポート/エクスポート機能を提供します。
  • 柔軟な拡張のためのプラグインAPIやその他多くの機能があります。

推奨システム要件:

  1. 最小インストールのCentOS 8/RHEL 8またはCentOS 7/RHEL 7サーバー。
  2. Apache または Nginx ウェブサーバー
  3. PHPとMySQL/MariaDBデータベース
  4. IMAP4 rev1をサポートするSMTPおよびIMAPサーバー

この記事の範囲では、すでに仮想ユーザーを持つ稼働中のPostfixメールサーバーがあると仮定します。そうでない場合は、セットアップに関するガイドに従ってください:

  1. PostfixメールサーバーとDovecotをMariaDBで設定する - パート1
  2. PostfixとDovecotの仮想ドメインユーザーの設定 - パート2
  3. PostfixメールサーバーにClamAVとSpamAssassinをインストールし統合する - パート3

テスト環境:

この記事の目的のために、Roundcube WebmailをNginxウェブサーバーを搭載したLinode CentOS VPSにインストールします。静的IPアドレスは192.168.0.100、ホスト名はmail.linux-console.netです。

ステップ 1: CentOS 8/7 に Nginx、PHP-FPM、および MariaDB をインストールします

1. まず、EPELおよびREMIリポジトリを有効にし、Nginx、PHP、PHP-FPM、およびMariaDBサーバーをあなたのCentOSシステムにインストールします。

# yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm    [CentOS/RHEL 8]
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm    [CentOS/RHEL 7]
yum install yum-utils 
yum-config-manager --enable remi-php72
yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick mariadb-server   

2. すべてのパッケージのインストールが成功したら、Nginxウェブサーバーを起動し、ブート時に自動起動するように設定し、正常に稼働しているかどうかを確認します。

# systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. 次に、システムファイアウォールが有効になっている場合は、外部リクエストのためにポート80を開く必要があります。

# firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload 

4. 次に、PHP-FPM が正しく動作するように設定する必要があります。コマンドラインのテキストエディタを使用して、ファイル/etc/php.iniを開きます。

# vim /etc/php.ini

;cgi.fix_pathinfo=1という指令を探し、それをコメント解除してその値を0に設定してください。

cgi.fix_pathinfo=0

また、ディレクティブ ;date.timezone のコメントを解除し、その値をあなたのタイムゾーンに設定してください。

date.timezone = "Africa/Kampala"

終わったら、ファイルを保存して終了してください。

5. 次に、PHP-FPM サービスを開始し、自動起動を有効にし、正常に動作しているか確認します。

# systemctl start php-fpm 
systemctl enable php-fpm 
systemctl status php-fpm 

ステップ2: MariaDBサーバーを保護し、Roundcubeデータベースを作成する

6. 次に、以下のコマンドを使用してMariaDBサービスを開始します。

# systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. デフォルトのMariaDBインストールは安全ではありません。セキュリティを確保するために、バイナリパッケージに付属のセキュリティスクリプトを実行する必要があります。ルートパスワードの設定、匿名ユーザーの削除、リモートからのルートログインの無効化、テストデータベースの削除が求められます。

# mysql_secure_installation

8. さて、MariaDBデータベースにログインし、Roundecubeのためのデータベースを作成し、ユーザーにデータベースに対する適切な権限を付与してください(本番環境では強力で安全なパスワードを設定することを忘れないでください)。

# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '=213@!#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

9. 次に、新しく作成したデータベースにRoundcubeのテーブルレイアウトをインポートします。

# cd /var/www/html/roundcubemail/
mysql -u root -p roundcubemail < SQL/mysql.initial.sql

ステップ3:Roundcubeパッケージをダウンロードする

10. このステップでは、ダウンロードページからRoundcubeの最新の安定版(この時点では1.4.9)をダウンロードするか、wgetコマンドラインダウンローダーを使用して取得し、TARファイルを展開し、ファイルをウェブサーバーのドキュメントルートにアップロードします。

# wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
tar xzf roundcubemail-1.4.9-complete.tar.gz 
mv roundcubemail-1.4.9 /var/www/html/roundcubemail

次に、Roundcubeのウェブルートファイルに適切な権限を設定します。

# chown -R nginx:nginx /var/www/html/roundcubemail

ステップ4: RoundcubeウェブインストーラーのためにNginxサーバーブロックを設定する

12. では、/etc/nginx/conf.d/ にRoundcube用のNginxサーバーブロックを作成します(ファイル名は自由に付けて構いませんが、.conf拡張子が必要です)。

# vim /etc/nginx/conf.d/mail.example.com.conf

ファイルに次の設定を追加してください。

server {
        listen 80;
        server_name mail.example.com;

        root /var/www/html/roundcubemail;
        index  index.php index.html;

        #i# Logging
        access_log /var/log/nginx/mail.example.com_access_log;
        error_log   /var/log/nginx/mail.example.com_error_log;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
                deny all;
        }

        location ~ ^/(config|temp|logs)/ {
                deny all;
        }

        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

ファイルを保存して閉じてください。

13. 次に、ファイル /etc/php-fpm.d/www.conf を開いて、PHP-FPM のウェブディレクティブにいくつかの変更を加えます。

# vim /etc/php-fpm.d/www.conf

以下の変数でユーザーapacheをnginxに変更してください。

user = nginx
group = nginx

次に、行listen=127.0.0.1:9000をコメントアウトし、listen変数をnginxサーバーブロックファイルに設定されたUnixソケットでリッスンするように設定します:

listen = /var/run/php-fpm/php-fpm.sock

また、UNIXソケットの権限を設定し、行のコメントを外して以下のように変更してください。

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

完了したら、ファイルを保存して閉じてください。

14. 次に、最近の変更を適用するために、Nginx と PHP-FPM サービスを再起動します。

# systemctl restart nginx php-fpm

ステップ5:Roundcube Web UIにアクセスする

15. インストールウィザードを開始する前に、セッションエラーを避けるために、ディレクトリ/var/lib/php/session/に適切な権限を設定してください。デフォルトのグループ所有者はapacheですが、nginxに変更してください。

# ls -ld /var/lib/php/session/
chown :nginx /var/lib/php/session/
ls -ld /var/lib/php/session/

16. 今、ブラウザを開き、アドレス http://mail.example.com/installer(ドメインは、Roundcube用のNginxサーバーブロックを作成する際に設定したサーバー名に置き換えてください)にアクセスしてウェブインストーラーを開いてください。すべてのPHPバージョン、拡張機能、およびphp.ini/.htaccessの設定が正しい場合、以下のスクリーンショットが表示されます。次へをクリックして、設定ページに進んでください。

http://mail.example.com/installer
OR
http://IP-address/installer

17. 設定ページでは、Roundcubeインスタンスを設定することができます。このガイドの範囲内では、重要なオプションのみを説明します。

一般設定の下で、例えば「Example.com Webmail」というproduct_nameを設定してください。

データベース設定に移動し、データベースホスト、名前、ユーザー、および パスワード を入力してMySQLサーバーに接続します。

次に、IMAPおよびSMTPの設定までスクロールし、IMAPおよびSMTPサーバーのIPアドレスを入力してください。Roundcubeを実行しているサーバーと同じサーバーの場合は、「localhost」のままにし、必要な他のパラメータも指定してください。

必要に応じて他の設定を指定できます。完了したら、設定を作成をクリックしてください。

18. これで、”設定ファイルがあなたのRoundcubeインストールの/var/www/html/roundcubemail/configディレクトリに成功裏に保存されました。 ”というメッセージが表示されているはずです。 続行をクリックしてください。

19. 次のスクリーンショットに示されているように、テスト設定ページから構成を確認できます。

20. 次に、Roundcubeのルートディレクトリから、全てのインストーラーフォルダ(サーバーパスワードや暗号鍵などの機密設定データを公開する恐れのあるファイルを含む)を削除するか、config.inc.phpのenable_installerオプションが無効になっていることを確認してください。

# rm -rf /var/www/html/roundcubemail/installer

21. 最後に、URL http://mail.example.com を使用して、Roundcubeのログインページにアクセスしてください。ユーザー名とパスワードを入力して、メールを確認します。

要約

Roundcubeは、広く使用されている多機能なウェブベースのマルチリンガルメールクライアントです。この記事では、CentOS/RHEL 8/7上にNginxウェブサーバーを使用して、最新の安定版のRoundcube Webmailをインストールする方法を示しました。質問がある場合は、下のフィードバックフォームを使用してご連絡ください。

関連記事: