もっと詳しく

Rainloopは、PHPで記述されたオープンソースのWebベースの電子メールクライアントです。 高速で軽量で、SMTPおよびIMAPプロトコルをサポートします。

このガイドでは、RainloopクライアントをUbuntu22.04サーバーにインストールする方法について説明します。

前提条件

  • Ubuntu22.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をインストールして設定する

Ubuntu22.04にはデフォルトでPHP8.1が付属しています。 ただし、Rainloopを機能させるには、PHP8.0をインストールする必要があります。 最初のステップは、OndrejのPHPリポジトリを追加することです。

$ sudo add-apt-repository ppa:ondrej/php

PHPとRainloopに必要な拡張機能をインストールします。

 $ 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=apachegroup=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-datalisten.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パスワードの入力を求められます。 それを入力してください。 次に、パスワード検証コンポーネントをインストールするように求められます。 MySQLで使用されているパスワードの強度をチェックします。 プレス Y それをインストールします。

次に、パスワード検証ポリシーのレベルを設定するように求められます。 選ぶ 2 最強のものだから。

次に、を押します N ルートパスワードの変更を拒否します。 また、を押します Y 匿名ユーザーを削除するには、リモートrootログインを禁止し、テストデータベースを削除して、特権テーブルをリロードします。

ステップ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

を生成します ディフィーヘルマングループ 証明書。

$ 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証明書を生成しました。 Webサーバーを実行して証明書を作成します。これは、更新中にNginxをシャットダウンする必要があることを意味します。 The pre_hookpost_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 プロンプトが表示されたら。

NginxのRainloop構成ファイルを作成し、編集用に開きます。

$ 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を介してRainloopの管理者ページを開きます https://rainloop.example.com/?admin 次のログイン画面が表示されます。

次の資格情報を入力し、Enterキーを押してログインします。

Username: admin
Password: 12345

Rainloop管理者ダッシュボードが開き、デフォルトのパスワードを変更するよう警告が表示されます。

Rainloop管理者パスワード警告

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

Rainloopパスワード変更画面

新しいパスワードを入力して、 パスワードの更新 ボタンをクリックして続行します。

RainloopはMySQLを使用して連絡先情報を保存します。 連絡先ページを開き、を選択します MySQL ドロップダウンメニューから。

Rainloop連絡先ページ

以前に作成したデータベースクレデンシャルを入力します。

RainloopMySQLの詳細

を押します テスト ボタンをクリックして接続を確認し、テーブルをインストールします。 ボタンが緑色に変わったら、接続が成功したことを意味します。

メールアカウントを追加することで、Rainloopの使用を開始できます。

結論

これで、RainloopがUbuntu22.04サーバーに正常にインストールされました。 ご不明な点がございましたら、下のコメント欄に投稿してください。

The post Ubuntu22.04にRainloopWebメールをインストールする方法 appeared first on Gamingsym Japan.