Recherche de site Web

Installez RainLoop Webmail (un client de messagerie basé sur le Web) à l'aide de « Nginx et Apache » dans Arch Linux


Rainloop est une application Web Open Source gratuite écrite en PHP qui fournit une interface Web moderne et rapide pour accéder à vos e-mails sur tous les principaux fournisseurs de messagerie de domaine comme Yahoo, Gmail, Outlook et bien d'autres ainsi que sur vos propres serveurs de messagerie locaux et, également, agit comme un MUA (Mail User Agent) en accédant aux serveurs de messagerie du domaine via les protocoles IMAP et SMTP.

Démo RainLoop

Jetez un coup d'œil rapide à la configuration de la page de démonstration par l'auteur sur http://demo.rainloop.net/.

Une fois que vous avez déployé Rainloop sur vos serveurs, la seule chose qu'il vous reste à faire est d'accéder à votre domaine Rainloop via un navigateur Web et de fournir les informations d'identification de votre serveur de messagerie de domaine activé.

Ce didacticiel couvre le processus d'installation de la messagerie Web Rainloop sur Arch Linux du point de vue des fichiers de configuration pour Apache et Nginx, en utilisant un domaine local virtuel configuré via un fichier d'hôtes locaux, sans serveur DNS.

Si vous avez également besoin de références sur l'installation de Rainloop sur les systèmes Debian et Red Hat, consultez l'article précédent de RainLoop Webmail à l'adresse.

  1. Installez RainLoop Webmail sur les systèmes basés sur Debian et Red Hat

Exigences

Pour Nginx
  1. Installez LEMP (Nginx, PHP, MySQL avec le moteur MariaDB et PhpMyAdmin) dans Arch Linux
  2. Créer des hôtes virtuels sur le serveur Web Nginx
Pour Apache
  1. Installez LAMP (Linux, Apache, MySQL/MariaDB et PHP/PhpMyAdmin) dans Arch Linux

Étape 1 : Créer des hôtes virtuels pour Nginx ou Apache

1. En supposant que vous ayez configuré vos serveurs (Nginx ou Apache) comme décrit dans les liens des présentations supérieures, la première chose que vous devez faire est pour créer une entrée DNS rudimentaire sur le fichier hosts local qui pointe vers l'adresse IP du système Arch Linux.

Sur le système Linux, modifiez le fichier /etc/hosts et incluez votre domaine virtuel Rainloop après l'entrée localhost.

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

Sur le système Windows, modifiez C:\Windows\System32\drivers\etc\hosts et ajoutez la ligne suivante en bas.

192.168.1.33       rainloop.lan

2. Après avoir vérifié le domaine local à l'aide de la commande ping, créez les configurations Hôtes virtuels et SSL nécessaires pour Apache ou Nginx.

Hôtes virtuels Nginx

Créez un fichier nommé rainloop.lan dans le chemin /etc/nginx/sites-available/ avec la configuration suivante.

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

Ajoutez le contenu du fichier suivant.

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;
    }
 }

Créez ensuite le contenu du fichier équivalent SSL.

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

Ajoutez le contenu du fichier suivant.

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;
    }
 }

À l'étape suivante, générez un fichier Certificat et des Clés pour Hôte virtuel SSL et ajoutez votre nom de domaine virtuel (rainloop.lan) sur le certificat Nom commun.

sudo nginx_gen_ssl.sh

Une fois le certificat et les clés SSL générés, créez le chemin du fichier du serveur Web Rainloop racine (endroit où résident les fichiers PHP Rainloop), puis activez les hôtes virtuels et redémarrez le démon Nginx pour appliquer les configurations.

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

Hôtes virtuels Apache

Créez un nouveau fichier nommé rainloop.conf dans /etc/httpd/conf/sites-available/ avec le contenu suivant.

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

Ajoutez le contenu du fichier suivant.

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

Créez ensuite le contenu du fichier équivalent SSL pour Apache.

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

Ajoutez le contenu du fichier suivant.

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

L'étape suivante consiste à créer un fichier de certificat SSL et des clés pour l'hôte virtuel SSL et à ajouter votre nom de domaine virtuel (rainloop.lan ) sur le certificat Nom commun.

sudo apache_gen_ssl

Une fois le certificat et les clés SSL créés, ajoutez le chemin Rainloop DocumentRoot, puis activez les hôtes virtuels et redémarrez le démon Apache pour appliquer les configurations.

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

Étape 2 : Ajoutez les extensions PHP nécessaires

3. Que vous utilisiez le serveur Web Apache ou Nginx, vous devez activer les extensions PHP suivantes sur php.ini et, également, incluez le nouveau chemin DocumentRoot du serveur Web vers la directive open_basedir.

sudo nano /etc/php/php.ini

Recherchez et décommentez les extensions PHP suivantes.

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

L'instruction open_basedir devrait également ressembler à ceci.

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

4. Une fois le fichier php.ini modifié, redémarrez votre serveur puis vérifiez le fichier phpinfo pour voir si les protocoles SSL sont activés.

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

Étape 3 : Téléchargez et installez la messagerie Web RainLoop

5. Il est maintenant temps de télécharger et d'extraire l'application Rainloop du site officiel vers le répertoire racine du document, mais installez d'abord wget et décompressez les utilitaires système.

sudo pacman -S unzip wget

6. Téléchargez l'archive zip Rainloop du dernier package source à l'aide de la commande wget ou en utilisant un navigateur pour accéder à http://rainloop.net/downloads/.

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

7. Une fois le processus de téléchargement terminé, extrayez l'archive Rainloop vers le chemin racine du document hôte virtuel ( /srv/www/rainloop/ ).

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

8. Définissez ensuite les autorisations suivantes sur le chemin par défaut de l'application.

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

Étape 4 : Configurer Rainloop via l'interface Web

9. L'application Rainloop peut être configurée de deux manières : à l'aide d'un shell système ou via un navigateur. Si vous souhaitez configurer via un terminal, ouvrez et modifiez le fichier application.ini situé dans /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Pour accéder à l'interface d'administration à partir du navigateur, utilisez l'adresse URL suivante https://rainloop.lan/?admin, puis fournissez les informations d'identification par défaut de l'application.

User= admin
Password= 12345

11. Après la première connexion, vous serez invité à modifier le mot de passe par défaut, je vous conseille donc de le faire.

12. Si vous souhaitez activer la connexion des contacts à la base de données MySQL et créer une nouvelle base de données avec un utilisateur privilégié, fournissez les informations d'identification de la base de données sur Contacts champs.

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. Par défaut, Rainloop fournit les fichiers de configuration du serveur de messagerie des domaines Gmail, Yahoo et Outlook, mais vous pouvez en ajouter d'autres. domaines du serveur de messagerie si vous le souhaitez.

14. Pour vous connecter à votre serveur de messagerie, pointez votre navigateur sur https://rainloop.lan et fournissez les informations d'identification de votre serveur de domaine.

Pour d'autres configurations, veuillez visiter la page de documentation officielle de Rainloop à l'adresse http://rainloop.net/docs/.

Avec Rainloop, vous pouvez accéder aux serveurs de messagerie à partir de n'importe quel appareil doté d'un navigateur tant que votre serveur dispose d'une connectivité Internet. Le seul inconvénient de l'utilisation de l'application Rainloop dans Arch Linux jusqu'à présent est l'absence de package de plug-in poppassd nécessaire. pour changer le mot de passe du compte de messagerie.