Головна Пошта Встановлення Roundcube Webmail на Debian 10/11 з Nginx

Встановлення Roundcube Webmail на Debian 10/11 з Nginx

Встановлення Roundcube Webmail на Debian 10/11 з Nginx
Встановлення Roundcube Webmail на Debian 10/11 з Nginx

Roundcube - безкоштовний поштовий WEB-клієнт написаний на PHP. А тому є чи не найпопулярнішим поштовим клієнтом оскільки не вимагає багато роботи для встановлення і налаштування. Отож встановимо цей поштовий клієнт на наш сервер з Debian.


Крок 1. Завантаження Roundcube Webmail 


Зайдемо по SSH на наш Debian сервер, і за допомогою wget завантажуємо собі сорти Roundcube Webmail

wget https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz

Створимо папку /var/www і розпакуємо туди архів з Roundcube Webmail


tar xvf roundcubemail-1.6.0-complete.tar.gz

sudo mkdir -p /var/www/

sudo mv roundcubemail-1.6.0 /var/www/roundcube

змінимо власника папки з  Roundcube Webmail на www-data

chown www-data:www-data /var/www/roundcube -R

Крок 2. Встановлення PHP залежностей


Встановлюємо php залежності. В Debian за замовчуванням вже є в репозиторії пакунки PHP, але якщо ви хочете додати інший репозиторій, зараз саме час це зробити ;)


apt update

apt install php-net-ldap2 php-net-ldap3 php-imagick php7.4-fpm php7.4-common php7.4-gd php7.4-imap php7.4-mysql php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php7.4-redis

Крок 3. Створення БД і користувача для Roundcube Webmail


Встановимо сервер БД MariaDB


apt install mariadb-server mariadb-client

Залогінимось під рутом


mysql -u root

Створимо базу даних roundcubemail, користувача roundcube, і дамо доступ цьому користувачу до бази даних roundcubemail


CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER roundcube@localhost IDENTIFIED BY 'super_password';

GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;

flush privileges;

exit;

Тепер імпортуємо таблиці Roundcube Webmail в нашу БД


mysql roundcubemail < /var/www/roundcube/SQL/mysql.initial.sql

Крок 4. Створення конфіга хоста в Nginx


Створимо файл конфіга для нашого Roundcube Webmail

nano /etc/nginx/conf.d/roundcube.conf

і помістимо туда таку конфігурацію


server {
  listen 80;
  listen [::]:80;
  server_name mail.example.com;
  root /var/www/roundcube/;
  index index.php index.html index.htm;

  error_log /var/log/nginx/roundcube.error;
  access_log /var/log/nginx/roundcube.access;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
   try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ /.well-known/acme-challenge {
    allow all;
  }
 location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
    deny all;
  }
  location ~ ^/(bin|SQL)/ {
    deny all;
  }
 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

Зберігаємо файл, і перезапускаєм nginx

systemctl reload nginx

Крок 5. Додаємо HTTPS


Для додавання https скористаємось безкоштовним сервісом Let'sEncrypt. Для цього встановимо софтинку, яка буде запитувати сертифікат для нас і встановлювати його на сервер


apt install python3-certbot-nginx

Тепер отримаємо собі сертифікат


certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d mail.example.com

де

  •   --nginx: використовуємо плагін nginx.
  •   --agree-tos: погоджуємось з умовами використання.
  •   --redirect: Примусовий HTTPS через 301 редірект.
  •   --hsts: додавати заголовок Strict-Transport-Security кожному запиту.
  •   --staple-ocsp: Включає OCSP Stapling.

Сертифікат буде отримано і встановлено автоматично. Також certbot створить cron задачу, яка автоматично продовжуватиме сертифікат.


Крок 6. Конфігурація Roundcube Webmail


Перейдемо в директорію Roundcube Webmail

cd /var/www/roundcube/config/

Скопіюємо конфігурацію файл sample і одразу поредагуєм його


cp config.inc.php.sample config.inc.php

nano config.inc.php

Знайдем стрічку 

$config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

і замінимо в ній дані БД на свої


Тоді знайдемо стрічки які відповідають за підключення до сервера IMAP/POP3

$config['imap_host'] = 'localhost:143';

$config['smtp_host'] = 'localhost:587';

і замінимо їх на

$config['imap_host'] = 'tls://mail.example.com:143';

$config['smtp_host'] = 'tls://mail.example.com:587';

вказавши замість mail.example.com свій сервер


Також потрібно замінити DES ключ. Знайдем строчку

$config['des_key'] = 'rcmail-!24ByteDESkey*Str';

і пропишемо в ній яку небудь іншу стрічку, наприклад

$config['des_key'] = '87Usda0*ASd09ASDlk=';

Roundcube Webmail має дуже багато функціональних плагінів, але по замовчуванню вони неактивні, тож активуємо їх!

Знайдемо стрічку

// List of active plugins (in plugins/ directory)
$config['plugins'] = [
    'archive',
    'zipdownload',
];

і поміняємо її на 

// List of active plugins (in plugins/ directory)
$config['plugins'] = [
    'acl',
    'additional_message_headers', 
    'archive', 'attachment_reminder',
    'autologon',
    'debug_logger',
    'emoticons',
    'filesystem_attachments',
    'help',
    'hide_blockquote',
    'http_authentication',
    'identicon',
    'identity_select',
    'jqueryui',
    'krb_authentication', 
   'managesieve', 
   'markasjunk',
    'new_user_dialog',
    'new_user_identity',
    'newmail_notifier',
    'password', 
   'reconnect', 
   'redundant_attachments', 
   'show_additional_headers', 
    'squirrelmail_usercopy', 
   'subscriptions_option',
    'userinfo',
    'vcard_attachments',
    'virtuser_file',
    'virtuser_query',
    'zipdownload'
];

ви можете почитати більше про плагіни на офіційному сайті, і додати або забрати якісь із них.


Також можна включити автоматичну перевірку правопису додавши стрічку 

$config['enable_spellcheck'] = true;

Зберігаєм файлик, і не забуваємо витерти інсталлер

rm /var/www/roundcube/installer/ -r

Ось і все!


Гарного адміністрування!

perm_identity event

Коментарі