Cómo instalar Roundcube Webmail en CentOS/RHEL 8/7


Roundcube es un software de correo web IMAP multilingüe basado en web, gratuito, de código abierto y con todas las funciones, con una interfaz de usuario similar a una aplicación que es completamente funcional y personalizable, y utiliza los últimos estándares web. Está construido con PHP y ofrece la funcionalidad completa que puede esperar de un cliente de correo electrónico moderno.

  • Es multilingüe, admite más de 70 idiomas.
  • Admite una libreta de direcciones para buscar a medida que escribe.
  • Admite múltiples identidades de remitentes.
  • Ofrece una protección de privacidad sofisticada.
  • Tiene una libreta de direcciones con todas las funciones con grupos y conectores LDAP.
  • Ofrece redacción de mensajes de texto enriquecido/HTML.
  • Admite la búsqueda de mensajes y contactos.
  • Admite Int. nombres de dominio (IDNA).
  • Admite la manipulación de carpetas, carpetas compartidas y ACL.
  • Extensible mediante el complemento API.
  • Proporciona la función de revisión ortográfica.
  • Proporciona funciones de importación/exportación.
  • Tiene una API de complemento para extensiones flexibles y mucho más.

  1. Un servidor RHEL 7 con instalación mínima.
  2. Servidor web Apache o Nginx
  3. Base de datos PHP y MySQL/MariaDB
  4. Servidor SMTP e IMAP con compatibilidad con IMAP4 rev1

Para el alcance de este artículo, asumimos que ya tiene un servidor de correo electrónico Postfix en ejecución con usuarios virtuales; de lo contrario, siga la configuración de nuestras guías:

  1. Configuración del servidor de correo Postfix y Dovecot con MariaDB - Parte 1
  2. Configurar usuarios de dominio virtual de Postfix y Dovecot - Parte 2
  3. Instalar e integrar ClamAV y SpamAssassin en Postfix Mail Server - Parte 3

Para el propósito de este artículo, instalaré Roundcube Webmail en un VPS Linode CentOS con un servidor web Nginx, una dirección IP estática 192.168.0.100 y un nombre de host mail.tecmint.com.

Paso 1: Instale Nginx, PHP-FPM y MariaDB en CentOS 8/7

1. Primero comience habilitando los repositorios EPEL y REMI e instale el servidor Nginx, PHP, PHP-FPM y MariaDB en su sistema CentOS.

# yum install epel-release
# yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm    [CentOS/RHEL 8]
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm    [CentOS/RHEL 7]
# yum install yum-utils 
# yum-config-manager --enable remi-php72
# yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick mariadb-server   

2. Una vez que haya instalado con éxito todos los paquetes, inicie el servidor web Nginx, habilítelo para que se inicie automáticamente en el momento del arranque y verifique si está funcionando.

# systemctl start nginx 
# systemctl enable nginx
# systemctl status nginx

3. A continuación, si tiene un firewall del sistema habilitado, debe abrir el puerto 80 para solicitudes externas.

# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --reload 

4. A continuación, debe configurar PHP-FPM para que funcione correctamente. Abra el archivo /etc/php.ini usando un editor de prueba de línea de comandos.

# vim /etc/php.ini

Busque la directiva ; cgi.fix_pathinfo u003d 1 , descomente y establezca su valor en 0.

cgi.fix_pathinfo=0

Además, descomente la directiva ; date.timezone y establezca su valor en su zona horaria.

date.timezone = "Africa/Kampala"

Una vez que haya terminado, guarde el archivo y salga.

5. Luego, inicie el servicio PHP-FPM, habilítelo para que se inicie automáticamente en el momento del arranque y verifique si está en funcionamiento, como se indica a continuación.

# systemctl start php-fpm 
# systemctl enable php-fpm 
# systemctl status php-fpm 

Paso 2: Asegure el servidor MariaDB y cree la base de datos Roundecube

6. Ahora inicie el servicio MariaDB usando los siguientes comandos.

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb

7. La instalación predeterminada de MariaDB no es segura. Debe ejecutar el script de seguridad que viene con el paquete binario para protegerlo. Se le pedirá que establezca una contraseña de root, elimine usuarios anónimos, desactive el inicio de sesión de root de forma remota y elimine la base de datos de prueba.

# mysql_secure_installation

8. Ahora inicie sesión en la base de datos MariaDB, cree una base de datos para Roundecube y otorgue al usuario los permisos adecuados en la base de datos (recuerde establecer una contraseña segura en un entorno de producción).

# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '[email protected]!#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

9. A continuación, importe el diseño de la tabla Roundcube a la base de datos recién creada.

# cd /var/www/html/roundcubemail/
# mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Paso 3: descargue el paquete Roundcube

10. En este paso, descargue la última versión estable (1.4.9 en el momento de escribir este artículo) de Roundcube desde el descargador de línea de comandos wget para obtenerlo, extraiga el archivo TAR y cargue los archivos en la raíz de documentos de su servidor web. .

# wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
# tar xzf roundcubemail-1.4.9-complete.tar.gz 
# mv roundcubemail-1.4.9 /var/www/html/roundcubemail

11. A continuación, establezca los permisos adecuados en los archivos webroot de Roundcube.

# chown -R nginx:nginx /var/www/html/roundcubemail

Paso 4: Configurar el bloque de servidor Nginx para el instalador web de Roundcube

12. Ahora cree un bloque de servidor Nginx para Roundcube en /etc/nginx/conf.d/ (puede nombrar el archivo como desee, pero debe tener una extensión .conf).

# vim /etc/nginx/conf.d/mail.example.com.conf

Agregue la siguiente configuración en el archivo.

server {
        listen 80;
        server_name mail.example.com;

        root /var/www/html/roundcubemail;
        index  index.php index.html;

        #i# Logging
        access_log /var/log/nginx/mail.example.com_access_log;
        error_log   /var/log/nginx/mail.example.com_error_log;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
                deny all;
        }

        location ~ ^/(config|temp|logs)/ {
                deny all;
        }

        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

Guarde el archivo y ciérrelo.

13. A continuación, abra el archivo /etc/php-fpm.d/www.conf para realizar algunos cambios en la directiva web PHP-FPM.

# vim /etc/php-fpm.d/www.conf

Cambie el usuario apache a nginx en las siguientes variables.

user = nginx
group = nginx

Luego comente la línea listen u003d 127.0.0.1:9000 y configure la variable listen para escuchar en un socket Unix configurado en el archivo de bloque del servidor nginx:

listen = /var/run/php-fpm/php-fpm.sock

Además, establezca los permisos para el socket UNIX, descomente y cambie las líneas a:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Una vez que haya terminado, guarde el archivo y ciérrelo.

14. Luego reinicie los servicios Nginx y PHP-FPM para aplicar los cambios recientes, como se indica a continuación.

# systemctl restart nginx php-fpm

Paso 5: Acceda a la interfaz de usuario web de Roundcube

15. Antes de iniciar el asistente de instalación, para evitar errores de sesión, configure los permisos adecuados en el directorio/var/lib/php/session /. El propietario del grupo predeterminado es apache, cámbielo a nginx como se muestra.

# ls -ld /var/lib/php/session/
# chown :nginx /var/lib/php/session/
# ls -ld /var/lib/php/session/

16. Ahora abra un navegador y use la dirección http://mail.example.com/installer (reemplace el dominio con el nombre del servidor que estableció al crear un bloque de servidor Nginx para Roundcube) para acceder a la web instalador. Si todas las versiones de PHP, extensiones y configuraciones de php.ini/.htaccess son correctas, verá la siguiente captura de pantalla, haga clic en Siguiente para ir a la página de configuraciones.

http://mail.example.com/installer
OR
http://IP-address/installer

17. La página de configuraciones le permite configurar su instancia de Roundcube. Solo explicaremos las opciones importantes para el alcance de esta guía.

En Configuración general, establezca un nombre_producto, por ejemplo, Example.com Webmail.

Vaya a Configuración de la base de datos, ingrese el host de la base de datos, el nombre, el usuario y la contraseña para conectarse al servidor MySQL.

Luego, desplácese hacia abajo hasta la configuración de IMAP y SMTP e ingrese la dirección IP de su servidor IMAP y SMTP, si es el mismo servidor en el que está ejecutando Roundcube, déjelo como “localhost” y también especifique otros parámetros necesarios.

Puede especificar otras configuraciones según sus necesidades, una vez que haya terminado, haga clic en Crear configuración.

18. Ahora debería ver un mensaje que dice "El archivo de configuración se guardó correctamente en el directorio/var/www/html/roundcubemail/config de su instalación de Roundcube". Haga clic en Continuar.

19. Puede revisar su configuración desde la página de configuración de prueba como se muestra en la siguiente captura de pantalla.

20. A continuación, elimine toda la carpeta del instalador (que contiene archivos que pueden exponer al público datos de configuración confidenciales como contraseñas de servidor y claves de cifrado) del directorio raíz de Roundcube (o asegúrese de que la opción enable_installer en config.inc.php esté deshabilitada ).

# rm -rf /var/www/html/roundcubemail/installer

21. Finalmente, use la URL http://mail.example.com para acceder a la página de inicio de sesión de Roundcube. Ingrese su nombre de usuario y contraseña para ver sus correos.

Roundcube es un cliente de correo multilingüe basado en web con todas las funciones y ampliamente utilizado. En este artículo, mostramos cómo instalar la última versión estable de Roundcube Webmail en CentOS/RHEL 8/7 con el servidor web Nginx. Si tiene alguna pregunta, utilice el formulario de comentarios a continuación para comunicarse con nosotros.