Instalación de Roundcube con Plesk

      32 comentarios en Instalación de Roundcube con Plesk

Bueno, y siguiendo en la línea de cosas con las que me encuentro hoy os vengo con un tutorial para instalar Roundcube (webmail bueno, bonito y barato) en un servidor que tenga plesk 11, que tiene la mala costumbre de ignorar la configuración de vhost de apache cuando le apetece por lo que aquí os digo cómo instalar roundcube para todos los dominios, logueandose sin incluir el dominio, etc. pero instalándolo en una suscripción de plesk con lo que además de no darnos fallos tontos estará incluido en el backup de Plesk si algún día lo necesitásemos.

Esta instalación la hice en un centos 6 pero no tiene ningún tema que sea específico de distribución por lo que debería funcionar también en las basadas en debian y adaptando la parte de configuración de roundcube el resto debería servir para cualquier otro webmail que os apetezca instalar.

Hay unos cuantos tutoriales sobre el tema por internet pero la mayoría o no funcionan o se cargan algún webmail de plesk para sustituirlo por roundcube, con este método quedarán intactos todos los webmails de plesk y roundcube se añadirá como uno nuevo.

Sin más dilación, al tema…

Creación de suscripción en Plesk 

Para empezar creamos una suscripción nueva en Plesk para el roundcube, le podemos poner como nombre de dominio roundcube.local por ejemplo. Tiene que ser una nueva suscripción, no sirve un nuevo dominio en una suscripción existente porque podría dar problemas luego.

Para ello entramos en la opción suscripciones y seleccionamos Añadir suscripción nueva

Al instalarlo en una suscripción de plesk no tendremos que realizar ninguna configuración fuera de los ficheros de plesk y además como comentaba estará en el backup.

 

Configuración de la base de datos

Se puede crear desde el propio Plesk en la suscripción de roundcube.local una base de datos tipo roundcubedb o rounducbemail, crear el usuario con su contraseña y dejarla estar.

Lo único que la contraseña no contenga caracteres como @ o . que puedan dar problemas luego al ponerlos en el fichero de configuración

Una vez ya tenemos creada la base de datos para Roundcube,  pasamos a instalar el webmail en nuestro servidor.

 

Instalación de RoundCube en nuestro servidor

Para instalar roundcube entramos a nuestro servidor por ssh y entramos al directorio de la web que nos hemos creado al principio

cd /var/www/vhosts/roundcube.local/httpdocs

Y una vez en él nos descargamos el roundcube desde sourceforge (pongo el enlace a la 0.8.1, podemos ir a su página web para buscar el enlace a la más reciente)

wget  http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.8.1/roundcubemail-0.8.1.tar.gz

Descomprimimos en fichero que nos hemos descargado:

tar –xvzf roundcubemail-0.8.1.tar.gz

Y movemos el contenido a la raíz de nuestra web:

mv  roundcubemail-0.8.1/* .

Con esto tenemos los ficheros en su lugar correspondiente, ahora toca cambiar la configuración, para ello entramos al directorio config

cd config

Y creamos los archivos de configuración de las plantillas con estos dos comandos:

cp db.inc.php.dist db.inc.php
cp main.inc.php.dist main.inc.php

Ahora modificamos la configuración del acceso a base de datos, para ello modificamos el fichero db.inc.php con el editor de texto que prefiramos (yo usaré vi)

vi db.inc.php

Configuramos la línea rcmail_config[‘db_dsnw’] con los datos de nuestra base de datos creada anteriormente, sustituyendo los datos entre <> con los nuestros:

$rcmail_config['db_dsnw'] = 'mysql://<usuario>:<contraseña>@localhost/<base de datos>';

 

Ahora modificamos el fichero main.inc.php con el editor que prefiramos:

vi main.inc.php

 

Estos pasos serían opcionales pero garantizan una serie de funcionalidades interesantes, hay que realizar los cambios indicados en el main.inc.php:

Permitir loguearse sin introducir el servidor

$rcmail_config['default_host'] = ‘mail.%d’;

o el servidor de correo si es distinto de mail.dominio

Crear correctamente las carpetas enviado, papelera, etc

$rcmail_config['create_default_folders'] = true;

Hacer que genere los emails en html

Aquí podemos poner varios valores, 0 nunca genera mails en html, 1 siempre lo hace, 2 solamente al responder a mails originalmente en html.

$rcmail_config['htmleditor'] = 1;

 Para no necesitar poner @dominio en el login

$rcmail_config['username_domain'] = '%d'

 Para poder modificar la contraseña desde el webmail

Debemos generar el fichero del plugin, para ello desde el directorio httpdocs

cd /var/www/vhosts/roundcube.local/httpdocs
cp plugins/password/config.inc.php.dist plugins/password/config.inc.php

Ahroa editamos el fichero (como siempre uso vi por gusto)

vi plugins/password/config.inc.php

Y tenemos que cambiar la línea password driver para usar poppassd en vez de sql

$rcmail_config['password_driver'] = 'poppassd'

Para activar el plugin deberemos editar el fichero main.inc.php

vi config/main.inc.php

Y en la sección plugins añadir el plugin password modificando la entrada para que quede así:

$rcmail_config['plugins'] = array('password');

 

Carga inicial de la base de datos

Para que RoundCube funcione correctamente deberemos cargar en la base de datos un fichero sql inicial, se encuentra en la carpeta SQL y se llama mysql.initial.sql.

Podemos cargarlo desde el webadmin con la opción importar dentro de la base de datos o mediante línea de comandos ejecutando (sustituir los valores entre comillas por el usuario y la base de datos creados anteriormente sin las comillas) desde httpdocs:

mysql -u “usuario” -p “base de datos” < SQL/mysql.initial.sql

Nos pedirá la contraseña del usuario que es la que pusimos al crearlo.

 

Modificar vhost para que funcione con todos los dominios

Para poder utilizar el webmail con todos los dominios que tengamos en el servidor deberemos modificar el fichero vhost.conf de su dominio para que capture todas las entradas de algún subdominio (webmail, roundcube, rc,…)

Para ello debemos modificar el fichero siguiente:

vi /var/www/vhosts/roundcube.local/conf/vhost.conf

y añadirle las siguientes entradas (leer el párrafo siguiente primero, las entradas pueden variar según lo que queramos):

ServerName roundcube.webmail
ServerAlias roundcube.webmail.*
ServerAlias webmail.*
ServerAlias roundcube.*

Aquí tenemos cierto juego. El subdominio webmail seguirá apuntando a horde salvo que cambiemos esa configuración en Plesk (veremos esto más adelante). Pero podemos utilizar cualquier otro ServerAlias y tener varios webmail funcionando para el mismo domino,por ejemplo webmail.dominio.tld apuntando a horde, roundcube.dominio.tld apuntando a roundcube, etc. La mecánica es poner ServerAlias subdominio.* (el .* es para que capture de todos los dominios). Si el subdominio en cuestión no está configurado de otra forma en el dominio (tiene que estar en el DNS con una entrada A para el servidor) entrará en su lugar en el webmail.

Enfatizar la parte de que hay que crear las entradas de los subdominios en el DNS como entradas A apuntando al servidor, no como subdominios de plesk ni nada parecido, solamente en el DNS.

Con esta configuración de ejemplo el roundcube respondería en webmail.dominio, roundcube.dominio y roundcube.webmail.dominio.

Modificaciones en Plesk

Aquí tenemos dos opciones, usar un subdominio distinto de webmail para roundcube y dejar el webmail de plesk (horde por defecto en webmail.dominio) o configurar en plesk roundcube como webmail y usar el webmail.dominio.

Para funcionar con un subdominio distinto de webmail

Si queremos utilizar roundcube con un subdominio distinto a webmail solamente tenemos que haberlo configurado en el vhost.conf y añadir al DNS una entrada A para ese subdominio apuntando a la IP de nuestro servidor.

Para funcionar con webmail

Aquí vamos a añadir RoundCube como una opción de webmail en Plesk. Para ello lo primero es hacer que resuelva correctamente nuestro dominio ficticio de roundcube así que deberemos modificar el fichero hosts:

vi /etc/hosts

y añadir

<IP> roundcube.local

con la IP del servidor y el nombre de dominio que hayamos puesto a roundcube, de esta forma plesk resolverá correctamente la dirección (supongo que con 127.0.0.1 funcionará correctamente pero prefiero poner la IP externa por si plesk se pone tonto al añadir webmail).

Ahora en el panel de Plesk vamos a Herramientas y Configuración y seleccionamos en el apartado Correo la opción webmail.

Una vez dentro seleccionamos Registrar Webmail y ponemos un nombre al servicio, por ejemplo RoundCube y la dirección del servicio que sería en este caso http://roundcube.local, la que hemos configurado en el punto anterior.

Aceptamos y ya tendremos RoundCube como una opción de webmail en Plesk.

Ahora podemos ir al dominio que deseemos y en la configuración de correo seleccionar RoundCube como webmail.

Lamentablemente el soporte de Plesk para webmails de terceros sigue sin funcionar del todo así que esto elimina la redirección de webmail a horde pero no añade la nueva por lo que deberemos crear la entrada DNS de webmail como para funcionar con otro subdominio. Con suerte en algún parche solucionarán esto y crearán ellos la redirección.

 

Finalización y prueba

Para finalizar toda la configuración deberemos hacer que plesk reconfigure el dominio y reinicie el servidor web. Para ello ejecutamos el siguiente comando poniendo el nombre de dominio que hayamos elegido.

/usr/local/psa/admin/bin/httpdmng --reconfigure-domain roundcube.local

alternativamente podemos decirle que reconfigure todos los dominios con:

/usr/local/psa/admin/bin/httpdmng --reconfigure-all

Y con esto ya debería funcionar el roundcube en webmail.dominio, roundcube.dominio o donde lo tengáis configurado y si se hicieron todos los pasos funcionará para todos los dominios de plesk y sin tener que poner el dominio en el login.

 

Si se usa nginx

Si estamos usando nginx como proxy cache esto no funcionará directamente porque el vhosts.conf lo carga apache, pero nginx está antes. Por el momento hay que modificar el fichero

/var/www/vhosts/roundcube.local/conf/last_nginx.conf

y añadirle

server_name webmail.*

en el primer grupo de server_name que tiene

Luego reiniciamos nginx con /etc/init.d/nginx restart  (con reload también puede servir y no lo paramos)

y funcionará hasta que plesk regenere los ficheros de configuración, borre el cambio y tengamos que hacerlo de nuevo. En cuanto tenga una forma definitiva actualizo.

 

 

32 pensamientos en “Instalación de Roundcube con Plesk

  1. O. M.

    Hola Nelson,

    Está bastante bien el tutorial (yo lo he utilizado de base pero con algunas modificaciones como PostgreSQL, en lugar de MySQL, etc.); pero en la parte de «Modificar vhost para que funcione con todos los dominios» ¿cómo debería hacerse?

    Lo pregunto porque en Plesk 11.0.9 no están corriendo los dominios con Apache, sino con nginx, y por lo tanto el archivo «/var/www/vhosts/roundcube.local/conf/vhost.conf» no existe.

    Este es el contenido de la ruta:

    root@cp:/var/www/vhosts/roundcube.local/conf# ls -lasF
    total 20
    4 drwxr-x— 2 root psaserv 4096 Nov 25 00:11 ./
    4 drwxr-xr-x 13 root root 4096 Nov 24 18:26 ../
    4 -rw-r—– 1 root nginx 3448 Nov 24 18:26 13537779740.35399700_nginx.conf
    8 -rw-r—– 1 root www-data 7263 Nov 24 18:26 13537779850.12050000_httpd.include
    0 lrwxrwxrwx 1 root root 34 Nov 24 18:26 last_httpd.include -> 13537779850.12050000_httpd.include
    0 lrwxrwxrwx 1 root root 31 Nov 24 18:26 last_nginx.conf -> 13537779740.35399700_nginx.conf
    root@cp:/var/www/vhosts/roundcube.local/conf#

    ¿Qué archivo habría que modificar en el supuesto de que quisiera tener escuchando a Roundcube en webmail.*, y qué habría que modificar exactamente en él?

    Muchas gracias anticipadas y saludos cordiales!

    Responder
    1. Ricardo

      Hola buenas excelente guia, solo que en el ultimo paso me que colgado…el roundcube.local no me escucha al domenio roundcube.domenio.nl me sale una pagina de plesk. Estoy seguro que tendra que ver con los dns pero no logro hacerlo..lo he probado desde un subdomenio y entonces si que me funciona..

      Me podeis ayudar ? un saludo y muchas gracias

      Responder
      1. Nelson Autor

        Hola, tienes que crear la entrada en el DNS apuntando al mismo servidor pero no creando un subdominio de Plesk, únicamente ir a gestión de DNS y añadir una entrada subdominio A

        Responder
  2. Greska

    Buenas tardes, Nelson.

    Felicitarte antetodo este tipo de «manuales» que facilitan el acceso a nuevas aplicaciones («open») a mucha gente, comentarte que con la configuración que comentas ha funcionado todo correctamente excepto lo que explicas en el apartado: «Para no necesitar poner @dominio en el login».

    Has indicado que la modificación a realizar es en el archivo «main.inc.php»:

    $rcmail_config[‘mail_domain’] = ‘%d’

    Pero no funciona (Centos 6.3Final, Plesk 11.0.9#27), en su lugar si la modificación la realizamos en unas pocas lineas más arriba e indicamos lo siguiente:

    $rcmail_config[‘username_domain’] = ‘%d’

    Con esta configuración funciona correctamente.

    Responder
  3. Nelson Autor

    @Greska Efectivamente, en el manual puse la linea que no era, la que hay que modificar es username_domain, la otra es para la creación de usuarios, no para el login. Ahora mismo lo modifico. Gracias por el aviso 🙂

    Responder
    1. Nelson Autor

      Así, de golpe, se me ocurre un tema de permisos. ¿El propietario de los ficheros de roundcube es el usuario que ejecuta el php en la suscripción de roundcube?
      Comprueba en el log de errores de la suscripción de roundcube si aparece algo

      Responder
  4. Fernando

    El problema es cuando me logueo con el alias, por ejemplo si pongo

    webmail2.xxx.com -> no carga las imagenes, en cambio si entro por

    roundcube.local -> si las carga.

    Responder
  5. Fernando

    Ahh otra pista, cuando estoy ejecutando el comando

    /usr/local/psa/admin/bin/httpdmng –reconfigure-all

    funciona en el momento que finaliza deja de funcionar… esto es una locura

    Responder
    1. Nelson Autor

      Es muy extraño, ¿tienes algún mensaje de error en los logs de la suscripción del roundcube? Si la configuración está en el vhost.conf el httpdmng debería incluirla. El subdominio ¿lo tienes creado solamente como entrada dns o tienes creado un subdominio webmail2 en plesk?

      Responder
  6. Fernando

    ya funciona, era el dns que si no lo pones a mano en el dominio no le gusta… Lo había creado en la zona general de la administración y pasaba de todo.

    Cuando he entrado al dominio donde quería el nuevo webmail y lo he puesto a mano ha funcionado.

    Gracias por todo

    Responder
  7. drakeman

    Me ha pasado lo mismo que a Fernando, me sale la pantalla de login pero sin las hojas de sestilos, pueden verlo en roundcube.yocotizo.com, en mi caso creo que el tema no es el dns, que podría ser?

    agradezo su ayuda

    Responder
  8. Fernando

    Es exactamente lo que me pasaba a mi, ya te digo. Mi solución fue entrar al dominio principal y añadir a mano en el dns de esa suscripción la entrada webmail a mano.

    En este caso no debería ser webmail, es roundcube ya que has puesto ese alias. También puedes cambiar el webmail del dominio dentro del apartado de correo de esa suscripción para que tenga el que tu has creado.

    A ver si entre todos conseguimos que te funcione 😉

    La perseverancia da el éxito xD

    Responder
    1. drakeman

      Que tal Fernando, gracias por tu respuesta, mira mi archivo de vhost.conf actual es el siguiente:
      ServerName roundcube.yocotizo.local
      ServerAlias roundcube.*

      y mi entrada en el dominio yocotizo.com en plesk en el dns es la siguiente:
      roundcube.yocotizo.com. A 216.224.186.49

      es la unica que he creado, las demas estan igual, no se que mas deberia cambiar..

      alguna sugerencia?

      gracias por tu ayuda.

      Responder
  9. drakeman

    Ahora me pasa que cuajndo le doy el reconfigure-all me salen las imagenes pero cuando termina vuelve y sale en blanco jajajaj.. creo que estoy pasando por lo mismo que tu has pasado.

    Responder
  10. drakeman

    Fernando, ya logre que funcionara, en mi caso tenia que crear un domain alias, y listo, todo anda perfecto ahora…. puedes ver que ya carga bien y veo las imagenes y todo :D…. Soy Feliz, ahora, segui otra guía que me parecio mas sencilla, pero con esta hice ya el 90% de lo que necesitaba. la otra la use solo para verificar y comparar que me había faltado.

    Saludos desde Panama

    Responder
  11. Nelson Autor

    Es posible que tenga algo que ver con el nginx si no es tema de DNS, en cuanto tenga a mano un servidor con nginx hago la prueba.
    ¿Tienes algún mensaje de error en la suscripción del roundcube o en la del dominio de yocotizo.com?
    El problema con el alias es que solamente lo puedes poner a dominios de la misma suscripción

    Responder
  12. Nelson Autor

    La opción 3 de esa guía es lo mismo que aquí, la 1 y la 2 implicarían crear alias en esa suscripción por lo que tendrías que añadir el alias cada vez que alguien añadiese un dominio, pero en principio debería funcionar.

    Responder
  13. Nelson Autor

    Vale, confirmado que es nginx, me he topado con el mismo problema hoy en un servidor (en cuanto pueda actualizo la guía y cambio de paso algunos gazapos). Si tienes nginx no sirve solamente con el vhost.conf ya que no se aplica a nginx, hay que cambiar la configuración de nginx. Lamentablemente con plesk 11.0.9 todavía no se puede (creo que con la nueva que tienen en pruebas ya se podrá) así que hay que modificar el fichero /var/www/vhosts/roundcube.local/conf/last_nginx.conf y añadirle en el primer bloque server_name webmail.* y luego reiniciar nginx con /etc/init.d/nginx restart

    Con eso funcionará hasta que se haga un reconfigure-all o un reconfigure de roundcube.local que volverá a generar ese fichero y habria que volver a hacer ese cambio. Estoy mirando a ver si hay forma de hacer un cambio solamente para una suscripción y que quede permanente.

    Responder
  14. Manug

    Hola,
    Ante todo FELICIDADES. Tutorial bien explicado, entendible para los que vamos a medio gas en esto de los servidores con Plesk. Poco invasivo, no entramos demasiado en las tripas del sistema y FUNCIONA.
    Me has ayudado mucho, pues Horde parece de los años 60 y AtMail no me logea bien. Por si le ha pasado a alguien me falla el login 3 de 4 veces y no entiendoi porque a veces entra y otras no.
    Bueno gracias sinceramente y sigue publicando.
    Att.
    Manuel F. Gil

    Responder
  15. Jose Manuel

    Gracias por el aporte , eta muy bien explicado. Una sugerencia para si te animas a ayudarnos a configurar el modulo de vacaciones. Yo he seguido los manuales por ahí pero la verdad es que no lo consigo hacer funcionar. Muchas Gracias

    Responder
    1. Nelson Autor

      Hola,

      ¿A qué módulo de vacaciones te refieres? Lo siguiente voy a ver si subo un artículo para poner varnish con el Plesk, que mejora mucho los tiempos de carga en páginas con muchas visitas.

      Responder
  16. Manuel

    Nelson buen dia, excelente guia, pero me surge un problema, cuando me envian un correo que contiene varias direcciones en To y CC, hago clic en Responder a todos y al hacer clic en Enviar me da un error de que no pudo enviar el mensaje en el log de errores dice:

    PHP Warning: mail() [function.mail]: SMTP server response: 550 Requested action not taken: mailbox unavailable or not local in C:\Inetpub\vhosts\roundcube.local\httpdocs\program\include\main.inc on line 1527

    Las direcciones aparecen Nombre Apellido y en otros casos «Nombre Apellido»

    Si edito las direcciones por: usuario1@dominio, usuario2@dominio lo envia sin problema

    Has tenido un problema parecido?
    Tienes idea de que pueda estar pasando?

    Responder
  17. Alicia

    Tengo un servidor de correo «interno» funciona correctamente con direcciones «[email protected]» sin embargo en la ultima versión de Roundcube no me acepta como dominio «@127.0.0.1» en las validaciones me pide al menos que termino con «.LL» (o sea punto y dos letras cuales sean).

    Alguien sabría donde poder cambiar esta validación para que funcione como lo requiero?
    Ya he visto en varios archivos dentro de la configuración y código del sistema pero no he logrado encontrar dicha validación.
    Cabe señalar que en una versión muy anterior a la actual si funcionaba correctamente.
    Esto actualizando de versión ya que he tenido detalles con la versión que tengo y me veo obligada a actualizar.

    Gracias por su colaboración.

    Responder
  18. Nelson Autor

    Hola,

    Perdón por el retraso pero estuve con bastante lío últimamente.

    @Manuel Tuvieron un bug que no permitía enviar si el nombre llevaba comillas pero se supone que está solucionado hace tiempo, ¿qué versión de roundcube estás usando? ¿lleva solo comillas al fallar o tiene algún otro símbolo especial, tipo comas o similares?

    @Alicia Parece algún check que añadiesen a la página de login, ¿en qué versión te funcionaba y con cual te falla? ¿has probado a poner el dominio por defecto en 127.0.0.1 (o sin dominio) y entrar solamente con el nombre de usuario?

    Responder
  19. Julio

    hola.
    Por favor necesito ayuda, tengo plesk con rouncube y cuando envio email algunas veces me sale:
    error SMTP de autentificacion (454).
    Saben que tengo que hacer para solucionarlo.
    saludos

    Responder
    1. Nelson Autor

      Hola, ¿te ocurre solamente a veces y solamente con roundcube? Ese error 454 puede deberse a problemas con el TLS para el login. ¿Tienes acceso a los logs de postfix para ver qué error exacto está dando el servidor smtp?

      Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.