Recherche de site Web

Comment installer le Webmail Roundcube sur CentOS/RHEL 8/7


Roundcube est un logiciel de messagerie Web IMAP multilingue basé sur le Web, gratuit et open source, complet, avec une interface utilisateur de type application entièrement fonctionnelle et personnalisable, et qui utilise les dernières normes Web. Il est construit en PHP et offre toutes les fonctionnalités que vous pouvez attendre d'un client de messagerie moderne.

Caractéristiques du cube rond :

  • Il est multilingue et prend en charge plus de 70 langues.
  • Prend en charge un carnet d'adresses Rechercher au fur et à mesure de la frappe.
  • Prend en charge plusieurs identités d’expéditeur.
  • Offre une protection sophistiquée de la vie privée.
  • Dispose d'un carnet d'adresses complet avec des groupes et des connecteurs LDAP.
  • Propose la composition de messages richtext/HTML.
  • Prend en charge la recherche de messages et de contacts.
  • Prend en charge Int. noms de domaine (IDNA).
  • Prend en charge la manipulation de dossiers, les dossiers partagés et l'ACL.
  • Extensible à l'aide de l'API du plug-in.
  • Fournit une fonctionnalité de vérification orthographique.
  • Fournit des fonctions d’importation/exportation.
  • Possède une API de plug-in pour des extensions flexibles et bien plus encore.

Configuration recommandée:

  1. Un serveur CentOS 8/RHEL 8 ou CentOS 7/RHEL 7 avec installation minimale.
  2. Serveur Web Apache ou Nginx
  3. Base de données PHP et MySQL/MariaDB
  4. Serveur SMTP et IMAP avec prise en charge IMAP4 rev1

Pour le cadre de cet article, nous supposons que vous disposez déjà d'un serveur de messagerie Postfix en cours d'exécution avec des utilisateurs virtuels, sinon suivez nos guides de configuration :

  1. Configuration du serveur de messagerie Postfix et Dovecot avec MariaDB – Partie 1
  2. Configurer les utilisateurs du domaine virtuel Postfix et Dovecot – Partie 2
  3. Installer et intégrer ClamAV et SpamAssassin au serveur de messagerie Postfix – Partie 3

Environnement de test :

Pour les besoins de cet article, je vais installer Roundcube Webmail sur un VPS Linode CentOS avec un serveur Web Nginx, une adresse IP statique 192.168.0.100 et un nom d'hôte mail.linux-console.net.

Étape 1 : Installez Nginx, PHP-FPM et MariaDB dans CentOS 8/7

1. Commencez par activer les référentiels EPEL et REMI et installez Nginx, PHP , PHP-FPM et serveur MariaDB sur votre système 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. Une fois que vous avez installé avec succès tous les packages, démarrez le serveur Web Nginx, activez-le pour démarrer automatiquement au démarrage et vérifiez s'il est opérationnel.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Ensuite, si un pare-feu système est activé, vous devez ouvrir le port 80 pour les requêtes externes.

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload 

4. Ensuite, vous devez configurer PHP-FPM pour qu'il fonctionne correctement. Ouvrez le fichier /etc/php.ini à l'aide d'un éditeur de test en ligne de commande.

vim /etc/php.ini

Recherchez la directive ;cgi.fix_pathinfo=1, décommentez-la et définissez sa valeur sur 0.

cgi.fix_pathinfo=0

Décommentez également la directive ;date.timezone et définissez sa valeur sur votre fuseau horaire.

date.timezone = "Africa/Kampala"

Une fois que vous avez terminé, enregistrez le fichier et quittez.

5. Ensuite, démarrez le service PHP-FPM, activez-le pour démarrer automatiquement au moment du démarrage et vérifiez s'il est opérationnel, comme suit.

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

Étape 2 : Sécuriser le serveur MariaDB et créer une base de données Roundecube

6. Démarrez maintenant le service MariaDB à l'aide des commandes suivantes.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. L'installation par défaut de MariaDB n'est pas sécurisée. Vous devez exécuter le script de sécurité fourni avec le package binaire pour le sécuriser. Il vous sera demandé de définir un mot de passe root, de supprimer les utilisateurs anonymes, de désactiver la connexion root à distance et de supprimer la base de données de test.

mysql_secure_installation

8. Connectez-vous maintenant à la base de données MariaDB, créez une base de données pour Roundecube et accordez à l'utilisateur les autorisations appropriées sur la base de données (n'oubliez pas de définir un mot de passe fort/sécurisé dans un environnement de production).

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. Ensuite, importez la disposition de la table Roundcube dans la base de données nouvellement créée.

cd /var/www/html/roundcubemail/
mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Étape 3 : Téléchargez le package Roundcube

10. Dans cette étape, téléchargez la dernière version stable (1.4.9 au moment d'écrire ces lignes) de Roundcube à partir de la page de téléchargement ou utilisez le téléchargeur de ligne de commande wget pour récupérez-le, extrayez le fichier TAR et téléchargez les fichiers dans la racine du document de votre serveur 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. Ensuite, définissez les autorisations appropriées sur les fichiers Webroot Roundcube.

chown -R nginx:nginx /var/www/html/roundcubemail

Étape 4 : Configurer le bloc de serveur Nginx pour le programme d'installation Web Roundcube

12. Créez maintenant un bloc serveur Nginx pour le Roundcube sous /etc/nginx/conf.d/ (vous pouvez nommer le fichier comme vous le souhaitez mais il doit avoir un .conf).

vim /etc/nginx/conf.d/mail.example.com.conf

Ajoutez la configuration suivante dans le fichier.

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

Enregistrez le fichier et fermez-le.

13. Ensuite, ouvrez le fichier /etc/php-fpm.d/www.conf pour apporter quelques modifications au site Web PHP-FPM. directif.

vim /etc/php-fpm.d/www.conf

Remplacez l'utilisateur apache par nginx dans les variables suivantes.

user = nginx
group = nginx

Commentez ensuite la ligne listen=127.0.0.1:9000 et définissez la variable d'écoute pour qu'elle écoute sur un socket Unix défini dans le fichier de bloc du serveur nginx :

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

Définissez également les autorisations pour le socket UNIX, supprimez les commentaires et modifiez les lignes comme suit :

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Une fois que vous avez terminé, enregistrez le fichier et fermez-le.

14. Redémarrez ensuite les services Nginx et PHP-FPM pour appliquer les modifications récentes, comme suit.

systemctl restart nginx php-fpm

Étape 5 : Accédez à l'interface utilisateur Web de Roundcube

15. Avant de démarrer l'assistant d'installation, pour éviter toute erreur de session, définissez les autorisations appropriées sur le répertoire /var/lib/php/session/. Le propriétaire du groupe par défaut est apache, remplacez-le par nginx comme indiqué.

ls -ld /var/lib/php/session/
chown :nginx /var/lib/php/session/
ls -ld /var/lib/php/session/

16. Ouvrez maintenant un navigateur et utilisez l'adresse http://mail.example.com/installer (remplacez le domaine par le nom du serveur que vous avez défini lors de la création d'un bloc de serveur Nginx pour Roundcube) pour accéder au programme d'installation Web. Si toutes les versions, extensions et paramètres php.ini/.htaccess de PHP sont corrects, vous verrez la capture d'écran suivante, cliquez sur Suivant pour accéder à la page de configuration.

http://mail.example.com/installer
OR
http://IP-address/installer

17. La page de configurations vous permet de configurer votre instance Roundcube. Nous expliquerons uniquement les options importantes pour le cadre de ce guide.

Sous la Configuration générale, définissez un nom_produit, par exemple Example.com Webmail.

Accédez à Configuration de la base de données, saisissez l'hôte de la base de données, le nom, l'utilisateur et le mot de passe . pour vous connecter au serveur MySQL.

Faites ensuite défiler jusqu'aux paramètres IMAP et SMTP et saisissez l'adresse IP de votre serveur IMAP et SMTP, le cas échéant. le même serveur sur lequel vous exécutez Roundcube, laissez-le comme « localhost » et spécifiez également les autres paramètres nécessaires.

Vous pouvez spécifier d'autres paramètres en fonction de vos besoins, une fois que vous avez terminé, cliquez sur Créer une configuration.

18. Vous devriez maintenant voir un message indiquant « Le fichier de configuration a été enregistré avec succès dans le répertoire /var/www/html/roundcubemail/config de votre installation Roundcube. » Cliquez sur Continuer.

19. Vous pouvez vérifier votre configuration à partir de la page de configuration de test, comme indiqué dans la capture d'écran suivante.

20. Ensuite, supprimez l'intégralité du dossier d'installation (qui contient des fichiers susceptibles d'exposer au public des données de configuration sensibles telles que les mots de passe du serveur et les clés de cryptage) du répertoire racine de Roundcube (ou assurez-vous que le l'option activate_installer dans config.inc.php est désactivée).

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

21. Enfin, utilisez l'URL http://mail.example.com pour accéder à la page de connexion Roundcube. Entrez votre nom d'utilisateur et votre mot de passe pour consulter vos mails.

Résumé

Roundcube est un client de messagerie Web multilingue largement utilisé et complet. Dans cet article, nous avons montré comment installer la dernière version stable de Roundcube Webmail sur un CentOS/RHEL 8/7 avec le serveur Web Nginx. Si vous avez des questions, utilisez le formulaire de commentaires ci-dessous pour nous contacter.