El Horde Groupware Webmail Edition es el paquete integrado de Horde.

Links con información:

Instalación de Horde Groupware Webmail Edition

# usuario y grupo bajo el cual corre el web server (o específico para Horde si es que usamos mod_suexec)
export WWWUSER=www-data
export WWWGROUP=www-data

# directorio donde vamos a poner el subdirectorio /horde visible desde la web
export WWWHOME=/var/vhost-www/example.com
# datos de la base de datos
export DBNAME=horde
export DBUSER=hordedbuser
export DBPASS=H0RD3_D8


# Versión de Horde Groupware Webmail Edition que vamos a usar (a septiembre de 2008, sólo lo probé con la 1.1.3)
export HGWEVERSION=1.1.3


# bajo el paquete
cd ${HOME}/soft
wget ftp://ftp.horde.org/pub/horde-webmail/horde-webmail-${HGWEVERSION}.tar.gz

# lo abro
tar xvzf horde-webmail-${HGWEVERSION}.tar.gz
# creo el directorio padre si no existe
sudo mkdir -pv ${WWWHOME}
# instalo los archivos
sudo mv -v horde-webmail-${HGWEVERSION} ${WWWHOME}/horde

# cambio el usuario/grupo de los archivos
# (después hay que revisar BIEN los permisos)
sudo chown -R ${WWWUSER}.${WWWGROUP} ${WWWHOME}/horde

Setup inicial

Como ahora todos los archivos son ${WWWUSER} vamos a abrirnos un shell como este usuario para trabajar

sudo -E su -c bash ${WWWUSER}
cd ${WWWHOME}/horde

Crear la base de datos en mysql (e.g. usando phpmyadmin) y el usuario con privilegios sobre esa base (y NO para las otras bases).

Ejecutar el script de configuración para configurar la base de datos y crear automáticamente las tablas

scripts/setup.php

Elegir/responder lo siguiente:

  • What is the web root path on your web server for this installation, i.e. the path of the address you use to access Horde Groupware Webmail Edition in your browser? [/horde] /horde

  • (1) Configure database settings

    • (mysqli) MySQL mysqli (salvo que la versión del server MySQL sea menor a 4.1, en cuyo caso, sólo funciona mysql).

    • Username to connect to the database as* [] Escribir el nombre de usuario mysql con permisos para la base de datos creado

    • Password to connect with [] Escribir la password de ese usuario

    • How should we connect to the database? [unix]
      • (unix) UNIX Sockets
        (tcp) TCP/IP

      Type your choice: unix

    • Location of UNIX socket [] /var/run/mysqld/mysqld.sock (esto es el lugar donde está el socket en los debian/ubuntu nuevos... puede variar según como se haya instalado el mysql).

    • Database name to use* [] Escribir el nombre de la base de datos creada

    • Internally used charset* [iso-8859-1] utf-8

    • Split reads to a different server? [false]
      • (false) Disabled
        (true) Enabled

      Type your choice: false

Aquí graba el archivo de configuración... seguimos adelante para crear las tablas de la base de datos:

  • Writing main configuration file
    Done configuring database settings.

  • (2) Create database or tables

    • Should we create the database for you? If yes, you need to provide a database

      user that has permissions to create new databases on your system. If no, we
      will only create the database tables for you. [y]

      • (y) Yes
        (n) No

      Type your choice: n (esto intenté hacerlo poniendo la clave de root del mysql y no anduvo, así que vamos por el modo tradicional).

    • Database superuser for creating the tables if necessary for your database system: Escribir el nombre de usuario mysql con permisos para la base de datos creado

    • Specify a password for the database user: Escribir la password de ese usuario

Aquí crea las tablas necesarias en la base de datos:

  • Loading database module...
    Creating database...
    [ OK ] Successfully created the global tables.
    [ OK ] Successfully created the tables for Mail (imp).
    [ OK ] Successfully created the tables for Filters (ingo).
    [ OK ] Successfully created the tables for Address Book (turba).
    [ OK ] Successfully created the tables for Calendar (kronolith).
    [ OK ] Successfully created the tables for Tasks (nag).
    [ OK ] Successfully created the tables for Notes (mnemo).
    Done creating tables.

  • (3) Configure administrator settings

    • Specify an existing mail user who you want to give administrator permissions (optional): Escribir el nombre de usuario de mail de quien será el administrador (debe ser un usuario de mail imap existente) Done configuring administrator settings.

Listo

  • (0) Exit

Test

Ahora podemos probar que pasen los tests básicos de la instalación, en un browser cargar la página test.php en el URL donde se instaló (por ejemplo http://example.com/horde/test.php).

Configuración

Autenticar contra SQL del postfix/postfixadmin

Como dice en http://wiki.horde.org/SQLAuthHowTo editamos ${WWWHOME}/horde/imp/config/servers.php y cambiamos la línea que dice hordeauth => false (dentro de $servers['imap']) por:

    'hordeauth' => 'full',

Ahora

  • entrar desde un browser (e.g. http://example.com/horde/) y loguearse con el usuario administrador que configuramos antes (con la clave que usa ese usuario para el mail). En Mode (en la pantalla de login), elegir Traditional

  • navegar: Administration -> Setup -> Horde, y elegir el tab Authentication

  • en $conf[auth][driver] elegir SQL authentication w/custom-made queries

  • en $conf[auth][params][phptype] elegir MySQL (mysqli) (salvo que la versión del server MySQL sea menor a 4.1, en cuyo caso, elegir MySQL).

  • en $conf[auth][params][protocol] elegir UNIX Sockets

  • en $conf[auth][params][socket] poner la ubicación del socket de mysql (en debian/ubuntu nuevos es /var/run/mysqld/mysqld.sock)

  • en $conf[auth][params][hostspec] dejar localhost

  • en $conf[auth][params][username] poner el usuario de la base de datos con el cual nos conectamos a la base mysql de autenticación (e.g. postfixadmin)

  • en $conf[auth][params][password] poner la password de ese usuario mysql

  • en $conf[auth][params][database] poner el nombre de la base de datos (e.g. postfix)

  • Configurar los queries al mysql (esto está hecho suponiendo que tenemos las tablas que usa postfixadmin)
    • en $conf[auth][params][query_auth] poner SELECT * FROM mailbox WHERE username = \L AND password = \P AND active = 1

    • en $conf[auth][params][query_add] poner INSERT INTO mailbox (username,password,name,maildir,domain,created,modified,active) VALUES (\L,\P,\L,CONCAT(SUBSTRING_INDEX(\L, '@', -1) ,'/', SUBSTRING_INDEX(\L, '@', 1)),SUBSTRING_INDEX(\L, '@', -1), NOW(),NOW(),1)

    • en $conf[auth][params][query_getpw] poner SELECT password FROM mailbox WHERE username = \L

    • en $conf[auth][params][query_update] poner UPDATE mailbox SET username = \L WHERE username = \O LIMIT 1

    • en $conf[auth][params][query_resetpassword] poner UPDATE mailbox SET password = \P WHERE username = \L

    • en $conf[auth][params][query_remove] poner DELETE FROM mailbox WHERE username = \L

    • en $conf[auth][params][query_list] poner SELECT username,name,maildir,domain,created,modified,active FROM mailbox

    • en $conf[auth][params][query_exists] poner SELECT 1 FROM mailbox WHERE username = \L

    • en $conf[auth][params][encryption] elegir el algoritmo de hashing que tienen las passwords en la base de datos

    • en $conf[auth][params][show_encryption seleccionar el checkbox

  • Apretar el botón Generate Horde Configuration

email

Para que funcionen las notificaciones via email, el mail tiene que estar bien configurado en horde... si tenemos un sendmail o similar local (yo estoy usando postfix), hay que configurar el comando correctamente:

  • navegar: Administration -> Setup -> Horde, y elegir el tab Mailer

  • en $conf[mailer][type] elegir Use the local sendmail binary

  • en $conf[mailer][params][sendmail_path] poner /usr/sbin/sendmail (o el path absoluto donde está instalado el comando sendmail por default horde tiene /usr/lib/sendmail)

  • en $conf[mailer][params][sendmail_args] dejar -oi (o fijarse en man sendmail que opciones queremos poner)

  • Apretar el botón Generate Horde Configuration

  • Asegurarse de que el usuario bajo el cual corre el horde (e.g. www-data) tenga permisos suficientes para ejecutar el comando senmdail, en el caso del postfix, tuve que hacer que pueda leer el archivo /etc/postfix/main.cf.

varios

cambiar de lugar el log (por default está en /tmp)

  • navegar: Administration -> Setup -> Horde, y elegir el tab Logging

  • en $conf[log][priority] elegir PEAR_LOG_INFO

  • en $conf[log][type] elegir File

  • en $conf[log][name] poner /var/log/horde.log

  • Apretar el botón Generate Horde Configuration

  • en una terminal, hacer:

# muevo el log file que estaba en /tmp (si es que existía)
sudo mv /tmp/horde.log /var/log
# creo el archivo para el log vacío si no existe (si no, a lo sumo le cambio la fecha/hora de modificación)
sudo touch /var/log/horde.log
# le doy los permisos correctos
sudo chown -R ${WWWUSER}.${WWWGROUP} /var/log/horde.log
# configuro la rotación del log
cd ${WWWHOME}/horde
sudo cp -v scripts/horde.logrotate /etc/logrotate.d/horde

usar ImageMagick para manejar imágenes

  • navegar: Administration -> Setup -> Horde, y elegir el tab Image Manipulation

  • en $conf[image][convert] poner /usr/bin/convert (o el path del convert de ImageMagick)

  • Apretar el botón Generate Horde Configuration

detección de tipos de archivos

  • navegar: Administration -> Setup -> Horde, y elegir el tab MIME Detection

  • en $conf[mime][magic_db] poner /usr/share/misc/magic (o el path del magic que usa el comando file)

  • Apretar el botón Generate Horde Configuration

envío de reportes de problemas

Si no tenemos configurado el whups:

  • navegar: Administration -> Setup -> Horde, y elegir el tab Problem Reporting

  • en $conf[problems][email] poner la dirección de mail a la que hay que dirigir los problemas

  • en $conf[problems][maildomain] poner el dominio que hay que agregar a los usuarios que no tienen dirección de mail cargada

  • Apretar el botón Generate Horde Configuration

InstalaciónDeHordeGroupwareWebmailEdition (última edición 2008-09-30 15:14:47 efectuada por MarianoAbsatz)

Edit and actions menu

  • Página inmutable
  • Información
  • Adjuntos