sys:установка_horde

Установка Horde и модулей.

Для пакета www-apps/horde включаем флаг mysql и проставляем сам horde и его модули:

echo "www-apps/horde mysql" >> /etc/portage/package.use
emerge -vt -j3 www-apps/horde www-apps/horde-gollem www-apps/horde-imp www-apps/horde-kronolith www-apps/horde-mnemo www-apps/horde-nag www-apps/horde-pear www-apps/horde-turba

После установки пакетов проверяем настройки PHP:

egrep 'short_open_tag|magic_quotes_runtime|file_uploads' /etc/php/apache2-php5.3/php.ini | grep -v '^;'
short_open_tag = On
magic_quotes_runtime = Off
file_uploads = On

Установка в виртуальный хост

Устанавливаем пакеты на виртуальный хост:

webapp-config -I -h virtual.host.ru -d horde horde 3.3.11
webapp-config -I -h virtual.host.ru -d horde/gollem horde-gollem 1.1.2
webapp-config -I -h virtual.host.ru -d horde/kronolith horde-kronolith 2.1.8
webapp-config -I -h virtual.host.ru -d horde/imp horde-imp 4.3.8
webapp-config -I -h virtual.host.ru -d horde/mnemo horde-mnemo 2.2.3
webapp-config -I -h virtual.host.ru -d horde/nag horde-nag 2.3.4
webapp-config -I -h virtual.host.ru -d horde/turba horde-turba 2.3.4

Если ставиться будем в корень сайта, то команды чуть другие:

webapp-config -I -h virtual.host.ru horde 3.3.11
webapp-config -I -h virtual.host.ru -d gollem horde-gollem 1.1.2
webapp-config -I -h virtual.host.ru -d kronolith horde-kronolith 2.1.8
webapp-config -I -h virtual.host.ru -d imp horde-imp 4.3.8
webapp-config -I -h virtual.host.ru -d mnemo horde-mnemo 2.2.3
webapp-config -I -h virtual.host.ru -d nag horde-nag 2.3.4
webapp-config -I -h virtual.host.ru -d turba horde-turba 2.3.4

Готовим конфигурационные файлы к правке. Настраивать будем через web-интерфейс, по этому даём право записи для апача на conf.bak.php и conf.php:

for d in horde horde/gollem horde/kronolith horde/imp horde/mnemo horde/nag horde/turba ; do 
    cd /var/www/virtual.host.ru/htdocs/$d/config ; 
    for f in *.dist ; do cp ${f} ${f/.dist} ; done ;
done
for d in horde horde/gollem horde/kronolith horde/imp horde/mnemo horde/nag horde/turba ; do 
    touch /var/www/virtual.host.ru/htdocs/$d/config/conf.{bak.,}php
    chown apache:root /var/www/virtual.host.ru/htdocs/$d/config/conf.{bak.,}php
done

Опять же, если ставимся в корень сайта, то список директорий должен быть поправлен:

for d in . gollem kronolith imp mnemo nag turba ; do 
    cd /var/www/virtual.host.ru/htdocs/$d/config ; 
    for f in *.dist ; do cp ${f} ${f/.dist} ; done ;
done
for d in . gollem kronolith imp mnemo nag turba ; do 
    touch /var/www/virtual.host.ru/htdocs/$d/config/conf.{bak.,}php
    chown apache:root /var/www/virtual.host.ru/htdocs/$d/config/conf.{bak.,}php
done

Создание базы

Создаём базу и таблицы в mysql (считаем, что mysql'ный root без пароля), и меняем пароль у пользователя horde:

mysql mysql < /var/www/virtual.host.ru/htdocs/horde/scripts/sql/create.mysql.sql 
mysql horde < /var/www/virtual.host.ru/htdocs/horde/imp/scripts/sql/imp.sql
mysql horde < /var/www/virtual.host.ru/htdocs/horde/nag/scripts/sql/nag.sql
mysql horde < /var/www/virtual.host.ru/htdocs/horde/mnemo/scripts/sql/mnemo.sql
mysql horde < /var/www/virtual.host.ru/htdocs/horde/turba/scripts/sql/turba.sql
mysql horde < /var/www/virtual.host.ru/htdocs/horde/kronolith/scripts/sql/kronolith.mysql.sql
mysql mysql -e "update user set Password=Password('супер-пароль') where user.User = 'horde';"
mysql mysql -e "FLUSH PRIVILEGES;"

Настройка

Правим:

/var/www/virtual.host.ru/htdocs/horde/config/conf.php
$conf['cookie']['path'] = '/';   //если мы ставимся в корень сайта
 
$conf['auth']['admins'] = array('admin@virtual.host.ru');
$conf['auth']['params']['dsn'] = '{imap.server.ru:143/imap/notls}';
$conf['auth']['params']['imapconfig'] = 'dsn';
$conf['auth']['driver'] = 'imap';

Разрешаем авторизоваться через имап:

/var/www/virtual.host.ru/htdocs/horde/imp/config/servers.php
$servers['imap'] = array(
    'name' => 'IMAP Server',
    'server' => 'imap.server.ru',
    'hordeauth' => true,
    'protocol' => 'imap/notls',
    'port' => 143,
    'maildomain' => 'server.ru',
    'smtphost' => 'smtp.server.ru',
    'smtpport' => 25,
    'realm' => '',
    'preferred' => 'true',
);

Фиксим хорду, чтобы IMAP серверу логин отдавался в виде email@domain.ru.

/var/www/virtual.host.ru/htdocs/horde/imp/lib/Auth
cp imp.php imp.php-saved
/var/www/virtual.host.ru/htdocs/horde/imp/lib/Auth/imp.php
//комментируем 68-70 строки, вписываем вместо них новую строку:
                $imapuser = Auth::getAuth();
//                $imapuser = (strcasecmp($ptr['hordeauth'], 'full') == 0)
//                    ? Auth::getAuth()
//                    : Auth::getBareAuth();

Ещё один воркэраунд:

~ $ diff /usr/share/webapps/horde-imp/4.3.8/htdocs/lib/IMAP/Tree.php /var/www/virtual.host.ru/htdocs/horde/imp/lib/IMAP/Tree.php 
310a311,313
>         /* INBOX must always appear. Also this line is a workawound for www-apps/horde-imp-4.3.8 */
>         $names = array('INBOX' => 1);
> 

Заходим браузером на http://horde.host/horde/admin/setup

В меню выбираем пункт Приложения и начинаем настройку с, собственно, horde (портал). Указываем, что данные будут храниться в базе, авторизация будет проходить через imap.

  • sys/установка_horde.txt
  • Последнее изменение: 2011-12-01 12:20
  • Andrew A. Sabitov