Домены
Интересные статьи
Домены

Установка Roundcube в Debian 8

В данной статье я расскажу, как происходит установка Roundcube в Debian 8.
Roundcube это простой вебинтерфейс для почтового сервера, с поддержкой IMAP и SMTP, а также поддержкой плагинов.
В Debian 7 Roundcube доступен в качестве .deb пакета, но не последней версии. В Debian 8 пакет Roundcube более недоступен в репозиториях, поэтому будем устанавливать его из исходных кодов.

Исходные данные:

  • Сервер с Debian 8
  • root права
  • Вебсервер Apache с mod_php
  • Сервер MySQL (или MariaDB)
  • Почтовый сервер (SMTP+IMAP), к которому будет подключаться Roundcube. Это может быть как локальный сервер, так и удаленный.
  • Имя сервера возьмем server1.example.com с IP 192.168.1.100

Установка RoundCube

Я буду устанавливать Roundcube в папку /opt/roundcube, чтобы избежать каких-либо конфликтов с системными пакетами Debian.
Текущая версия Roudcube: 1.1.3, проверьте сайт Roundcube на наличие новой версии.

Авторизуемся на сервере, после чего установим wget и nano:

apt-get install wget nano

Создадим директорию /opt/roundcube и перейдем в нее:

mkdir /opt/roundcube
cd /opt/roundcube

Загрузим Roundcube и распакуем его:

wget https://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.1.3/roundcubemail-1.1.3-complete.tar.gz
tar xfz roundcubemail-1.1.3-complete.tar.gz

Файлы RoundCube находятся в директории /opt/roundcube/roundcubemail-1.1.3, перенесем их в /opt/roundcube/

mv roundcubemail-1.1.3/* .
mv roundcubemail-1.1.3/.htaccess .

Примечание: точка в конце это часть команды.

Удалим пустую директорию и архив:

rmdir roundcubemail-1.1.3
rm roundcubemail-1.1.3-complete.tar.gz

Изменим права на файлы на пользователя, под которым работает Apache (www-data):

chown -R www-data:www-data /opt/roundcube

Установка базы данных для Roundcube

Для хранения настроек почтовых ящиков, контактов и прочего требуется база данных.
Я буду использовать MySQL (или MariaDB).

Авторизуемся на сервере MySQL:

mysql —defaults-file=/etc/mysql/debian.cnf

Создадим базу данных roundcubemail и разрешим доступ к ней для пользователя roundcube с паролем secretpassword

CREATE DATABASE roundcubemail;
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY ‘secretpassword’;
flush privileges;
quit

Импортируем таблицы Roundcube из файла mysql.initial.sql в базу данных:

mysql —defaults-file=/etc/mysql/debian.cnf roundcubemail < /opt/roundcube/SQL/mysql.initial.sql

Настройка Roundcube и Apache

Следующим шагом будет настройка Roundcube и добавление конфигурации в Apache.

Для начала настроим подключение к базе данных, которую создали прошлым шагом. Для этого нужно переименовать и изменить файл config.inc.php:

cd /opt/roundcube/config
cp -pf config.inc.php.sample config.inc.php
nano config.inc.php

Найдите строку, начинающуюся с $config[‘db_dsnw’] и замените на следующее:

$config[‘db_dsnw’] = ‘mysql://roundcube:secretpassword@localhost/roundcubemail’;

Так мы указали Roundcube, что нужно подключаться к базе данных roundcubemail с логином/паролем roundcube/secretpassword соответсвенно.

Теперь найдите строку с «smtp_server», здесь укажите имя SMTP сервера. У меня SMTP сервер установлен на этом же сервере, поэтому я укажу «localhost«

$config[‘smtp_server’] = ‘localhost’;

Теперь настроим конфигурацию Apache. Создадим файл roundcube.conf в директории /etc/apache2/conf-available/.

nano /etc/apache2/conf-available/roundcube.conf

И добавим в него следующие строки:

Alias /roundcube /opt/roundcube
Alias /webmail /opt/roundcube

<Directory /opt/roundcube>
 Options +FollowSymLinks
 # AddDefaultCharset UTF-8
 AddType text/x-component .htc
 
 <IfModule mod_php5.c>
 AddType application/x-httpd-php .php
 php_flag display_errors Off
 php_flag log_errors On
 # php_value error_log logs/errors
 php_value upload_max_filesize 10M
 php_value post_max_size 12M
 php_value memory_limit 64M
 php_flag zlib.output_compression Off
 php_flag magic_quotes_gpc Off
 php_flag magic_quotes_runtime Off
 php_flag zend.ze1_compatibility_mode Off
 php_flag suhosin.session.encrypt Off
 #php_value session.cookie_path /
 php_flag session.auto_start Off
 php_value session.gc_maxlifetime 21600
 php_value session.gc_divisor 500
 php_value session.gc_probability 1
 </IfModule>

 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico
 # security rules:
 # - deny access to files not containing a dot or starting with a dot
 # in all locations except installer directory
 RewriteRule ^(?!installer)(\.?[^\.]+)$ - [F]
 # - deny access to some locations
 RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
 # - deny access to some documentation files
 RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml)$ - [F]
 </IfModule>
 <IfModule mod_deflate.c>
 SetOutputFilter DEFLATE
 </IfModule>

 <IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 month"
 </IfModule>

 FileETag MTime Size

 <IfModule mod_autoindex.c>
 Options -Indexes
 </ifModule>

 AllowOverride None
 Require all granted
</Directory>

<Directory /opt/roundcube/plugins/enigma/home>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>

<Directory /opt/roundcube/config>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>

<Directory /opt/roundcube/temp>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>

<Directory /opt/roundcube/logs>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>


Благодаря первым двум строкам, Roundcube будет доступен по /roundcube и /webmail

Активируем конфигурацию и перезапустим Apache:

a2enconf roundcube
service apache2 reload

Roundcube установлен и работает, теперь перейдите по адресу http://192.168.1.100/webmail или http://192.168.1.100/roundcube, где вы увидите страницу авторизации

На этом все 🙂
 

Обо мне cyber01

Прочитайте также

Как сделать дамп только нужных записей из базы данных

Бывало такое, что из всей таблицы нужно сделать дамп только определенных строк? Например, результата какого-либо …

Как установить Zend Framework на Ubuntu 18.04

Zend Framework 3 это последняя версия фреймворка. Новая версия отличается большей производительностью. Zend это фреймворк …

Как установить MariaDB на Debian 10 (Buster)

MariaDB это улучшенная, совместимая замена для MySQL. MariaDB имеет набор функций, которые превосходят оригинальный MySQL. …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *