Roundcube
Обновлено 12 мая 2021
Введение
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 в качестве имени сайта:
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:
Укажите настройки подключения к почтовому серверу и базе данных:
Сохраните полученный файл настроек, кликнув на Save in /tmp:
Полученные настройки скопируйте в /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 используйте логин и пароль от вашего почтового сервера:
Настройка HTTPS
Получение сертификата Let's Encrypt
Получите сертификат домена roundcube.example.org для Nginx согласно руководству.
Настройка поддержки HTTPS в Nginx
Настройте Nginx для поддержки HTTPS согласно руководству.
Настройка HTTPS для Roundcube
Настройте Nginx-обслуживание для доменного имени roundcube.example.org:
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.