Проект

Общее

Профиль

Использование сервера TEGU с интерфейсом Roundcube

Roundcube — клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием JavaScript, CSS, HTML и технологией AJAX.

  • Для работы Roundecube понадобится PHP версии 7.3.0 или выше.
  • В качестве СУБД могут использоваться:
    • MySQL,
    • PostgreSQL,
    • SQLite,
    • MSSQL,
    • Oracle Database.

В связи с тем, что Почтовый сервер TEGU использует Postgres, мы считаем целесообразным и с Roundecube использовать эту прекрасную СУБД. Поэтому данный рецепт описывает установку Webmail с Postgres.

Подготовка к установке

Рассмотрим установку на базе Linux Debian 11

Настройка и установка системной локали по умолчанию

dpkg-reconfigure locales
выбираем
ru_RU.UTF-8

Установка, настройка и изменение часового пояса

timedatectl set-timezone Europe/Moscow

Посмотреть список всех timezоne

Посмотреть список всех timezоne, доступных для установки на сервере, можно командой:

timedatectl list-timezones

Обновление списка timezone на сервере

Перед настройкой или изменением часового пояса, рекомендуется обновить список timezone на сервере. Они периодически меняются:

apt update && apt upgrade tzdata

Настройка синхронизации времени через интернет

Настроим синхронизацию времени через интернет, смотрим что у нас настроено в качестве службы обновления времени:

timedatectl

Установка Roundcube Webmail

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

Распаковываем архив

tar xvf roundcubemail-1.6.2-complete.tar.gz

Создаем папку:

mkdir -p /var/www/

Перемещаем /var/www/roundcube :

mv roundcubemail-1.6.2 /var/www/roundcube

Задаем права:

chown -R www-data:www-data /var/www/roundcube/
chmod -R 775 /var/www/roundcube/
cd /var/www/roundcube
chown www-data:www-data temp/ logs/ -R

Устанавливаем компоненты PHP

apt install software-properties-common
apt-get install ca-certificates apt-transport-https software-properties-common curl lsb-release -y
curl -sSL https://packages.sury.org/php/README.txt | bash -x
apt update
apt install php-net-ldap2 php-net-ldap3 php-imagick php8.1-common php8.1-pgsql php8.1-gd php8.1-imap php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redis libapache2-mod-php8.1 php8.1-ldap php8.1-imagick

Устанавливаем Postgres

apt install postgresql postgresql-contrib

Проверяем статус службы:

systemctl status postgresql

Сразу после установки проверяем слушает ли сервер порт 5432 и на каком адресе:

ss -lnpt | grep 5432

Должны увидеть примерно такой вывод:

LISTEN 0      244        127.0.0.1:5432      0.0.0.0:*    users:(("postgres",pid=26097,fd=6))      
LISTEN 0      244            [::1]:5432         [::]:*    users:(("postgres",pid=26097,fd=5))

Размешаем автоматический запуск Postgresql:

systemctl enable postgresql

После этого откроем файл конфигурации postgresql.conf в директории /etc/postgresql/13/main/ :

nano /etc/postgresql/13/main/postgresql.conf

И в нём раскомментируем и исправим параметр listen_addresses:

listen_addresses = '*' 

Затем откроем конфигурационный файл pg_hba.conf в той же директории:

nano /etc/postgresql/13/main/pg_hba.conf

Переходим на пользователя postgres и создадим пользователя zabbix и базу данных:

su - postgres -s /bin/bash
psql

Создаем базу данных:

CREATE DATABASE roundcubemail;

Создаем пользователя:

CREATE USER roundcube WITH PASSWORD 'roundcube_password';

Мы создали пользователя со следующим логином и паролем:

CREATE USER roundcube WITH PASSWORD 'Qwe123Poi';

Зададим права на пользователя и базу данных:

ALTER DATABASE roundcubemail OWNER TO roundcube;
GRANT ALL PRIVILEGES ON DATABASE roundcubemail TO roundcube;

Выйдем из консоли Postgres и выполним инициализацию таблиц.

Для этого нажмите:

Ctrl+D
psql -h 127.0.0.1 -d roundcubemail -U roundcube -W -f /var/www/roundcube/SQL/postgres.initial.sql

Введите заданный пароль пользователя roundcube.

Настройка виртуального хоста Apache

Устанавливаем Apache:

apt install apache2 apache2-utils

Перед началом настройки убедитесь, что в вашей системе запущены службы Apache.
Выполните следующую команду, чтобы проверить статус служб apache:

systemctl status apache2
systemctl start apache2
systemctl enable apache2

Подготовка Apache

Затем нам необходимо создать виртуальный хост Apache, на котором и будет доступен наш почтовый клиент.
Для этого создайте файл /etc/apache2/sites-available/roundcube.conf со следующим содержимым:

nano /etc/apache2/sites-available/roundcube.conf
<VirtualHost *:80>
ServerName roundcube.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/roundcube/public_html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

В строке ServerName нужно указать поддомен, на котором будет доступен Roundcube,
а в строке DocumentRoot мы указываем путь к папке программы.

Если вы устанавливаете программу на локальный компьютер, то нужно добавить такую строчку в файл /etc/hosts, чтобы выбранное доменное имя указывало на локальный компьютер:

nano /etc/hosts
127.0.0.1 roundcube.local

Затем надо настроить временную зону php для этого откройте файл
nano /etc/php/8.1/apache2/php.ini, найдите такую строчку и пропишите в ней свою временную зону:

date.timezone = Asia/Yekaterinburg

Затем активируйте только что созданный виртуальный хост, модуль rewrite и перезапустите веб-сервер:

a2ensite roundcube.conf
a2enmod rewrite
systemctl restart apache2

Настройка Roundcube Webmail

Теперь давайте разберемся как настроить roundcube.
Запустить установщик можно открыв в браузере адрес http://ваш_ip_address/installer .


Здесь все пункты, кроме Checking available databases (неиспользуемых баз данных) должны иметь значение OK.
Если это не так, надо выполнить действия, которые предлагает программа чтобы значение изменилось на OK.
Только после этого переходите к следующему шагу.

Database setup

Здесь нужно будет указать:

  • Тип базы данных;
  • Имя пользователя базы данных;
  • Название базы данных;
  • Пароль.

Настройки IMAP

Настройки SMTP

В следующем разделе указываете

  • Язык: ru_RU — для русского языка;
  • skin: тему оформления веб-интерфейса (можно изменить после установки);
  • mime_param_folding: Full RFC 2231.

Остальное по-умолчанию.

Создаем конфигурацию.