インストールガイド · 5 min read · Sep 08, 2025
Ubuntu 22.04にRainloop Webmailをインストールする方法

Rainloopは、PHPで書かれたオープンソースのウェブベースのメールクライアントです。高速で軽量で、SMTPおよびIMAPプロトコルをサポートしています。
このガイドでは、Ubuntu 22.04サーバーにRainloopクライアントをインストールする方法を説明します。
前提条件
- Ubuntu 22.04を実行しているサーバー。
- サーバーを指すドメイン名。チュートリアルでは、
rainloop.example.comドメインを使用します。 - sudo権限を持つ非rootユーザー。
- すべてが更新されていることを確認してください。
$ sudo apt update && sudo apt upgrade - 基本的なユーティリティパッケージをインストールします。いくつかはすでにインストールされているかもしれません。
$ sudo apt install wget curl nano unzip -y
ステップ1 - ファイアウォールの設定
Rainloopをインストールする前の最初のステップは、ファイアウォールを設定することです。ファイアウォールの状態を確認します。
$ sudo ufw status
次のようなものが表示されるはずです。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Rainloopは、HTTPおよびHTTPSポートが必要です。
$ sudo ufw allow http
$ sudo ufw allow https
使用するメールアカウントのポートを開きます。
$ sudo ufw allow 587/tcp
$ sudo ufw allow 993/tcp
$ sudo ufw allow 465/tcp
再度状態を確認して確認します。
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
587/tcp ALLOW Anywhere
993/tcp ALLOW Anywhere
465/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
587/tcp (v6) ALLOW Anywhere (v6)
993/tcp (v6) ALLOW Anywhere (v6)
465/tcp (v6) ALLOW Anywhere (v6)
ステップ2 - Nginxのインストール
Ubuntu 22.04には古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。
Nginxの署名キーをインポートします。
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Nginxの安定版のリポジトリを追加します。
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
システムリポジトリを更新します。
$ sudo apt update
Nginxをインストールします。
$ sudo apt install nginx
インストールを確認します。
$ nginx -v
nginx version: nginx/1.22.0
ステップ3 - PHPのインストールと設定
Ubuntu 22.04にはデフォルトでPHP 8.1が付属しています。しかし、Rainloopが機能するためにはPHP 8.0をインストールする必要があります。最初のステップは、OndrejのPHPリポジトリを追加することです。
$ sudo add-apt-repository ppa:ondrej/php
Rainloopに必要なPHPと拡張機能をインストールします。
$ sudo dnf install php8.0-fpm php8.0-curl php8.0-mbstring php8.0-mysql php8.0-xml php8.0-cli
インストールを確認します。
$ php --version
PHP 8.0.20 (cli) (built: Jun 25 2022 08:12:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
with Zend OPcache v8.0.20, Copyright (c), by Zend Technologies
PHPサービスの状態を確認します。
$ sudo systemctl status php8.0-fpm
? php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-07-04 01:52:55 UTC; 1min 22s ago
Docs: man:php-fpm8.0(8)
Process: 12463 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.0/fpm/pool.d/www.conf 80 (code=exited, status=0/SUCCESS)
Main PID: 12460 (php-fpm8.0)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 2241)
Memory: 8.7M
CPU: 89ms
CGroup: /system.slice/php8.0-fpm.service
??12460 "php-fpm: master process (/etc/php/8.0/fpm/php-fpm.conf)
php.iniファイルを編集のために開きます。
$ sudo nano /etc/php/8.0/fpm/php.ini
メール添付ファイルのサイズを25MBに設定するために、以下の変数の値を変更します。
upload_max_filesize = 25M
post_max_size = 25M
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
/etc/php/8.0/fpm/pool.d/www.confファイルを開きます。
$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf
ファイル内のuser=apacheおよびgroup=apache行を次のように変更します。
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
また、listen.owner = www-dataおよびlisten.group = www-data行を次のように変更します。
...
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
...
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
PHP-FPMサービスを再起動します。
$ sudo systemctl restart php8.0-fpm
ステップ4 - MySQLのインストール
Ubuntu 22.04には最新バージョンのMySQLが付属しています。1つのコマンドでインストールできます。
$ sudo apt install mysql-server
MySQLのバージョンを確認します。
$ mysql --version
mysql Ver 8.0.29-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
このステップはMySQLバージョン8.0.28以上に必要です。MySQLシェルに入ります。
$ sudo mysql
次のコマンドを実行して、rootユーザーのパスワードを設定します。数字、大文字、小文字、特殊文字を組み合わせてください。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
シェルを終了します。
mysql> exit
MySQLのセキュアインストールスクリプトを実行します。
$ sudo mysql_secure_installation
最初にrootパスワードを尋ねられます。入力してください。次に、Validate Password Componentをインストールするかどうかを尋ねられます。これはMySQLで使用されるパスワードの強度をチェックします。Yを押してインストールします。
次に、パスワード検証ポリシーのレベルを設定するように求められます。最も強力な2を選択します。
次に、rootパスワードを変更しないようにNを押します。また、匿名ユーザーを削除し、リモートrootログインを禁止し、テストデータベースを削除し、特権テーブルを再読み込みするためにYを押します。
ステップ5 - MySQLの設定
MySQLシェルにログインします。プロンプトが表示されたらrootパスワードを入力します。
$ sudo mysql -u root -p
Rainloop用のデータベースを作成します。
mysql> CREATE DATABASE rainloop;
データベースにアクセスするためのSQLユーザーを作成します。yourpasswordをお好みのパスワードに置き換えます。
mysql> CREATE USER 'rainuser'@'localhost' IDENTIFIED BY 'YourPassword23!';
rainuserにデータベースへのアクセスを付与します。
mysql> GRANT ALL ON rainloop.* TO 'rainuser'@'localhost';
特権テーブルを再読み込みします。
mysql> FLUSH PRIVILEGES;
シェルを終了します。
mysql> exit
ステップ6 - Rainloopのインストール
Rainloopの公開ディレクトリを作成します。
$ sudo mkdir /var/www/html/rainloop -p
Rainloopの最新バージョンをダウンロードします。
$ wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip
ダウンロードしたファイルを公開ディレクトリに解凍します。
$ sudo unzip rainloop-community-latest.zip -d /var/www/html/rainloop
ディレクトリの所有権をNginxに変更します。
$ sudo chown -R nginx:nginx /var/www/html/rainloop
Rainloopに必要な読み取りおよび書き込み権限を設定します。
$ sudo find /var/www/html/rainloop -type d -exec chmod 755 {} \;
$ sudo find /var/www/html/rainloop -type f -exec chmod 644 {} \;
ステップ7 - SSLのインストール
Let’s Encryptが提供する無料のSSL証明書を生成するためにCertbotをインストールする必要があります。
Ubuntuのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得できます。Snapdバージョンを使用します。
Ubuntu 22.04にはデフォルトでSnapdがインストールされています。次のコマンドを実行して、Snapdのバージョンが最新であることを確認します。
$ sudo snap install core
Certbotをインストールします。
$ sudo snap install --classic certbot
次のコマンドを使用して、Certbotコマンドが/usr/binディレクトリで実行できるようにシンボリックリンクを作成します。
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Rainloop用のSSL証明書を生成します。
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d rainloop.example.com
Diffie-Hellmanグループ証明書を生成します。
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
/etc/letsencrypt/renewal/rainloop.example.com.confファイルを編集のために開きます。
$ sudo nano /etc/letsencrypt/renewal/rainloop.example.com.conf
次のコードを下部に貼り付けます。
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Certbotのスタンドアロンオプションを使用してSSL証明書を生成しました。これは証明書を作成するために独自のウェブサーバーを実行するため、更新中はNginxを停止する必要があります。pre_hookおよびpost_hookコマンドは、更新の前後に自動的にNginxサーバーを停止および再起動するため、手動での介入は必要ありません。
SSL更新が正常に機能しているかどうかを確認するために、プロセスのドライランを行います。
$ sudo certbot renew --dry-run
エラーが表示されなければ、すべて準備完了です。証明書は自動的に更新されます。
ステップ8 - Nginxの設定
nginx.confファイルを編集のために開きます。
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;行を見つけ、その下に次のコードを貼り付けます。
server_names_hash_bucket_size 64;
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Rainloop用のNginx設定ファイルを作成し、編集のために開きます。
$ sudo nano /etc/nginx/conf.d/rainloop.conf
次のコードを貼り付けます。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name rainloop.example.com;
root /var/www/html/rainloop;
index index.php;
client_max_body_size 25M;
access_log /var/log/nginx/rainloop.access.log;
error_log /var/log/nginx/rainloop.error.log;
ssl_certificate /etc/letsencrypt/live/rainloop.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/rainloop.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/rainloop.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_keep_conn on;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ \.ht {
deny all;
}
location ^~ /data {
deny all;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name rainloop.example.com;
return 301 https://$host$request_uri;
}
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Nginxの設定構文を確認します。
$ sudo nginx -t
Nginxサービスを再起動します。
$ sudo systemctl restart nginx
ステップ9 - Rainloopの設定とアクセス
URL https://rainloop.example.com/?adminを介してRainloopの管理者ページを開くと、次のログイン画面が表示されます。

次の認証情報を入力し、Enterを押してログインします。
Username: admin
Password: 12345
Rainloop管理者ダッシュボードが開き、デフォルトのパスワードを変更するよう警告が表示されます。

ダッシュボードのリンクを使用してデフォルトのパスワードを変更します。

新しいパスワードを入力し、パスワードを更新ボタンをクリックして続行します。
RainloopはMySQLを使用して連絡先情報を保存します。連絡先ページを開き、ドロップダウンメニューからMySQLを選択します。

以前に作成したデータベースの認証情報を入力します。

テストボタンを押して接続を確認し、テーブルをインストールします。ボタンが緑色に変わると、接続が成功したことを意味します。
メールアカウントを追加してRainloopの使用を開始できます。
結論
Ubuntu 22.04サーバーにRainloopを正常にインストールしました。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。