Cómo instalar el último correo web de Roundcube en CentOS 7


Roundcube es un software de correo web IMAP multilingüe, gratuito, de código abierto y basado en la web, con una interfaz de usuario similar a la 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 espera de un cliente de correo electrónico moderno.

  • It’s multilingual, supports over 70 languages.
  • Supports a Find-as-you-type address book.
  • Supports multiple sender identities.
  • Offers sophisticated privacy protection.
  • Has a full featured address book with groups and LDAP connectors.
  • Offers richtext/HTML message composing.
  • Supports searching messages and contacts.
  • Supports Int. domain names (IDNA).
  • Supports folder manipulation, shared folders and ACL.
  • Extensible using the Plug-in API.
  • Provides spell checking functionality.
  • Provides import/export functions.
  • Has a plug-in API for flexible exensions and so much more.
  1. A CentOS 7 Server or RHEL 7 Server with Minimal Install.
  2. Apache or Nginx web server
  3. PHP 5.4 and MySQL/MariaDB database
  4. SMTP and IMAP server with IMAP4 rev1 support

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

  1. Setting Up Postfix Mail Server and Dovecot with MariaDB – Part 1
  2. Configure Postfix and Dovecot Virtual Domain Users – Part 2
  3. Install and Integrate ClamAV and SpamAssassin to Postfix Mail Server – Part 3

A los efectos de este artículo, instalaré Roundcube Webmail en un VPS Linode CentOS 7 con un servidor web Nginx, dirección IP estática 192.168.0.100 y nombre de host mail.tecmint.com .

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

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

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 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á 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 utilizando un editor de prueba de línea de comandos.

# vim /etc/php.ini

Busque la directiva ; cgi.fix_pathinfo = 1 , descoméntela y establezca su valor en 0 .

cgi.fix_pathinfo=0

También 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á funcionando correctamente, de la siguiente manera.

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

Paso 2: Asegurar el servidor MariaDB y crear la base de datos de 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. Es necesario ejecutar el script de seguridad que viene con el paquete binario para asegurarlo. Se le pedirá que establezca una contraseña de root, elimine usuarios anónimos, desactive el inicio de sesión 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 apropiados en la base de datos (recuerde establecer una contraseña segura/segura en una producción ambiente).

# 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 de 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: Descarga el paquete Roundcube

10. En este paso, descargue la última versión estable ( 1.3.7 en el momento de escribir esto) de Roundcube desde la página de descarga o use el descargador de línea de comandos de wget para obténgalo, extarque 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.3.7/roundcubemail-1.3.7-complete.tar.gz
# tar xzf roundcubemail-1.3.7-complete.tar.gz 
# mv roundcubemail-1.3.7 /var/www/html/roundcubemail

11. A continuación, establezca los permisos adecuados en los archivos raíz de web 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 el roundcube en /etc/nginx/conf.d/ (puede nombrar el archivo de la forma que desee, pero debería tener un .conf extensión).

# 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. Luego, abra el archivo /etc/php-fpm.d/www.conf para realizar algunos cambios en 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 fuera de la línea listen = 127.0.0.1:9000 y configure la variable de escucha para escuchar en un conjunto de socket Unix en el archivo de bloque del servidor nginx:

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

También establezca los permisos para unix socket, 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, 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 dominio con el nombre del servidor que estableció al crear un bloque de servidor Nginx para roundcube) para acceder al instalador web. Si todas las versiones de PHP, las extensiones y la configuración 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 la Configuración general , configure un nombre_producto , por ejemplo, Ejemplo.com Webmail

Vaya a Configuración de la base de datos , ingrese el servidor de base de datos , nombre , usuario y 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 IMAP y SMTP , 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. Debería ver el mensaje " El archivo de configuración se guardó correctamente en el directorio/var/www/html/roundcubemail/config de su instalación de Roundcube". Continuar .

19. Puedes revisar tu 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 la carpeta completa del instalador (que contiene archivos que pueden exponer datos confidenciales de configuración como contraseñas de servidor y claves de cifrado para el público) del directorio raíz de roundcube (o asegúrese de que enable_installer La opción en config.inc.php está desactivada ).

# 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 la web y ampliamente utilizado. En este artículo, mostramos cómo instalar la última versión estable de Roundcube Webmail en un CentOS 7 con el servidor web Nginx. Si tiene alguna pregunta, utilice el formulario de comentarios a continuación para comunicarse con nosotros.