Roundcube

Обновлено 12 мая 2021

Roundcube

Введение

Roundcube — клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием JavaScript, CSS, HTML и технологии AJAX. Устанавливается практически на любой сервер с поддержкой PHP версии 5.4.0 или выше, в качестве базы данных может использовать MySQL, PostgreSQL, SQLite, MSSQL или Oracle Database, предоставляет возможность работы с почтовыми ящиками по протоколам IMAP и SMTP.

Подготовка LXC контейнера

Мы рекомендуем выполнить установку Roundcube в отдельном контейнере, настроив его согласно инструкции.

Установка и настройка Nginx

Установите и настройте веб-сервер Nginx и выполните настройку PHP-FPM согласно руководству.

Настройте Nginx для Roundcube, указав roundcube.example.org в качестве имени сайта:

/etc/nginx/sites-enabled/roundcube.example.org.conf
upstream php-handler {
    server unix:/run/php-fpm.socket;
}

server {
    listen 80;
    server_name roundcube.example.org;
    root /var/calculate/www/roundcube/roundcubemail-latest;
    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 ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
        deny all;
    }
    location ~ ^/(bin|SQL)/ {
        deny all;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass php-handler;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi.conf;
    }
}

Установка и настройка PostgreSQL

Установите и настройте PostgreSQL согласно руководству, используя авторизацию по паролю, создав пользователя roundcube и базу данных roundcubemail.

Установка и настройка Roundcube

Настройте пользователя roundcube, созданного для PostgreSQL:

mkdir /var/calculate/www

useradd -m -s /sbin/nologin -d /var/calculate/www/roundcube roundcube

Установка Roundcube

Установите Roundcube на свой веб-сервер:

su - -s /bin/bash roundcube

mkdir versions

VERSION=$(curl -s https://api.github.com/repos/roundcube/roundcubemail/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest RoundCube version is $VERSION"

wget "https://github.com/roundcube/roundcubemail/releases/download/${VERSION}/roundcubemail-${VERSION}-complete.tar.gz" -P versions

tar xf versions/roundcubemail-${VERSION}-complete.tar.gz -C versions

rm versions/roundcubemail-${VERSION}-complete.tar.gz

ln -s versions/roundcubemail-${VERSION} ./roundcubemail-latest

exit

chown -R nginx. /var/calculate/www/roundcube/roundcubemail-latest/{temp,logs}

Настройка через веб-интерфейс

Для настройки через веб-интерфейс откройте в браузере сайт http://roundcube.org/installer и выполните заключительную настройку Roundcube:

Настройка Roundcube

Укажите настройки подключения к почтовому серверу и базе данных:

Настройка подключения к почтовому серверу и базе данных Roundcube

Сохраните полученный файл настроек, кликнув на Save in /tmp:

Настройка Roundcube

Полученные настройки скопируйте в /var/calculate/www/example.org/roundcube/config:

cp /tmp/config.inc.php /var/calculate/www/roundcube/roundcubemail-latest/config/config.inc.php

chown roundcube. /var/calculate/www/roundcube/roundcubemail-latest/config/config.inc.php

После завершения настройки Roundcube, включая инициализацию базы данных, удалите папку /var/calculate/www/roundcube/roundcubemail-latest/installer/, содержащую конфиденциальную информацию о настройках сервера:

rm -rf /var/calculate/www/roundcube/roundcubemail-latest/installer

Откройте в браузере сайт http://example.org/roundcube/. Для авторизации в Roundcube используйте логин и пароль от вашего почтового сервера:

Авторизация в Roundcube

Настройка HTTPS

Получение сертификата Let's Encrypt

Получите сертификат домена roundcube.example.org для Nginx согласно руководству.

Настройка поддержки HTTPS в Nginx

Настройте Nginx для поддержки HTTPS согласно руководству.

Настройка HTTPS для Roundcube

Настройте Nginx-обслуживание для доменного имени roundcube.example.org:

/etc/nginx/sites-enabled/roundcube.example.org.conf
upstream php-handler {
    server unix:/run/php-fpm.socket;
}

server {
    listen 80;
    server_name roundcube.example.org;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/roundcube.example.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/roundcube.example.org/privkey.pem;
    include ssl.conf;

    server_name roundcube.example.org;
    root /var/calculate/www/roundcube/roundcubemail-latest;
    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 ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
        deny all;
    }
    location ~ ^/(bin|SQL)/ {
        deny all;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass php-handler;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi.conf;
    }
}

Заключение

Roundcube настроен и готов к работе! Для установки и настройки плагинов воспользуйтесь статьёй Работа с Roundcube.