如何在 Ubuntu 22.04 上安装 Rainloop Webmail如何在 Ubuntu 22.04 上安装 Rainloop Webmail如何在 Ubuntu 22.04 上安装 Rainloop Webmail如何在 Ubuntu 22.04 上安装 Rainloop Webmail
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 22.04 上安装 Rainloop Webmail

本教程适用于这些操作系统版本

  • Ubuntu 22.04(果酱水母)
  • Ubuntu 18.04(仿生海狸)

在此页

  1. 先决条件
  2. 第 1 步 - 配置防火墙
  3. 第 2 步 - 安装 Nginx
  4. 第 3 步 - 安装和配置 PHP
  5. 第 4 步 - 安装 MySQL
  6. 第 5 步 - 配置 MySQL
  7. 第 6 步 - 安装 Rainloop
  8. 第 7 步 - 安装 SSL
  9. 第 8 步 - 配置 Nginx
  10. 第 9 步 - 配置和访问 Rainloop
  11. 结论

Rainloop 是一个开源的、基于 Web 的电子邮件客户端,用 PHP 编写。它速度快、轻量级,并支持 SMTP 和 IMAP 协议。

本指南将教您在 Ubuntu 22.04 服务器上安装 Rainloop 客户端。

先决条件

  • A server running Ubuntu 22.04.

  • A domain name pointing to the server. For our tutorial, we will use the rainloop.example.com domain.

  • A non-root user with sudo privileges.

  • Make sure everything is updated.

    $ sudo apt update && sudo apt upgrade
    
  • Install basic utility packages. Some of them may already be installed.

    $ 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。第一步是添加 Ondrejs 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=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。您可以使用单个命令安装它。

$ 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 拒绝更改您的 root 密码。此外,按 Y 删除匿名用户、禁止远程 root 登录、删除测试数据库并重新加载权限表。

第 5 步 - 配置 MySQL

登录到 MySQL 外壳。出现提示时输入您的根密码。

$ 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

我们需要安装 Certbot 来生成 Lets Encrypt 提供的免费 SSL 证书。

您可以使用 Ubuntu 存储库安装 Certbot,也可以使用 Snapd 工具获取最新版本。我们将使用 Snapd 版本。

Ubuntu 22.04 默认安装了 Snapd。运行以下命令以确保您的 Snapd 版本是最新的。

$ sudo snap install core

安装 Certbot。

$ sudo snap install --classic certbot

使用以下命令通过创建指向 /usr/bin 目录的符号链接来确保可以运行 Certbot 命令。

$ 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  -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 证书。它运行其 Web 服务器来创建证书,这意味着 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 来保存文件。

为 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 https://rainloop.example.com/?admin 打开 Rainloops 管理员页面,您将看到以下登录屏幕。

输入以下凭据,然后按 enter 键登录。

Username: admin
Password: 12345

Rainloop 管理员仪表板将打开并显示一条警告,要求您更改默认密码。

使用仪表板中的链接更改默认密码。

输入您的新密码,然后单击“更新密码”按钮继续。

Rainloop 使用 MySQL 来存储联系信息。打开联系人页面并从下拉菜单中选择 MySQL。

输入之前创建的数据库凭据。

按测试按钮检查连接并安装表格。如果按钮变为绿色,则表示连接成功。

您可以通过添加您的邮件帐户来开始使用 Rainloop。

结论

您已在 Ubuntu 22.04 服务器上成功安装 Rainloop。如果您有任何问题,请在下面的评论中发表。

©2015-2025 艾丽卡 support@alaica.com