Serveur Ubuntu · 10 min read · Oct 30, 2025

Le Serveur Parfait - Ubuntu 18.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD et ISPConfig 3.1) - Page 3

15. Installer Roundcube Webmail

Pour installer RoundCube webmail, exécutez :

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

L’installateur posera les questions suivantes :

Configurer la base de données pour roundcube avec dbconfig-common ? <-- Oui  
Mot de passe de l'application MySQL pour roundcube : <-- Appuyez sur entrer  
  

Ensuite, éditez le fichier de configuration RoundCube config.inc.php :

nano /etc/roundcube/config.inc.php

et changez l’hôte par défaut en localhost :

$config['default_host'] = 'localhost';

Cela empêche Roundcube d’afficher le champ de saisie du nom du serveur dans le formulaire de connexion.

Maintenant, créez un lien symbolique afin que nous puissions utiliser la configuration de SquirrelMail dans ISPConfig pour Roundcube :

ln -s /usr/share/roundcube /usr/share/squirrelmail

Après avoir installé ISPConfig 3, vous pouvez accéder à Roundcube comme suit :

L’application vhost ISPConfig sur le port 8081 pour nginx est livrée avec une configuration Roundcube, vous pouvez donc utiliser http://server1.example.com:8081/webmail pour accéder à Roundcube.

Si vous souhaitez utiliser un alias /webmail que vous pouvez utiliser depuis vos sites web, cela est un peu plus compliqué que pour Apache car nginx n’a pas d’alias globaux (c’est-à-dire, des alias qui peuvent être définis pour tous les vhosts). Par conséquent, vous devez définir ces alias pour chaque vhost à partir duquel vous souhaitez accéder à Roundcube.

Pour ce faire, collez ce qui suit dans le champ Directives nginx dans l’onglet Options du site web dans ISPConfig :

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

Si vous utilisez http s au lieu de http pour votre vhost, vous devez ajouter la ligne fastcgi_param HTTPS on; à votre configuration SquirrelMail comme ceci :

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_param HTTPS on; # <-- ajoutez cette ligne
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

Si vous utilisez à la fois http et https pour votre vhost, vous devez ajouter la section suivante à la section http {} dans /etc/nginx/nginx.conf (avant toute ligne d’inclusion) qui détermine si le visiteur utilise http ou https et définit la variable $fastcgi_https (que nous utiliserons dans notre configuration Roundcube) en conséquence :

nano /etc/nginx/nginx.conf
[...]  
http {
[...]  
        ## Détecter quand HTTPS est utilisé
        map $scheme $fastcgi_https {
          default off;
          https on;

        }
[...]  
}
[...]  

N’oubliez pas de recharger nginx ensuite :

service nginx reload

Ensuite, allez à nouveau dans le champ Directives nginx, et au lieu de fastcgi_param HTTPS on; vous ajoutez la ligne fastcgi_param HTTPS $fastcgi_https; afin que vous puissiez utiliser Roundcube pour les requêtes http et https :

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_param HTTPS $fastcgi_https; # <-- ajoutez cette ligne
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

16. Installer ISPConfig 3.1

Avant de commencer l’installation d’ISPConfig, assurez-vous qu’Apache est arrêté (s’il est installé - il est possible que certains de vos paquets installés aient installé Apache comme dépendance sans que vous le sachiez). Si Apache2 est déjà installé sur le système, arrêtez-le maintenant…

service apache2 stop

… et supprimez les liens de démarrage système d’Apache :

update-rc.d -f apache2 remove

Assurez-vous qu’nginx est en cours d’exécution :

service nginx restart

(Si vous avez à la fois Apache et nginx installés, l’installateur vous demande lequel vous souhaitez utiliser : Apache et nginx détectés. Sélectionnez le serveur à utiliser pour ISPConfig : (apache,nginx) [apache] :

Tapez nginx. Si seul Apache ou Nginx sont installés, cela est automatiquement détecté par l’installateur, et aucune question n’est posée.)

Pour installer ISPConfig 3.1 à partir de la branche stable GIT, faites ceci :

cd /tmp   
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz  
tar xfz ispconfig.tar.gz  
cd ispconfig3*/install/

L’étape suivante consiste à exécuter

php -q install.php

Cela démarrera l’installateur ISPConfig 3.1. L’installateur configurera tous les services comme Postfix, Dovecot, etc. pour vous.

root@server1:/tmp/ispconfig3-stable-3.1-da1e393d7bed829d180dd9006019201e3370e77a/install# php install.php

--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/  
__/ |  
|___/  
--------------------------------------------------------------------------------

>> Configuration initiale
Système d'exploitation : Ubuntu 18.04 LTS (Bionic Beaver)
Les questions suivantes seront posées pour la configuration principale, soyez prudent.  
Les valeurs par défaut sont entre [crochets] et peuvent être acceptées avec .  
Tapez "quit" (sans les guillemets) pour arrêter l'installateur.

Sélectionnez la langue (en,de) [en]: <-- ENTER
Mode d'installation (standard,expert) [standard]: <-- ENTER
Nom d'hôte entièrement qualifié (FQDN) du serveur, par ex. server1.domain.tld [server1.example.com]: <-- ENTER
Nom d'hôte du serveur MySQL [localhost]: <-- ENTER
Port du serveur MySQL [3306]: <-- ENTER
Nom d'utilisateur root MySQL [root]: <-- ENTER
Mot de passe root MySQL []: <-- entrez le mot de passe root MySQL ici
Base de données MySQL à créer [dbispconfig]: <-- ENTER
Charset MySQL [utf8]: <-- ENTER
Configuration de Postgrey  
Configuration de Postfix  
Génération d'une clé privée RSA de 4096 bits  
.................................................................................................................................................................................................................................................................................................................................................................................................................++  
...++  
écriture de la nouvelle clé privée dans 'smtpd.key'  
-----  
Vous allez être invité à entrer des informations qui seront incorporées  
dans votre demande de certificat.  
Ce que vous allez entrer est ce qu'on appelle un Nom Distingué ou DN.  
Il y a pas mal de champs mais vous pouvez laisser certains vides  
Pour certains champs, il y aura une valeur par défaut,  
Si vous entrez '.', le champ sera laissé vide.  
-----  
Nom du pays (code à 2 lettres) [AU]: <-- entrez votre code de pays à 2 lettres, par ex. DE dans mon cas  
Nom de l'état ou de la province (nom complet) [Some-State]: <-- Entrez votre état d'origine  
Nom de la localité (par ex., ville) []:  <-- Entrez votre ville, dans mon cas Lueneburg  
Nom de l'organisation (par ex., entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de votre entreprise, dans mon cas ISPConfig UG  
Nom de l'unité organisationnelle (par ex., section) []: <-- Entrez le nom de votre unité organisationnelle, j'utilise IT ici  
Nom commun (par ex. FQDN du serveur ou VOTRE nom) []: <-- Entrez le nom d'hôte du serveur, dans mon cas server1.example.com  
Adresse e-mail []: <-- Entrez une adresse e-mail, par ex. [email protected]  
Configuration de Mailman  
Configuration de Dovecot  
Configuration de Spamassassin  
Configuration d'Amavisd  
Configuration de Getmail  
Configuration de Jailkit  
Configuration de Pureftpd  
Configuration de BIND  
Configuration de nginx  
[INFO] service OpenVZ non détecté  
Configuration du pare-feu Ubuntu  
Configuration du serveur XMPP Metronome  
écriture de la nouvelle clé privée dans 'localhost.key'  
-----  
Nom du pays (code à 2 lettres) [AU]: <-- Entrez votre code de pays à 2 lettres, par ex. DE dans mon cas
Nom de la localité (par ex., ville) [Nom de la ville]: <-- Entrez votre ville, dans mon cas Lueneburg
Nom de l'organisation (par ex., entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de votre entreprise, dans mon cas ISPConfig UG
Nom de l'unité organisationnelle (par ex., section) [Infrastructure]: <-- Entrez le nom de votre unité organisationnelle, j'utilise IT ici
Nom commun (par ex. FQDN du serveur ou VOTRE nom) [server1.example.com]: <-- Entrez le nom d'hôte du serveur, dans mon cas server1.example.com
Adresse e-mail [[email protected]]: <-- Entrez une adresse e-mail, par ex. [email protected]
IMPORTANT :  
La clé localhost, Csr et un Cert auto-signé ont été enregistrés dans /etc/metronome/certs  
Pour fonctionner avec tous les clients, le serveur doit avoir un certificat de confiance, utilisez donc le Csr  
pour obtenir un certificat de confiance de votre CA ou remplacez la clé et le certificat par des fichiers déjà signés pour  
votre domaine. Les clients comme Pidgin n'autorisent pas l'utilisation de certificats auto-signés non fiables.
Configuration de Fail2ban  
Configuration des vhosts d'applications  
Installation d'ISPConfig  
Port ISPConfig [8080]: <-- ENTER
Mot de passe Admin [admin]: <-- Entrez votre mot de passe admin souhaité
Souhaitez-vous une connexion sécurisée (SSL) à l'interface web d'ISPConfig (y,n) [y]: <-- ENTER
Génération de la clé privée RSA, module de 4096 bits  
....................................................++  
........................++  
e est 65537 (0x10001)  
Vous allez être invité à entrer des informations qui seront incorporées  
dans votre demande de certificat.  
Ce que vous allez entrer est ce qu'on appelle un Nom Distingué ou DN.  
Il y a pas mal de champs mais vous pouvez laisser certains vides  
Pour certains champs, il y aura une valeur par défaut,  
Si vous entrez '.', le champ sera laissé vide.  
-----  
Nom du pays (code à 2 lettres) [AU]: <-- entrez votre code de pays à 2 lettres, par ex. DE dans mon cas  
Nom de l'état ou de la province (nom complet) [Some-State]: <-- Entrez votre état d'origine  
Nom de la localité (par ex., ville) []:  <-- Entrez votre ville, dans mon cas Lueneburg  
Nom de l'organisation (par ex., entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de votre entreprise, dans mon cas ISPConfig UG  
Nom de l'unité organisationnelle (par ex., section) []: <-- Entrez le nom de votre unité organisationnelle, j'utilise IT ici  
Nom commun (par ex. FQDN du serveur ou VOTRE nom) []: <-- Entrez le nom d'hôte du serveur, dans mon cas server1.example.com  
Adresse e-mail []: <-- Entrez une adresse e-mail, par ex. [email protected]
Veuillez entrer les 'attributs' supplémentaires suivants  
a envoyer avec votre demande de certificat  
Un mot de passe de défi []: <-- ENTER  
Un nom d'entreprise optionnel []: <-- ENTER  
écriture de la clé RSA
  
Configuration du serveur de base de données  
Installation du crontab d'ISPConfig  
Installation du crontab d'ISPConfig  
aucun crontab pour root  
aucun crontab pour getmail  
Détecter les adresses IP  
Redémarrage des services ...  
Installation terminée.

L’installateur configure automatiquement tous les services sous-jacents, donc aucune configuration manuelle n’est nécessaire.

Ensuite, vous pouvez accéder à ISPConfig 3 sous http(s)://server1.example.com:8080/ ou http(s)://192.168.1.100:8080/ (http ou https dépend de ce que vous avez choisi lors de l’installation). Connectez-vous avec le nom d’utilisateur admin et le mot de passe admin (vous devriez changer le mot de passe par défaut après votre première connexion) :

Connexion ISPConfig

Tableau de bord ISPConfig

Le système est maintenant prêt à être utilisé.

16.1 Manuel ISPConfig 3.1

Pour apprendre à utiliser ISPConfig 3, je recommande fortement de télécharger le Manuel ISPConfig 3.1.

Sur plus de 300 pages, il couvre le concept derrière ISPConfig (administrateurs, revendeurs, clients), explique comment installer et mettre à jour ISPConfig 3, inclut une référence pour tous les formulaires et champs de formulaire dans ISPConfig avec des exemples d’entrées valides, et fournit des tutoriels pour les tâches les plus courantes dans ISPConfig 3. Il décrit également comment rendre votre serveur plus sécurisé et comprend une section de dépannage à la fin.

17 Téléchargement de l’image de machine virtuelle de ce tutoriel

Ce tutoriel est disponible sous forme d’image de machine virtuelle prête à l’emploi au format ovf/ova compatible avec VMWare et Virtualbox. L’image de machine virtuelle utilise les détails de connexion suivants :

Connexion SSH / Shell

Nom d’utilisateur : administrator
Mot de passe : howtoforge

Cet utilisateur a des droits sudo.

Connexion ISPConfig

Nom d’utilisateur : admin
Mot de passe : howtoforge

Connexion MySQL

Nom d’utilisateur : root
Mot de passe : howtoforge

L’IP de la VM est 192.168.1.100, elle peut être changée dans le fichier /etc/netplan/01-netcfg.yaml. Veuillez changer tous les mots de passe ci-dessus pour sécuriser la machine virtuelle.

18. Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.