Búsqueda de sitios web

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 moderna y rápida para acceder a sus correos electrónicos en los principales proveedores de correo de dominio como Yahoo, Gmail, Outlook y muchos otros, así como a sus propios servidores de correo locales y, además, actúa como MUA (Agente de usuario de correo) accediendo a los servidores de correo del dominio a través de los protocolos IMAP y SMTP.

Demostración de RainLoop

Eche un vistazo rápido a la configuración de la página de demostración realizada por el 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 credenciales para su servidor de correo de dominio habilitado.

Este tutorial cubre el proceso de instalación del correo web Rainloop en Arch Linux desde el punto de vista de los archivos de configuración para Apache y Nginx. utilizando un dominio local virtual configurado a través del archivo de hosts local, 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

Requisitos

Para Nginx
  1. Instale LEMP (Nginx, PHP, MySQL con motor MariaDB y PhpMyAdmin) en Arch Linux
  2. Crear hosts virtuales en el servidor web Nginx
Para Apache
  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 para crear una entrada DNS rudimentaria en el archivo hosts local que apunte 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\etc\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 Hosts virtuales y SSL necesarias para Apache o Nginx.

Hosts virtuales 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 el SSL Virtual Host y agregue su nombre de dominio virtual (rainloop.lan) en Certificado Nombre común.

sudo nginx_gen_ssl.sh

Después de generar 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

Servidores virtuales Apache

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 
                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 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 
                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 un archivo Certificado SSL y 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 DocumentRoot de Rainloop, 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 php.ini archivo y, también, incluya la nueva ruta del servidor web DocumentRoot a la directiva open_basedir.

sudo nano /etc/php/php.ini

Localice y descomente 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 verifique 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 raíz de documentos, pero primero instale las utilidades del sistema wget y unzip.

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 a la ruta raíz del documento del host virtual ( /srv/www/rainloop/).

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

8. Luego establezca 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 maneras: utilizando un shell del sistema o mediante un navegador. Si desea configurar a través de 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, utilice la siguiente dirección URL https://rainloop.lan/?admin y luego proporcione las credenciales predeterminadas de la aplicación.

User= admin
Password= 12345

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

12. Si desea permitir que los contactos inicien sesión 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 Contactos campos.

mysql -u root -p
create database if not exists rainloop;
create user rainloop_user@localhost identified by “password”;
grant all privileges on rainloop.* to rainloop_user@localhost;
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 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.