Plesk заменяем Horde на Roundcube

Приобрел себе панель управления хостингом Plesk 10.2.0. Пока все устраивает, кроме встроенного почтового веб-клиента Horde. Показался он мне морально устаревшим и перегруженным функционалом. Не долго выбирая из возможных клиентов остановился на Roundcube. Мне не удалось найти внятной информации на родном сайте plesk’а как к нему прикрутить другой веб-клиент, так же как и на сайте самого roundcube. Конечно не отрицаю, что может плохо искал)) По сети информацию можно найти обрывками. Вообщем от слов к делу.
Входные данные:

  • Debian 6
  • Plesk 10.2.0
  • У вас есть root доступ к серверу по ssh
  • И помните что вы все делаете на свой страх и риск

Начнем с настройки Roundcube.
1. Заходим в Plesk под администратором.
2. Переходим Управление Серверов — Инструменты и утилиты — Серверы базы данных
3. Кликаем на иконку Вход на этот сервер через DB Webamin. Откроется phpMyAdmin.
4. Создаем БД для Roundcube, я назвал roundcube
5. Идем на сайт http://roundcube.net/ и скачиваем последнию версию. На данный момент это 0.5.3
6. Распаковываем архив, у меня это папка roudcubemail
7. Находим roudcubemail/SQL в ней открываем mysql.initial.sql и выполняем увиденный SQL в нашей БД roundcube.
8. В phpMyAdmin кликаем на иконку домика. Дальше вкладка Привелегии и Добавить нового пользователя. Заполните поля Имя пользователя: username Хост: localhost Пароль: pass Подтверждение: pass. Отметьте все привилегии. Эти данные потом надо будет указать в конфиге roundcube.
9. Создаем файл roudcubemail/config/db.inc.php с следующим содержимым:

<?php
/*
 +-----------------------------------------------------------------------+
 | Configuration file for database access                                |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
*/
$rcmail_config = array();

$rcmail_config['db_dsnw'] = 'mysql://username:pass@localhost/roundcube';
$rcmail_config['db_dsnr'] = '';

$rcmail_config['db_max_length'] = 512000;
$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';

В $rcmail_config[‘db_dsnw’] указываем свои данные.
10. Создаем файл roundcubemain/config/main.inc.php

<?php
/*
 +-----------------------------------------------------------------------+
 | Configuration file for database access                                |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
*/
$rcmail_config = array();

$tmp = strtolower($_SERVER['HTTP_HOST']);
$tmp = str_replace('www.', '', $tmp);
$tmp = str_replace('webmail.', '', $tmp);
$rcmail_config['real_host_name'] = $tmp;
$rcmail_config['real_mail_host'] = 'mail.' . $tmp;
unset($tmp);

$rcmail_config['default_host'] = $rcmail_config['real_mail_host'];
$rcmail_config['default_port'] = 143;

$rcmail_config['username_domain'] = ''; // $rcmail_config['real_host_name'];
$rcmail_config['mail_domain'] = ''; // $rcmail_config['real_host_name'];

$rcmail_config['smtp_server'] = $rcmail_config['real_mail_host'];
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['smtp_auth_type'] = '';
$rcmail_config['smtp_helo_host'] = '';
$rcmail_config['smtp_log'] = TRUE;

$rcmail_config['imap_auth_type'] = null;
$rcmail_config['imap_root']      = null;
$rcmail_config['imap_delimiter'] = null;

$rcmail_config['include_host_config'] = FALSE;
$rcmail_config['sendmail_delay'] = 30;

$rcmail_config['debug_level'] = 1;
$rcmail_config['log_dir'] = 'logs/';
$rcmail_config['log_date_format'] = 'd-M-Y H:i:s O';
$rcmail_config['log_driver'] = 'file';
$rcmail_config['log_logins'] = FALSE;
$rcmail_config['syslog_id'] = 'roundcube';
$rcmail_config['syslog_facility'] = LOG_USER;

$rcmail_config['temp_dir'] = 'temp/';
$rcmail_config['plugins_dir'] = 'plugins/';
$rcmail_config['plugins'] = array(
    'emoticons',
    'markasjunk'
);

$rcmail_config['enable_caching'] = TRUE;
$rcmail_config['message_cache_lifetime'] = '14d';
$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment');
$rcmail_config['skin_include_php'] = FALSE;

$rcmail_config['auto_create_user'] = TRUE;
$rcmail_config['des_key'] = '9IDJVL8%nf6%RTgOwpyfkuDv';
$rcmail_config['double_auth'] = FALSE;
$rcmail_config['ip_check'] = FALSE;
$rcmail_config['keep_alive'] = 60;
$rcmail_config['min_keep_alive'] = 60;
$rcmail_config['session_lifetime'] = 10;
$rcmail_config['session_domain'] = '.' . $rcmail_config['real_host_name'];
$rcmail_config['virtuser_file'] = '';
$rcmail_config['virtuser_query'] = '';

$rcmail_config['language'] = null;
$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.3-beta';
$rcmail_config['quota_zero_as_unlimited'] = TRUE;
$rcmail_config['create_default_folders'] = TRUE;
$rcmail_config['check_all_folders'] = FALSE;
$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
$rcmail_config['protect_default_folders'] = TRUE;
$rcmail_config['drafts_mbox'] = 'Drafts';
$rcmail_config['junk_mbox'] = 'Junk';
$rcmail_config['sent_mbox'] = 'Sent';
$rcmail_config['trash_mbox'] = 'Trash';
$rcmail_config['delete_always'] = FALSE;
$rcmail_config['default_charset'] = 'ISO-8859-1';
$rcmail_config['enable_spellcheck'] = TRUE;
$rcmail_config['spellcheck_engine'] = 'googlie';
$rcmail_config['spellcheck_languages'] = NULL;
$rcmail_config['spellcheck_uri'] = '';
$rcmail_config['address_book_type'] = 'sql';
$rcmail_config['autocomplete_addressbooks'] = array('sql');
$rcmail_config['ldap_public'] = array();
$rcmail_config['dont_override'] = array();

$rcmail_config['enable_installer'] = FALSE;
$rcmail_config['generic_message_footer'] = '';
$rcmail_config['http_received_header'] = FALSE;
$rcmail_config['http_received_header_encrypt'] = FALSE;

$rcmail_config['identities_level'] = 0;
$rcmail_config['mail_header_delimiter'] = NULL;
$rcmail_config['max_pagesize'] = 500;

$rcmail_config['mdn_requests'] = 0;
$rcmail_config['mime_magic'] = '/usr/share/misc/magic';
$rcmail_config['product_name'] = 'RoundCube WebMail';
$rcmail_config['skin'] = 'default';

$rcmail_config['draft_autosave'] = 300;
$rcmail_config['dst_active'] = (bool)date('I');
$rcmail_config['flag_for_deletion'] = FALSE;
$rcmail_config['focus_on_new_message'] = TRUE;
$rcmail_config['htmleditor'] = TRUE; // FALSE;
$rcmail_config['inline_images'] = TRUE;
$rcmail_config['logout_expunge'] = FALSE;
$rcmail_config['logout_purge'] = FALSE;
$rcmail_config['message_sort_col'] = 'date';
$rcmail_config['message_sort_order'] = 'DESC';
$rcmail_config['mime_param_folding'] = 0;
$rcmail_config['pagesize'] = 50;
$rcmail_config['prefer_html'] = TRUE;
$rcmail_config['prettydate'] = FALSE; // TRUE;
$rcmail_config['preview_pane'] = TRUE; // FALSE;
$rcmail_config['read_when_deleted'] = TRUE;
$rcmail_config['show_images'] = 2; // 0;
$rcmail_config['skip_deleted'] = FALSE;
$rcmail_config['timezone'] = 'auto';
?>

11. Теперь необходимо закачать содержимое папки roudcubemail на сервер в папку /usr/share/psa-horde. Перед этим сохраните папку psa-horde или переименуйте в _psa-horde чтобы можно было откатится если что-то пойдет не так.
12. Если все правильно было сделано, то теперь webmail.yourdomain.prefix будет открываться roundcube.

Но если у вас появилась ошибка, как у меня:

Fatal error: ini_set/set_include_path does not work.

То необходимо еще потанцевать с бубном)) Для того чтобы избавится от этой ошибки, необходимо найти на сервере /etc/apache2/conf.d/zz***httpd.conf там будут строкa /opt/psa/admin/conf/generated/*****_horde.include
В данном файле необходимо изменить значения php_admin_value include_path.

php_admin_value include_path "/usr/share/psa-horde/program:/usr/share/psa-horde/program/lib:
/usr/share/psa-horde/program/include:/usr/share/psa-horde:/usr/share/psa-horde/lib:
/usr/share/psa-pear:."

Ну и последний штрих идем в /usr/share/psa-horde/program/include/iniset.php

/* Комментируем этот код
if (set_include_path($include_path) === false) {
    die("Fatal error: ini_set/set_include_path does not work.");
}
*/
...
// убираем первый слыш
require_once 'program/include/main.inc';
require_once 'program/include/rcube_shared.inc';

Надеюсь это кому-нить поможет))