Installer ISPConfig 3.1 avec NGINX, MariaDB et PHP 7 sous Debian 8

1/52/53/54/55/5 (11 votes, moyenne: 4,09 sur 5)
Loading...
I

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

ISPConfig 3.1 est sorti en rajoutant le support natif de PHP 7 et de Let’s Encrypt ce qui est une petite révolution.

On va donc voir comment mettre en place le tout sur une installation Debian 8 comme toujours 🙂

Comme d’habitude, pas de mails pour moi sur le serveur, pas de phpmyadmin non plus.

 

Installation des sources :

Pour commencer, nous allons installer des sources personnalisées, car, on va prendre beaucoup de ressources en dehors des dépôts Debian officiels pour avoir des paquets à jour.

Maintenant, renseignez toutes les sources nécessaires dans votre sources.list :

rm /etc/apt/sources.list
nano /etc/apt/sources.list
#Stable
deb http://mirrors.kernel.org/debian/ jessie main contrib non-free
deb-src http://mirrors.kernel.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
deb http://mirrors.kernel.org/debian/ jessie-updates main contrib non-free
deb-src http://mirrors.kernel.org/debian/ jessie-updates main contrib non-free
deb http://mirrors.kernel.org/debian/ jessie-backports main contrib non-free
deb-src http://mirrors.kernel.org/debian/ jessie-backports main contrib non-free

#NGINX - Mainline
deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx

#Dotdeb - php7.0 7
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

#MariaDB
deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
deb-src http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main

 

Maintenant, installez les packages nécessaires :

apt-get update && apt-get install software-properties-common python-software-properties -y

 

Téléchargez les clés nécessaires pour les dépôts et installez-les :

mkdir /tmp/keys/
cd /tmp/keys
wget http://nginx.org/keys/nginx_signing.key
wget https://www.dotdeb.org/dotdeb.gpg
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db #MariaDB
apt-key add nginx_signing.key && apt-key add dotdeb.gpg

 

Maintenant, mettez votre système à jour :

wget -O- https://raw.githubusercontent.com/stylersnico/debian-scripts/master/upgrade-and-clean-system.sh | sh

Installation des composants nécessaires :

Installez tous les packages nécessaires :

apt-get install nginx mariadb-server openssl git quota quotatool rkhunter snmp binutils ufw vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl php7.0-fpm php7.0-curl php7.0-mysql php7.0-mbstring php7.0-gd php7.0-intl php7.0-imap php7.0-pspell php7.0-recode php7.0-snmp php7.0-tidy php7.0-json php7.0-opcache fcgiwrap memcached pure-ftpd-common pure-ftpd-mysql bind9 dnsutils haveged fail2ban build-essential autoconf automake libtool flex bison debhelper binutils -y

 

Installez la dernière version de Jailkit :

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
./debian/rules binary
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

 

Virez la configuration par défaut de nginx et créez les dossiers nécessaires :

mkdir /etc/nginx/sites-enabled && rm /etc/nginx/conf.d/*

 

Si vous voulez un accès externe aux bases de données MariaDB, vous devez modifier le fichier de configuration de MariaDB :

nano /etc/mysql/my.cnf

 

Recherchez l’option bind-address à la ligne 47 et commentez-la :

Avant :

bind-address            = 127.0.0.1

Après :

#bind-address            = 127.0.0.1

 

Ajoutez également la ligne suivante après la ligne bind-adress :

sql-mode="NO_ENGINE_SUBSTITUTION"

 

Sauvegardez en effectuant la combinaison de touches Ctrl+O et redémarrez MariaDB:

systemctl restart mysql

 

Maintenant, on va modifier la configuration de notre serveur FTP :

nano /etc/default/pure-ftpd-common

 

Vérifiez que le démarrage soit en STANDALONE et que virtualchroot soit sur TRUE

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

On va maintenant autoriser les sessions par TLS pour plus de sécurité

echo 1 > /etc/pure-ftpd/conf/TLS
mkdir -p /etc/ssl/private/

 

On va maintenant générer un certificat SSL dans le dossier que l’on vient de créer :

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

 

Changez les permissions du certificat :

chmod 600 /etc/ssl/private/pure-ftpd.pem

 

Redémarrez le serveur FTP :

/etc/init.d/pure-ftpd-mysql restart

 

Pour que Fail2Ban surveille notre serveur FTP nous allons devoir créer un fichier de configuration spécifique :

nano /etc/fail2ban/jail.local

 

Remplissez-le avec ceci :

[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3

 

On va maintenant créer un filtre :

nano /etc/fail2ban/filter.d/pureftpd.conf

 

Et le remplir avec cela :

[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =

 

Lancez l’assistant de sécurisation de MariaDB avec la commande suivante :

mysql_secure_installation

 

Maintenant, ajoutez le support de quota sur votre serveur.

Éditez le fichier fstab :

nano /etc/fstab

 

Ajoutez ceci à la suite de / ext4 errors=remount-ro :

,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0

 

Par exemple le fichier ressemble à ça chez moi après modification :

# /etc/fstab: static file system information.
#
# Use ‘blkid’ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=5bc31ecc-d864-44dc-bea4-d409696cb577 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

 

Ensuite, lancez les commandes suivants pour appliquer la nouvelle configuration de Quota à chaud :

mount -o remount /
quotacheck -avugm
quotaon -avug

 

Maintenant, installez le client Let’s Encrypt pour que ISPConfig puisse gérer les certificats :

cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt/
./letsencrypt-auto --help

 

Installez la configuration nécessaire pour Nginx avec les commandes suivantes :

cd /etc/ssl/certs && openssl dhparam -out dhparam.pem 4096
cd /etc/nginx/
rm nginx.conf
wget https://www.abyssproject.net/wp-content/uploads/2016/01/nginx.conf_.txt
mv nginx.conf_.txt nginx.conf
service php7.0-fpm restart && service nginx restart

Installation de ISPConfig 3.1 :

Téléchargez la dernière version avec la commande suivante :

wget http://downloads.sourceforge.net/project/ispconfig/ISPConfig%203/ISPConfig-3.1/ISPConfig-3.1.tar.gz && tar xfz ISPConfig-3.1.tar.gz
cd ispconfig3_install/install/
cat dist/conf/debiantesting.conf.php > dist/conf/debian40.conf.php && cat dist/conf/debiantesting.conf.php > dist/conf/debian60.conf.php

 

Et lancez l’installation avec la commande suivante :

php -q install.php

 

Suivez les instructions de l’installateur, mais lorsqu’il vous laissera le choix entre l’installation standard et expert, choisissez expert

Select language (en,de) [en]:
Installation mode (standard,expert) [standard]: expert

 

Lorsqu’il vous demandera pour la configuration des mails, il faudra lui répondre non, car nous n’avons pas installé postfix.

Configure Mail (y,n) [Y]: n

 

Vous pouvez laisser tous les autres paramètres par défaut.

 

Création d’un premier site :

Maintenant, rendez-vous sur l’interface d’ISPConfig 3.1 accessible à l’adresse suivante :

https://fqdndevotreserveur.ext:8080/

 

Connectez-vous avec les identifiants admin/admin (par défaut, changez-les). Vous aurez la nouvelle interface qui est plutôt sympathique.

Cliquez sur Go  to Sites :

installation-ispconfig-3.1-debian-01

 

Ensuite, cliquez sur Add new website :

installation-ispconfig-3.1-debian-02

 

Pour finir, ajoutez votre domaine, indiquez si vous utilisez le sous-domaine en www., cochez la case Let’s Encrypt SSL et choisissez PHP-FPM :

installation-ispconfig-3.1-debian-03

 

Cliquez sur Save, attendez 5 petites minutes et votre site sera automatiquement configuré pour utiliser un certificat Let’s Encrypt, sans les mains 🙂

installation-ispconfig-3.1-debian-04

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

51 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
Nico
Nico
5 années plus tôt

Salut, très bon tuto !
Serait t’il possible d’avoir un tuto avec debian 9, php7.3 et jailkit à jours ? 🙂 j’ai essayé en modifiant moi même, mais mais j’ai une erreur avec ispconfig à la fin de l’installation, je suis obligé de déplacer chaque dossier dans php7. 3 , car les nouveaux sites sont dans php 7.0….

poiron
poiron
6 années plus tôt

Bonjour,
merci pour le tuto, ça marche impeccable et l’affichage d’un site web est très rapide.
Ma question :
est il possible de faire fonctionner toute cette installation avec debian 9 en réalisant une simple mise a jour ?

Cordialement,
Franck

POIRON
POIRON
Reply to  Nicolas Simond
6 années plus tôt

Bonjour,
oui j’avais vu le tuto qui est sans doute parfait 😉 mais il y a pas ispconfig que je trouve pratique et sans tuto c’est foutu pour moi pour installation.
Merci,
Franck

OjcB
6 années plus tôt

Bonjour à tous, Et un grand merci à Nicolas pour ce tuto. Je m’entraîne sur une VM Debian8 toute fraiche pour cette installation. Et malheureusement j’ai un bug que je n’arrive à résoudre. Pendant l’installation de ISPConfig3, après la question : Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: J’ai systématiquement l’erreur : Wrong SQL-mode. You should use NO_ENGINE_SUBSTITUTION. Add sql-mode= »NO_ENGINE_SUBSTITUTION » to the mysqld-section in your mysql-config and restart mysqld afterwards J’ai cherché et fait quelques modifs du fichier /etc/mysql/my.cnf ; Dans la partie [mysqld] j’ai dé-commenté : sql-mode = « NO_ENGINE_SUBSTITUTION » Puis recharger sql (/etc/init.d/mysql stop et… Voir plus »

OjcB
Reply to  Nicolas Simond
6 années plus tôt

Merci Nicolas pour ton retour, Après avoir posté mon message hier soir, j’ai continué à batailler. J’ai trouvé la solution car j’ai réussi à finir l’installation de ISPConfig 🙂 Cependant je pense qu’il y a plusieurs réponses pour solutionner ce pb. Pour mon cas voici la ligne que j’ai modifié dans /etc/mysql/my.cnf : #sql_mode = « NO_ENGINE_SUBSTITUTION » par sql-mode = ‘NO_ENGINE_SUBSTITUTION’ => remplacement d’un underscore par un tiret et les double quote par simple quote. Et j’ai vu sur d’autre forum qu’il pouvait y avoir plusieurs façon de l’écrire (à Vérifier). Mais si ça peux aider d’autre internaute à résoudre ce… Voir plus »

fapyfapo
fapyfapo
6 années plus tôt

Merci beaucoup pour ce tuto, très pratique je l’ai fait pour 2 amis et ça fonctionne très bien….

Mateofix
Mateofix
7 années plus tôt

Je voudrais savoir si ta une solution pour une optimisation maximale de Nginx, en effet sur ma machine virtuelle hébergeant ISPConfig avec Nginx j’atteint régulièrement plus de 4 Go de RAM en utilisation avec 8 workers process.

Merci d’avance

Capture :comment image

Nomad
Nomad
7 années plus tôt

Salut,
si j’installe php7.0-memcached faut-il aussi installé memcached ?
pareil pour php7.0-mcrypt et mcrypt ?

Sur google j’ai pas trouvé de réponse clair. Merci

Nomad
Nomad
7 années plus tôt

C’est normal que mes commentaires n’apparaissent pas ? :O

Nomad
Nomad
Reply to  Nicolas Simond
7 années plus tôt

Oh sorry, je me disais c’est encore ce foutu safari qui me fait la misère 🙂

Nomad
Nomad
7 années plus tôt

Ah oui j’oubliais, après avoir décommenté la partie mail du fichier nginx.conf, dès que je fais un reboot du VPS Nginx est HS

Nomad
Nomad
Reply to  Nicolas Simond
7 années plus tôt

Pas tellement, les seules erreurs que j’ai, elles étaient deja là (depuis le début) et pourtant Nginx ne plantait pas: nginx: [warn] « ssl_stapling » ignored, issuer certificate not found nginx: [warn] « ssl_stapling » ignored, issuer certificate not found nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful Et pour: service nginx status: ● nginx.service – LSB: Stop/start nginx Loaded: loaded (/etc/init.d/nginx) Active: failed (Result: exit-code) since Tue 2016-08-09 11:04:33 CEST; 35s ago Process: 3372 ExecStart=/etc/init.d/nginx start (code=exited, status=1/FAILURE) … nginx[3372]: nginx: [warn] « ssl_stapling » ignored,…nd … nginx[3372]: nginx: [emerg] bind() to 127.0.0.1:14…e) … nginx[3372]: nginx: [emerg] still… Voir plus »

Nomad
Nomad
Reply to  Nicolas Simond
7 années plus tôt

OK, ça doit être les fichiers conf Postfix ou Dovecot que j’ai trifouillé…

Je vais faire des tests, voir meme tout recommencer…

Je viendrais partager si ça fonctionne.

Merci beaucoup pour ton aide !

Nomad
Nomad
7 années plus tôt

Hello, j’essaie de configurer la partie serveur mail, mais je galère depuis une semaine j’ai installé Postfix et Dovecot puis j’ai activé « Mailserver » dans ISPconfig mais dans le monitor j’avais POP3-Server et IMAP-server: Offline le test d’envoi à l’air de fonctionner malgré les erreurs Postfix dans les logs… par contre rien en reception car impossible de configurer Dovecot pourrais-tu me dire si c’est bien ces 2 paquets qui sont nécessaires et les plus appropriés ? je viens juste de comprendre qu’en modifiant le fichier nginx.conf POP3-Server et IMAP-server passent en Online mais pour la config je sèche Merci pour ton… Voir plus »

Nomad
Nomad
Reply to  Nicolas Simond
7 années plus tôt

Ah tu vois c’est exactement la question que je me posais !
Postfix installé avant, car beaucoup d’autres tuto en parlait…
mais Dovecot après, j’ignorais que l’envoi et la reception sont 2 choses différentes.

Dans ce cas tu penses que je peux désinstaller ISPconfig (sans supprimer les sites), puis installer Dovecot, et enfin réinstaller ISP ?
Ou bien, je sauvegarde mes sites et je recommence toute la config du serveur ?

Merci 🙂

Xavier
Xavier
7 années plus tôt

PHP Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in /tmp/ispconfig3-stable-3.1

Solution: apt-get install php7.0-mbstring