вторник, 28 апреля 2026 г.

Установка Webmail клиента RoundCube в RoclyLinux 9

Устанавливаем Apache и MariaDB
# dnf install epel-release
# dnf install httpd php php-mysqlnd php-json php-curl php-zip php-gd php-xml php-mbstring php-intl php-pecl-mailparse php-ldap mariadb-server
# dnf install ImageMagick ImageMagick-devel php-pecl-imagick
# systemctl enable --now httpd
# systemctl enable --now mariadb


Выполняем инициирование MariaDB:
# mariadb-secure-installation
    Enter current password for root (enter for none): <Enter>
Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] Y
New password: <вводим пароль> - <rootПароль>
Re-enter new password: <вводим пароль еще раз rootПароль>
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y


Создаем базу данных в MariaDB, необходимую для работы web-почтового клиента RoundCube
# mysql -u root -p
> CREATE DATABASE roundcubemail;
> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '<Пароль>';
> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
> FLUSH PRIVILEGES;
> EXIT;

Устанавливаем RoundCube
# dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# dnf install roundcubemail

Конфиги тут: /etc/roundcubemail/
Веб-файлы тут: /usr/share/roundcubemail/
Логи тут: /var/log/roundcubemail/
Данные тут: /var/lib/roundcubemail/

Заливаем структуру базы данных RoundCube:
# mysql -u root -p roundcubemail < /usr/share/roundcubemail/SQL/mysql.initial.sql

Задаем конфигурационый файл для RoundCube
# cp /etc/roundcubemail/config.inc.php.sample /etc/roundcubemail/config.inc.php
# nano /etc/roundcubemail/config.inc.php

1. 
Определяем учетные данные для доступа к базе данных MariaDB:
$config['db_dsnw'] = 'mysql://roundcube:<Пароль>@localhost/roundcubemail';
2.
Настройки IMAP сервера ($config['default_host'] = 'localhost';) меняем на следующий блок:
$config['default_host'] = 'ssl://mail.domain.ru'; 
$config['default_port'] = 993;
$config['imap_auth_type'] = 'LOGIN';
$config['imap_user'] = '%u';

3.
Настройки SNMP сервера ($config['smtp_server'] = 'localhost';) меняем на:
$config['smtp_server'] = 'tls://mail.domain.ru';
Остальное - по умолчанию
4.
Включение поддерждки LDAP
$config['ldap_public'] = array();
$config['ldap_public']['local_ldap'] = [
    'name'              => 'Справочник нашей компании',
    'hosts'             => ['<IPадрес>'],
    'port'              => 389,
    'user_specific'     => false,
    'base_dn'           => '',
    'bind_dn'           => '',
    'bind_pass'         => '',
    'ldap_version'      => 3,
    'scope'             => 'sub',
    'search_fields'     => ['mail', 'cn', 'displayName', 'sn', 'givenName'],
    'name_field'        => 'cn',
    'email_field'       => 'mail',
    'surname_field'     => 'sn',
    'firstname_field'   => 'givenName',
    'sort'              => 'cn',
    'filter'            => '(objectClass=*)',
    'fuzzy_search'      => true,
    'global_search'     => true,
    'sizelimit'         => 1000,
    'timelimit'         => 30,
];

$config['autocomplete_addressbooks'] = ['local_ldap'];
$config['address_book_type'] = 'ldap';

Устанавливаем права на файлы:
# chown -R apache:apache /etc/roundcubemail/
# chmod -R 755 /etc/roundcubemail/
# chown -R apache:apache /var/lib/roundcubemail/
# chown -R apache:apache /var/log/roundcubemail/
# chmod 775 /var/lib/roundcubemail/temp/
# chmod 775 /var/log/roundcubemail/

Настраиваем виртуальный хост Apache.
# nano /etc/httpd/conf.d/roundcubemail.conf
Меняем Require local на Require all granted в блоке <Directory /usr/share/roundcubemail/>
<Directory /usr/share/roundcubemail/>
   ...
        #Require local
        Require all granted
   ...
</Directory>

# systemctl restart httpd
Открываем возможность обращаться к Apache по сети:
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload

Теперь можно обратиться к почтовому клиенту:
http://<IPадрес>/roundcubemail/

Логин вводиться без домена.
После авторизации мы получим возможность отправлять или принимать письма через web-интерфейс. Имя пользователя по умолчанию будет в домене mail.domain.ru. Для исправления адреса электронной почты отправителя нужно зайти в настройки. Далее профиль. Выбрать email, изменить имя (удалить mail) в поле E-Mail.