Serveur Ubuntu · 10 min read · Oct 23, 2025
Le Serveur Parfait - Ubuntu 16.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 roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymceL’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.phpet 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/squirrelmailAprè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 de 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.0-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.0-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 reloadEnsuite, retournez au 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.0-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 removeAssurez-vous qu’nginx fonctionne :
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 seulement 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://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/L’étape suivante consiste à exécuter
php -q install.phpCela 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-3f1331062193a94fbd64a7e39c00cb8d77eb7484/install# php install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Configuration initialeSystème d'exploitation : Ubuntu 16.04.1 LTS (Xenial Xerus)Les questions suivantes seront posées pour la configuration principale, soyez donc 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]: <-- ENTERMode d'installation (standard,expert) [standard]: <-- ENTERNom d'hôte entièrement qualifié (FQDN) du serveur, par ex. server1.domain.tld [server1.example.com]: <-- ENTERNom d'hôte du serveur MySQL [localhost]: <-- ENTERPort du serveur MySQL [3306]: <-- ENTERNom d'utilisateur root MySQL [root]: <-- ENTERMot de passe root MySQL []: <--entrez le mot de passe root MySQL iciBase de données MySQL à créer [dbispconfig]: <-- ENTERCharset MySQL [utf8]: <-- ENTERConfiguration 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 casNom de la localité (par ex., ville) [Nom de la ville]: <-- Entrez votre ville, dans mon cas LueneburgNom de l'organisation (par ex., entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de votre entreprise, dans mon cas ISPConfig UGNom de l'unité organisationnelle (par ex., section) [Infrastructure]: <-- Entrez le nom de votre unité organisationnelle, j'utilise IT iciNom 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.comAdresse e-mail [[email protected]]: <-- Entrez une adresse e-mail, par ex. [email protected]IMPORTANT :
La clé localhost, le 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]: <-- ENTERMot de passe admin [admin]: <-- Entrez votre mot de passe admin souhaitéVoulez-vous une connexion sécurisée (SSL) à l'interface web d'ISPConfig (y,n) [y]: <-- ENTERGénération de la clé privée RSA, 4096 bits de long
....................................................++
........................++
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 DB
Installation du crontab ISPConfig
Installation du crontab ISPConfig
aucun crontab pour root
aucun crontab pour getmail
Détection des 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) :


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 (administrateur, 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 explique également comment rendre votre serveur plus sécurisé et comprend une section de dépannage à la fin.
17. Notes supplémentaires
18.1 OpenVZ
Si le serveur Ubuntu que vous venez de configurer dans ce tutoriel est un conteneur OpenVZ (machine virtuelle), vous devez faire cela sur le système hôte (je suppose que l’ID du conteneur OpenVZ est 101 - remplacez-le par le bon VPSID sur votre système) :
VPSID=101
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
do
vzctl set $VPSID --capability ${CAP}:on --save
done18.2 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 : admin
Mot de passe : howtoforge
ou connectez-vous avec :
sudo mysqlsur le shell.
L’IP de la VM est 192.168.1.100, elle peut être changée dans le fichier /etc/network/interfaces. Veuillez changer tous les mots de passe ci-dessus pour sécuriser la machine virtuelle.
19. Liens
- Ubuntu: http://www.ubuntu.com/
- ISPConfig: http://www.ispconfig.org/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.