Instale RainLoop Webmail (un cliente de correo electrónico basado en web) usando Nginx y Apache en Arch Linux


Rainloop es una aplicación web gratuita de código abierto escrita en PHP que proporciona una interfaz web rápida y moderna para acceder a sus correos electrónicos en los principales proveedores de correo de dominio como Yahoo, Gmail, Outlook y muchos otros, así como sus propios servidores de correo locales, y también, actúa como MUA (Mail User Agent) accediendo a los servidores de correo del dominio a través de los protocolos IMAP y SMTP.

Eche un vistazo rápido a la configuración de la página de demostración del autor en http://demo.rainloop.net/.

Una vez que haya implementado Rainloop en sus servidores, lo único que queda por hacer es acceder a su dominio Rainloop a través de un navegador web y proporcionar las credenciales para su servidor de correo de dominio habilitado.

Este tutorial cubre el proceso de instalación de correo web de Rainloop en Arch Linux desde ambos archivos de configuración de punto de vista para Apache y Nginx , utilizando un dominio local virtual configurado a través del archivo de hosts locales, sin un servidor DNS.

Si también necesita referencias sobre la instalación de Rainloop en sistemas Debian y Red Hat, visite el artículo anterior de RainLoop Webmail en.

  1. Instale RainLoop Webmail en sistemas basados en Debian y Red Hat

  1. Instale LEMP (Nginx, PHP, MySQL con motor MariaDB y PhpMyAdmin) en Arch Linux
  2. Cree hosts virtuales en el servidor web Nginx

  1. Instale LAMP (Linux, Apache, MySQL/MariaDB y PHP/PhpMyAdmin) en Arch Linux

Paso 1: Cree hosts virtuales para Nginx o Apache

1. Suponiendo que haya configurado sus servidores ( Nginx o Apache ) como se describe en los enlaces de presentaciones superiores, lo primero que debe hacer es crear un rudimentario Entrada de DNS en el archivo hosts local que apunta a la IP del sistema Arch Linux .

En el sistema Linux, edite el archivo /etc/hosts e incluya su dominio virtual Rainloop después de la entrada localhost.

127.0.0.1	localhost.localdomain  localhost     rainloop.lan
192.168.1.33	rainloop.lan

En el sistema Windows, edite C:\Windows\System32\drivers tc\hosts y agregue la siguiente línea en la parte inferior.

192.168.1.33       rainloop.lan

2. Después de verificar el dominio local usando el comando ping , cree las configuraciones necesarias de Hosts virtuales y SSL para Apache o Nginx .

Cree un archivo llamado rainloop.lan en la ruta /etc/nginx/sites-available/ con la siguiente configuración.

$ sudo nano /etc/nginx/sites-available/rainloop.conf

Agregue el siguiente contenido de archivo.

server {
    listen 80;
    server_name rainloop.lan;

    rewrite        ^ https://$server_name$request_uri? permanent;
    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;
    root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
     root    /srv/www/rainloop/;
     expires 30d;
    }

    location / {
        index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
 }

 location ^~ /data {
  deny all;
}

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

Luego, cree el contenido del archivo equivalente a SSL.

$ sudo nano /etc/nginx/sites-available/rainloop-ssl.conf

Agregue el siguiente contenido de archivo.

server {
    listen 443 ssl;
    server_name rainloop.lan;

       ssl_certificate     /etc/nginx/ssl/rainloop.lan.crt;
       ssl_certificate_key  /etc/nginx/ssl/rainloop.lan.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;

   root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
      root    /srv/www/rainloop/;
      expires 30d;
    }

location ^~ /data {
  deny all;
}

    location / {
        index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
 }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

En el siguiente paso, genere el archivo Certificado y las Claves para Host virtual SSL y agregue su nombre de dominio virtual ( rainloop.lan ) en el certificado Nombre común .

$ sudo nginx_gen_ssl.sh

Una vez generados el certificado y las claves SSL, cree la ruta del archivo del servidor web raíz de Rainloop (lugar donde residen los archivos PHP de Rainloop), luego habilite los hosts virtuales y reinicie el demonio Nginx para aplicar las configuraciones.

$ sudo mkdir -p /srv/www/rainloop
$ sudo n2ensite rainloop
$ sudo n2ensite rainloop-ssl
$ sudo systemctl restart nginx

Cree un nuevo archivo llamado rainloop.conf en /etc/httpd/conf/sites-available/ con el siguiente contenido.

$ sudo nano /etc/httpd/conf/sites-available/rainloop.conf

Agregue el siguiente contenido de archivo.

<VirtualHost *:80>
                ServerName rainloop.lan
                DocumentRoot "/srv/www/rainloop/"
                ServerAdmin [email protected]
                ErrorLog "/var/log/httpd/rainloop-error_log"
                TransferLog "/var/log/httpd/rainloop-access_log"

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

Luego, cree el contenido del archivo equivalente a SSL para Apache.

$ sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf

Agregue el siguiente contenido de archivo.

<VirtualHost *:443>
                ServerName rainloop.lan
                DocumentRoot "/srv/www/rainloop/"
                ServerAdmin [email protected]
                ErrorLog "/var/log/httpd/rainloop-ssl-error_log"
                TransferLog "/var/log/httpd/rainloop-ssl-access_log"

SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/rainloop.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/rainloop.lan.key"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog "/var/log/httpd/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

El siguiente paso es crear el archivo Certificado SSL y las Claves para el Host Virtual SSL y agregar su nombre de dominio virtual ( rainloop.lan ) en el certificado Nombre común .

$ sudo apache_gen_ssl

Después de crear el certificado y las claves SSL, agregue la ruta Rainloop DocumentRoot , luego habilite los hosts virtuales y reinicie el demonio Apache para aplicar las configuraciones.

$ sudo mkdir -p /srv/www/rainloop
$ sudo a2ensite rainloop
$ sudo a2ensite rainloop-ssl
$ sudo systemctl restart httpd

Paso 2: agregue las extensiones PHP necesarias

3. Ya sea que esté utilizando el servidor web Apache o Nginx , debe habilitar las siguientes extensiones PHP en el archivo php.ini y, además, incluir la nueva ruta del servidor web DocumentRoot a la directiva open_basedir .

$ sudo nano /etc/php/php.ini

Busque y elimine el comentario de las siguientes extensiones de PHP.

extension=iconv.so
extension=imap.so
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so ( enables IMAPS and SMTP SSL protocols on mail servers)
extension=pdo_mysql.so

También la declaración open_basedir debería verse así.

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

4. Después de modificar el archivo php.ini , reinicie su servidor y luego revise el archivo phpinfo para ver si los protocolos SSL están habilitados.

----------On Apache Web Server----------
$ sudo systemctl restart httpd
----------On Nginx Web Server----------
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

Paso 3: Descargue e instale RainLoop Webmail

5. Ahora es el momento de descargar y extraer la aplicación Rainloop del sitio web oficial al directorio Document Root, pero primero instale wget y descomprima las utilidades del sistema.

$ sudo pacman -S unzip wget

6. Descargue el archivo zip Rainloop del paquete fuente más reciente usando el comando wget o usando un navegador para navegar a http://rainloop.net/downloads/.

$ wget http://repository.rainloop.net/v1/rainloop-latest.zip

7. Una vez finalizado el proceso de descarga, extraiga el archivo Rainloop en la ruta raíz del documento del host virtual (/srv/www/rainloop/).

$ sudo unzip rainloop-latest.zip -d  /srv/www/rainloop/

8. Luego, configure los siguientes permisos en la ruta predeterminada de la aplicación.

$ sudo chmod -R 755 /srv/www/rainloop/
$ sudo chown -R http:http /srv/www/rainloop/

Paso 4: configurar Rainloop a través de la interfaz web

9. La aplicación Rainloop se puede configurar de dos formas: utilizando un shell del sistema o mediante un navegador. Si desea configurar sobre la terminal, abra y edite el archivo application.ini ubicado en /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Para acceder a la interfaz de administración desde el navegador, use la siguiente dirección URL https: //rainloop.lan/? Admin , luego proporcione las credenciales de la aplicación predeterminada.

User= admin
Password= 12345

11. Después del inicio de sesión, se le advertirá que cambie la contraseña predeterminada, por lo que le aconsejo que lo haga.

12. Si desea habilitar el inicio de sesión de contactos en la base de datos MySQL y crear una nueva base de datos con un usuario privilegiado, proporcione las credenciales de la base de datos en los campos Contactos .

mysql -u root -p
create database if not exists rainloop;
create user [email protected] identified by “password”;
grant all privileges on rainloop.* to [email protected];
flush privileges;
exit;

13. De forma predeterminada, Rainloop proporciona archivos de configuración del servidor de correo de los dominios Gmail , Yahoo y Outlook , pero puede agregar otros dominios del servidor de correo si lo desea.

14. Para iniciar sesión en su servidor de correo, dirija su navegador a https: //rainloop.lan y proporcione las credenciales de su servidor de dominio.

Para obtener más configuraciones, visite la página de documentación oficial de Rainloop en http://rainloop.net/docs/.

Con Rainloop, puede acceder a los servidores de correo desde cualquier dispositivo que tenga un navegador siempre que su servidor tenga conectividad a Internet, el único inconveniente de usar la aplicación Rainloop en Arch Linux hasta ahora es la falta del paquete de complemento poppassd necesario. para cambiar la contraseña de la cuenta de correo electrónico.