В данной статье я расскажу, как происходит установка 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, где вы увидите страницу авторизации
На этом все 🙂