четверг, 8 мая 2014 г.

Установка и настройка Roundcube 1.0.0

Установка будет производиться на Debian, однако в любом дистрибутиве настройка будет точно такой же или очень похожей.
На сервере уже установлен ISPmanager с дефолтным SquirrelMail, именно вместо SquirrelMail я и устанавливаю roundcube.
Используется rouncube-1.0.0 (на данный момент последней версии), естественно из сорцов.

Качаем последнюю версию roundcube:
# cd /var/www
# wget http://jaist.dl.sourceforge.net/project/roundcubemail/roundcubemail/1.0.0/roundcubemail-1.0.0.tar.gz

Распаковываем содержимое архива и удаляем сам архив:
# tar xfvz roundcubemail-1.0.0.tar.gz
# rm roundcubemail-1.0.0.tar.gz 
# mv roundcubemail-* /var/www/roundcube

Выдаём права на каталоги temp и logs:
# cd /var/www/roundcube
# chmod 777 temp logs

Создаём базу данных для roundcube:
# mysql -u root -p
mysql> CREATE DATABASE IF NOT EXISTS `roundcube`;
mysql> GRANT ALL PRIVILEGES ON `roundcube` . * TO 'roundcube'@'localhost' IDENTIFIED BY 'mySecretPassword';
mysql> FLUSH PRIVILEGES;
mysql> quit

Заполняем нашу новую пока что пустую базу данных из шаблона:
# mysql -u roundcube -p"mySecretPassword" roundcube < SQL/mysql.initial.sql

Настраиваем apache2 для работы с roundcube:
# vim /etc/apache2/conf.d/squirrelmail.conf
Alias /webmail /var/www/roundcube/
<Directory /var/www/roundcube>
   RemoveHandler .php  .php3 .php4 .phtml
   AddType application/x-httpd-php .php  .php3 .php4 .phtml
   php_admin_value open_basedir /
   AddType text/x-component .htc
   <IfModule mod_php4.c>
      php_flag display_errors Off
      php_flag log_errors On
      php_value error_log logs/errors
      php_value upload_max_filesize 5M
      php_value post_max_size 6M
      php_value memory_limit 64M
   </IfModule>
   <IfModule mod_php5.c>
      php_flag display_errors Off
      php_flag log_errors On
      php_value error_log logs/errors
      php_value upload_max_filesize 5M
      php_value post_max_size 6M
      php_value memory_limit 64M
   </IfModule>
   <FilesMatch "(\.inc|\~)$">
      Order allow,deny
      Deny from all
   </FilesMatch>
   Order deny,allow
   Allow from all
</Directory>

Перезагружаем apache:
# service apache2 restart

Заполняем главный конфиг roundcube (можно его сгенерировать с помощью установщика), но я заполнял вручную:
# vim ./config/config.inc.php
<?php
$config['db_dsnw'] = 'mysql://roundcube:DATABASE_PASSWD@localhost/roundcube';
$config['default_host'] = 'localhost';
$config['support_url'] = 'http://yourdomain.here';
$config['des_key'] = 'E+d%xyo4r5ZNI%0MMy&5EsL*';
$config['plugins'] = array();
$config['language'] = 'ru_RU';
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['quota_zero_as_unlimited'] = true;
$rcmail_config['preview_pane'] = true;
$rcmail_config['read_when_deleted'] = false;
$rcmail_config['check_all_folders'] = true;
//позже я расскажу, зачем эти две строчки снизу
$rcmail_config['imap_auth_type'] = 'CRAM-MD5';
$rcmail_config['smtp_auth_type'] = 'CRAM-MD5';

Удаляем каталог с установщиком roundcube:
# rm -rf ./installer/

Проверяем:
http://yourdomain.here/webmail

Логинимся под любым почтовым аккаунтом, посмотреть его можно к примеру в ISPManager.



На этом настройка окончена.

В ходе настройка встретился с одной проблемой.
Сразу же после настройки я не мог войти ни под одним аккаунтом.
Лог говорил:
# tail -1 /var/log/mail.err
[01-May-2013 16:58:30 +0400]: IMAP Error: Login failed for [email protected] from 46.35.213.234(X-Real-IP: 46.35.213.234,X-Forwarded-For: 46.35.213.234). Authentication failed. in /var/www/roundcube/program/lib/Roundcube/rcube_imap.php on line 184 (POST /webmail/?_task=login?_task=login&_action=login)

Это означает то, что пароль читается как plain, а в базах он задан в виде хеша md5.
Нужно включить поддержку md5, добавив две строки в конфиг:
# vim roundcube/config/config.inc.php
$rcmail_config['imap_auth_type'] = 'CRAM-MD5';
$rcmail_config['smtp_auth_type'] = 'CRAM-MD5';

В новых версиях roundcube может возникать ошибка:
500 Internal Server Error::

Они в .htaccess там что-то намутили, я содержимое .htaccess удалил, ошибка пропала.

Комментариев нет: