DataLife Engine > WWW > Установка Roundcube на FreeBSD

Установка Roundcube на FreeBSD


16-08-2010. Разместил: synergix Захотелось мне прикрутить веб-интерфейс к почтовому серверу на FreeBSD. Выбор пал на RoundCube.
Roundcube – это web-интерфейс или, если хотите, почтовый клиент, написанный на PHP. Roundcube сочетает в себе приятность дизайна интерфейса и удобство, которое проявляется даже в мелочах, например письма можно перемещать между папками простым перетаскиванием. Из всех известных мне web-интерфейсов на сегодняшний день Roundcube является наиболее красивым и удобным, а к тому же еще и бесплатным. Для работы Roundcube нам потребуется web-сервер Apache и сервер баз данных MySQL. В MySQL базе Roundcube будет сохранять настройки пользователей, адресные книги, автоматически добавляемые подписи к сообщениям и т.д.
Начнем установку.
#cd /usr/ports/mail/roundcube/
#make install clean


По-умолчанию RoundCube использует MySQL для хранения пользовательских данных.
[X] MYSQL Use MySQL backend
[ ] PGSQL Use PostgreSQL backend
[ ] SQLITE Use SQLite backend
[ ] SSL Enable SSL support (imaps or google spellcheck)
[ ] LDAP Enable LDAP support (address book)
[ ] PSPELL Enable PSpell support (internal spellcheck)
[ ] NSC Install network spellchecker
[ ] AUTOCOMP Enable autocomplete in login form


Создадим базу данных MySQL:
# mysql
mysql> create database roundcube;
mysql> grant all on roundcube.* to 'roundcube'@'localhost' identified by 'roundcube';
mysql> flush privileges;
mysql> quit


Теперь займемся настройкой web-сервера apache для нашего Roundcube. Для скриптов roundcube мы выделим отдельную площадку. Для этих целей создадим пользователя и домашнюю директорию с деревом каталогов под виртуалхост, установим соответствующие права:
# pw useradd roundcube -g www -s “/sbin/nologin” -c “Roundcube”
# mkdir /home/roundcube
# mkdir /home/roundcube/tmp
# mkdir /home/roundcube/webmail.example.com
# chmod -R 770 /home/roundcube


Создадим конфигурационный файл виртуалхоста:
# touch /usr/local/etc/apache/vhosts/roundcube.conf


И отредактируем его:
<Virtualhost>
ServerName webmail.example.com
ServerAdmin admin@example.com
DocumentRoot "/home/roundcube/webmail.example.com"

# Поскольку roundcube написан на PHP и мы
# не предполагаем запуск чего-либо кроме PHP скриптов
# на этом виртуалхосте, то на всякий случай отключаем CGI
# и запрещаем изменение параметров ./htaccess'ом
<Directory "/home/roundcube/webmail.example.com">
Options -ExecCGI
AllowOverride None
</Directory>
# Запрещаем PHP скриптам выходить за пределы
# директории виртуалхоста
php_admin_value open_basedir /home/roundcube
php_admin_value safe_mode_include_dir /home/roundcube
php_admin_value safe_mode_exec_dir /noexec
php_admin_value doc_root /home/roundcube
php_admin_value upload_tmp_dir /home/roundcube/tmp
php_admin_value session.save_path /home/roundcube/tmp

# Логирование
ErrorLog /var/log/httpsd/roundcube-error.log
TransferLog /var/log/httpsd/roundcube-access.log
</Virtualhost>


Перезапускаем apache, чтобы изменения вступили в силу:
# apachectl restart


После установки скрипты Roundcube появились в директории /usr/local/www/roundcube. Скопируем их в директорию, где будет размещаться наш VirtualHost и зададим владельца:
# cp -R /usr/local/www/roundcube/* /home/roundcube/webmail.example.com/
# chown -R roundcube:www /home/roundcube


Заполняем базу данных:
# mysql roundcube < /home/roundcube/webmail.example.com/SQL/mysql.initial.sql


Переходим к настройке Roundcube. Отредактируем файл /home/roundcube/webmail.example.com/
config/db.inc.php:
$rcmail_config = array();
$rcmail_config['db_dsnw'] = 'mysql://roundcube:roundcube@localhost/roundcube';
$rcmail_config['db_dsnr'] = '';
$rcmail_config['db_max_length'] = 512000;  // 500K
$rcmail_config['db_persistent'] = FALSE;
$rcmail_config['db_table_users'] = 'users';
$rcmail_config['db_table_identities'] = 'identities';
$rcmail_config['db_table_contacts'] = 'contacts';
$rcmail_config['db_table_session'] = 'session';
$rcmail_config['db_table_cache'] = 'cache';
$rcmail_config['db_table_messages'] = 'messages';
$rcmail_config['db_sequence_users'] = 'user_ids';
$rcmail_config['db_sequence_identities'] = 'identity_ids';
$rcmail_config['db_sequence_contacts'] = 'contact_ids';
$rcmail_config['db_sequence_cache'] = 'cache_ids';
$rcmail_config['db_sequence_messages'] = 'message_ids';


Теперь отредактируем файл /home/roundcube/webmail.example.com/config/main.inc.php:
$rcmail_config = array();
$rcmail_config['debug_level'] = 1;
$rcmail_config['enable_caching'] = TRUE;
$rcmail_config['message_cache_lifetime'] = '10d';
$rcmail_config['auto_create_user'] = TRUE;
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['default_port'] = 143;
$rcmail_config['username_domain'] = '';
$rcmail_config['mail_domain'] = '';
$rcmail_config['virtuser_file'] = '';
$rcmail_config['virtuser_query'] = '';
$rcmail_config['smtp_server'] = '';
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_user'] = '';
$rcmail_config['smtp_pass'] = '';
$rcmail_config['smtp_auth_type'] = '';
$rcmail_config['smtp_helo_host'] = '';
$rcmail_config['smtp_log'] = TRUE;
$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size');
$rcmail_config['skin_path'] = 'mvision';
$rcmail_config['skin_include_php'] = FALSE;
$rcmail_config['temp_dir'] = 'temp/';
$rcmail_config['log_dir'] = 'logs/';
$rcmail_config['session_lifetime'] = 10;
$rcmail_config['ip_check'] = false;
$rcmail_config['double_auth'] = false;
$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';
$rcmail_config['locale_string'] = 'ru';
$rcmail_config['date_short'] = 'D H:i';
$rcmail_config['date_long'] = 'd.m.Y H:i';
$rcmail_config['date_today'] = 'H:i';
$rcmail_config['useragent'] = 'RoundCube Webmail/0.1';
$rcmail_config['product_name'] = 'RoundCube Webmail';
$rcmail_config['imap_root'] = '';
$rcmail_config['drafts_mbox'] = 'Drafts';
$rcmail_config['junk_mbox'] = 'Junk';
$rcmail_config['sent_mbox'] = 'Sent';
$rcmail_config['trash_mbox'] = 'Trash';
$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
$rcmail_config['create_default_folders'] = TRUE;
$rcmail_config['protect_default_folders'] = TRUE;
$rcmail_config['skip_deleted'] = FALSE;
$rcmail_config['read_when_deleted'] = TRUE;
$rcmail_config['flag_for_deletion'] = FALSE;
$rcmail_config['enable_spellcheck'] = TRUE;
$rcmail_config['spellcheck_uri'] = '';
$rcmail_config['spellcheck_languages'] = NULL;
$rcmail_config['generic_message_footer'] = '';
$rcmail_config['mail_header_delimiter'] = NULL;
$rcmail_config['dont_override'] = array();
$rcmail_config['javascript_config'] = array('read_when_deleted', 'flag_for_deletion');
$rcmail_config['include_host_config'] = FALSE;

/***** these settings can be overwritten by user's preferences *****/
$rcmail_config['pagesize'] = 40;
$rcmail_config['timezone'] = intval(date('O'))/100 - date('I');
$rcmail_config['dst_active'] = (bool)date('I');
$rcmail_config['prefer_html'] = TRUE;
$rcmail_config['htmleditor'] = TRUE;
$rcmail_config['prettydate'] = TRUE;
$rcmail_config['message_sort_col'] = 'date';
$rcmail_config['message_sort_order'] = 'DESC';
$rcmail_config['draft_autosave'] = 300;
$rcmail_config['max_pagesize'] = 200;
$rcmail_config['preview_pane'] = TRUE;


На этом RoundCube установлен и готов к работе.
Вернуться назад