Установка ПО · 8 min read · Sep 08, 2025

Как установить Rainloop Webmail на Ubuntu 22.04

Rainloop — это клиент электронной почты с открытым исходным кодом, основанный на веб-технологиях и написанный на PHP. Он быстрый, легковесный и поддерживает протоколы SMTP и IMAP.

Этот гид научит вас устанавливать клиент Rainloop на сервер Ubuntu 22.04.

Предварительные требования

  • Сервер с установленной Ubuntu 22.04.
  • Доменное имя, указывающее на сервер. Для нашего учебника мы будем использовать домен rainloop.example.com.
  • Непривилегированный пользователь с правами sudo.
  • Убедитесь, что все обновлено. $ sudo apt update && sudo apt upgrade
  • Установите базовые утилиты. Некоторые из них могут быть уже установлены. $ sudo apt install wget curl nano unzip -y

Шаг 1 - Настройка брандмауэра

Первый шаг перед установкой Rainloop — настроить брандмауэр. Проверьте статус брандмауэра.

$ sudo ufw status

Вы должны увидеть что-то вроде следующего.

Статус: активен

Кому                       Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде
OpenSSH (v6)               ALLOW       Везде (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
Статус: активен

Кому                       Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде
80/tcp                     ALLOW       Везде
443                        ALLOW       Везде
587/tcp                    ALLOW       Везде
993/tcp                    ALLOW       Везде
465/tcp                    ALLOW       Везде
OpenSSH (v6)               ALLOW       Везде (v6)
80/tcp (v6)                ALLOW       Везде (v6)
443 (v6)                   ALLOW       Везде (v6)
587/tcp (v6)               ALLOW       Везде (v6)
993/tcp (v6)               ALLOW       Везде (v6)
465/tcp (v6)               ALLOW       Везде (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. Первый шаг — добавить репозиторий PHP от Ondrej.

$ 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

Измените значения следующих переменных, чтобы установить размер вложения электронной почты на 25 МБ.

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. Введите свой пароль 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

Нам нужно установить Certbot для генерации бесплатных SSL-сертификатов, предлагаемых Let’s Encrypt.

Вы можете установить Certbot, используя репозиторий Ubuntu, или загрузить последнюю версию с помощью инструмента 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

Сгенерируйте SSL-сертификат для Rainloop.

$ 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, когда будет предложено.

Мы сгенерировали SSL-сертификат, используя автономный вариант Certbot. Он запускает свой веб-сервер для создания сертификата, что означает, что 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;
    }
}
# принудить 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

Откройте страницу администратора Rainloop по URL https://rainloop.example.com/?admin, и вы увидите следующий экран входа.

Вход администратора Rainloop

Введите следующие учетные данные и нажмите Enter, чтобы войти.

Имя пользователя: admin
Пароль: 12345

Панель администратора Rainloop откроется с предупреждением о необходимости изменить ваш пароль по умолчанию.

Предупреждение о пароле администратора Rainloop

Измените пароль по умолчанию, используя ссылку на панели управления.

Экран изменения пароля Rainloop

Введите ваш новый пароль и нажмите кнопку Обновить пароль, чтобы продолжить.

Rainloop использует MySQL для хранения контактной информации. Откройте страницу Контакты и выберите MySQL из выпадающего меню.

Страница контактов Rainloop

Введите учетные данные базы данных, созданные ранее.

Детали MySQL Rainloop

Нажмите кнопку Тест, чтобы проверить соединение и установить таблицы. Если кнопка становится зеленой, это означает, что соединение успешно.

Вы можете начать использовать Rainloop, добавив свои почтовые аккаунты.

Заключение

Вы успешно установили Rainloop на сервер Ubuntu 22.04. Если у вас есть вопросы, оставляйте их в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.