url image

Установка и настройка Roundcube на сервере без панели управления

Roundcube — это почтовый клиент, который позволяет просматривать и отправлять письма через веб-интерфейс. Если вы не получаете входящие сообщения или используете локальный почтовый клиент, например, Thunderbird и подобные, то можно обойтись и без Roundcube. На отправку и доставку писем это никак не влияет.

Устанавливаем веб-сервер и сервер БД

Если вы выполняли настройку почтового сервера, используя вариант с хранением паролей в БД, то этот пункт нужно пропустить и сразу перейти к установке Roundcube. А если выбрали вариант с хранением в файле, то идем по порядку (данный вариант подразумевает, что на сервере будет использоваться только Roundcube, если же вы планируете разместить на VDS веб-сайты — необходимо использовать сервер LAMP, LEMP либо сервер с панелью ISPmanager):

CentOS 7:

# yum install httpd -y

AlmaLinux 8, AlmaLinux 9, Rocky Linux 8, Rocky Linux 9:

# dnf install httpd -y

Debian/Ubuntu:

# apt install apache2 -y

Запускаем службу и добавляем в автозагрузку:

CentOS/AlmaLinux/RockyLinux:

# systemctl start httpd
# systemctl enable httpd

Debian/Ubuntu:

# systemctl start apache2
# systemctl enable apache2

Проверяем:

CentOS/AlmaLinux/RockyLinux:

# systemctl status httpd

Debian/Ubuntu:

# systemctl status apache2

Статус должен быть — active (running).

Устанавливаем сервер БД

CentOS 7:

# yum install mariadb mariadb-server -y

AlmaLinux 8, AlmaLinux 9, Rocky Linux 8, Rocky Linux 9:

# dnf install mariadb mariadb-server -y

Запускаем БД и добавляем в автозагрузку:

# systemctl start mariadb
# systemctl enable mariadb

Теперь нужно завершить установку и задать пароль пользователя mysql — root. Выполняем команду, на все вопросы жмем Enter, при запросе нового пароля (шаг 2) придумываем и вводим новый пароль для пользователя root:

# /usr/bin/mysql_secure_installation

Ubuntu:

# apt install mysql-server mysql-client -y

Debian:

# apt install mariadb-server -y

В Ubuntu и Debian пароль пользователя root при установке указывается пустой.

Запускаем БД и добавляем в автозагрузку:

# systemctl start mysql
# systemctl enable mysql

Установка Roundcube

Качаем архив с Roundcube:

# wget https://github.com/roundcube/roundcubemail/releases/download/1.6.1/roundcubemail-1.6.1-complete.tar.gz -O roundcube.tgz

Разархивируем его и создадим символическую в директорию на сайте:

# tar -zxf roundcube.tgz
# mv roundcubemail-* /usr/share/webmail

Если у вас сайт расположен не в /var/www/html, то укажите свой путь до сайта:

# ln -s /usr/share/webmail/ /var/www/html/

Выставим права на директорию.

CentOS / AlmaLinux / RockyLinux:

# chown -R apache:apache /usr/share/webmail/

Debian/Ubuntu:

# chown -R www-data:www-data /usr/share/webmail/

Ставим PHP и расширения PHP, которые нужны для работы Roundcube.

CentOS 7:

# yum install php php-xml php-intl php-ldap php-gd php-pecl-imagick php-pdo php-mbstring php-mysql -y

AlmaLinux 8 / RockyLinux 8 / AlmaLinux 9 / RockyLinux 9:

# dnf install php php-xml php-intl php-ldap php-gd php-pdo php-mbstring php-mysqli -y

Debian/Ubuntu:

# apt install libapache2-mod-php php php-intl php-ldap php-gd php-imagick php-dom php-mbstring php-mysqli -y

Устанавливаем временную зону для PHP в файле php.ini (здесь используется время по Москве).

CentOS / AlmaLinux / RockyLinux:

# echo "date.timezone = 'Europe/Moscow'" >> /etc/php.ini

Debian/Ubuntu:

# echo "date.timezone = 'Europe/Moscow'" >> /etc/php/7.4/apache2/php.inii

Версия PHP может быть другой, проверьте командой php -v и укажите правильный путь в /etc/php.

Перезапускаем веб-сервер для применения настроек.

CentOS / AlmaLinux / RockyLinux:

# systemctl restart httpd

Debian/Ubuntu:

# systemctl restart apache2

Создаем базу для Roundcube, для этого подключимся к MySQL под пользователем root (будет запрошен пароль от пользователя root в MySQL, в некоторых дистрибутивах, например, в Debian 10 и 11, пароль root по умолчанию не задается):

# mysql -uroot -p

В открывшейся консоли MySQL поочередно вводим следующие команды:

# CREATE DATABASE roundcubemail;
# GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password';
# FLUSH PRIVILEGES;
# exit;

Если необходимо, можно настроить веб-интерфейс Roundcube так, чтобы он открывался по доменному имени, для этого нужно создать конфигурацию для Apache. Если этого не делать, веб-интерфейс будет доступен по IP.

Debian/Ubuntu:

Создаем файл /etc/apache2/sites-available/roundcube.conf и вставляем туда следующий текст (меняем [email protected] на свой e-mail, example.com — на доменное имя для Roundcube, /var/www/html/roundcube — на директорию Roundcube):

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/roundcube
ServerName example.com
<Directory /var/www/html/roundcube>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

В Debian и Ubuntu активируем сайт командами:

# a2ensite roundcube.conf
# a2enmod rewrite
# systemctl restart apache2

CentOS / AlmaLinux / RockyLinux:

Файл конфигурации Apache находится по пути /etc/httpd/conf.d/roundcube.conf, а сама конфигурация будет такой:

<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html/roundcube
<Directory /var/www/html/roundcube>
Options +FollowSymlinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>

После чего нужно перезапустить Apache командой:

# systemctl restart httpd

Дальнейшая инструкция для всех ОС одинаковая.

Переходим на страницу установки и проверяем, что все необходимые расширения выставлены — все ОК:

http://example.com/webmail/installer/

Переходим на следующую страницу (кнопка Next в самом низу) и вводим пароль от пользователя БД для roundcube (примерно на середине страницы):

Также нужно указать язык — ru_RU в поле language (ближе к концу страницы):

Если все нужные настройки указали, то жмём кнопку Create config внизу страницы и на следующей странице — Continue.

Далее на странице инициализируем БД по кнопке Initialize database:

И можно войти в интерфейс Roundcube (по ссылке http://example.com/webmail/) с созданным почтовым ящиком:

После успешной установки нужно удалить директорию установщика на сервере (будьте осторожны, используя команду rm -rf):

# rm -rf /usr/share/webmail/installer/

Готово!

Этот материал был полезен?