CentOS/RHEL 8/7にRoundcube Webmailをインストールする方法
Roundcubeは、完全な機能を備えた無料のオープンソースで多言語対応のIMAPウェブメールソフトウェアであり、最新のウェブ標準を使用したアプリケーションのようなユーザーインターフェースを持っています。PHPを使用して構築されており、現代のメールクライアントから期待できる完全な機能を提供します。
Roundcubeの機能:
- 多言語対応で、70以上の言語をサポートしています。
- タイプ中に検索できるアドレス帳をサポートしています。
- 複数の送信者アイデンティティをサポートしています。
- 高度なプライバシー保護を提供します。
- グループとLDAPコネクタを備えたフル機能のアドレスブックがあります。
- リッチテキスト/HTMLメッセージの作成を提供します。
- メッセージや連絡先の検索をサポートしています。
- 国際化ドメイン名 (IDNA) をサポートします。
- フォルダー操作、共有フォルダー、およびACLをサポートしています。
- プラグインAPIを使用して拡張可能です。
- スペルチェック機能を提供します。
- インポート/エクスポート機能を提供します。
- 柔軟な拡張のためのプラグインAPIやその他多くの機能があります。
推奨システム要件:
- 最小インストールのCentOS 8/RHEL 8またはCentOS 7/RHEL 7サーバー。
- Apache または Nginx ウェブサーバー
- PHPとMySQL/MariaDBデータベース
- IMAP4 rev1をサポートするSMTPおよびIMAPサーバー
この記事の範囲では、すでに仮想ユーザーを持つ稼働中のPostfixメールサーバーがあると仮定します。そうでない場合は、セットアップに関するガイドに従ってください:
- PostfixメールサーバーとDovecotをMariaDBで設定する - パート1
- PostfixとDovecotの仮想ドメインユーザーの設定 - パート2
- 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をインストールする方法を示しました。質問がある場合は、下のフィードバックフォームを使用してご連絡ください。







