Búsqueda de sitios web

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á creado con PHP y ofrece la funcionalidad completa que puede esperar de un cliente de correo electrónico moderno.

Características del cubo redondo:

  • Es multilingüe, admite más de 70 idiomas.
  • Admite una libreta de direcciones para buscar mientras escribe.
  • Admite múltiples identidades de remitente.
  • 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.
  • Soporta Int. nombres de dominio (IDNA).
  • Admite manipulación de carpetas, carpetas compartidas y ACL.
  • Ampliable mediante la API del complemento.
  • Proporciona funcionalidad de revisión ortográfica.
  • Proporciona funciones de importación/exportación.
  • Tiene una API complementaria para extensiones flexibles y mucho más.

Requisitos del sistema recomendados:

  1. Un servidor CentOS 8/RHEL 8 o CentOS 7/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 soporte 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 nuestras guías de configuración:

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

Entorno de prueba:

A los efectos de este artículo, instalaré Roundcube Webmail en un VPS Linode CentOS con un servidor web Nginx, dirección IP estática 192.168.0.100 y nombre de host . correo.linux-console.net.

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

1. Primero comience habilitando los repositorios EPEL y REMI e instale Nginx, PHP. , PHP-FPM y el servidor 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 correctamente 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á en funcionamiento.

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=1, descomentela 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, de la siguiente manera.

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, deshabilite 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 '=213@!#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 la página de descarga o utilice el descargador de línea de comandos wget para Consígalo, 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 del 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 un 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 web PHP-FPM. directiva.

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=127.0.0.1:9000 y configure la variable de escucha 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, configure 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, de la siguiente manera.

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, establezca 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 configuró al crear un bloque de servidor Nginx para Roundcube) para acceder al instalador web. 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 configuración le permite configurar su instancia de Roundcube. Sólo explicaremos las opciones importantes para el alcance de esta guía.

En la 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 IMAP y SMTP e ingrese la dirección IP de su servidor IMAP y SMTP, si es así. 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 el La opción enable_installer en config.inc.php está deshabilitada).

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

21. Finalmente, utilice 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.

Resumen

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 un 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.