Changer le port d’écoute d’Apache 2
I. Présentation
Dans ce tutoriel, nous allons apprendre à changer le port d'écoute d'Apache 2.4. Par défaut, le service web Apache2 écoute les requêtes arrivant sur le port 80 (port par défaut pour les échanges HTTP). Mais pour diverses raisons, il peut être bon de savoir comment faire écouter Apache 2 sur un autre port que le 80 ou sur plusieurs port en même temps.
II. Prérequis
Pour effectuer ce tutoriel, il faut disposer d'un serveur Apache 2.4 fonctionnel, écoutant sur le port 80, ou sur le port 443 pour un site qui s'appuie sur SSL.
Ce tutoriel est effectué sur un Apache 2.4 sous Linux Debian 10, mais il fonctionne également sur les versions antérieures.
III. Procédure
Nous allons déjà commencer par voir sur quel port le service web Apache2 écoute avant de modifier sa configuration. On utilise pour cela la commande suivante :
netstat -ntpl
Remarque : si la commande netstat est introuvable sur votre système, vous devez au préalable installer le paque net-tools (apt-get install net-tools)
Nous aurons alors un résultat comme suivant :
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp6 0 0 :::80 :::* LISTEN 4055/apache2
On voit donc bien que le port "80" est occupé par le service "apache2" avec numéro de processus "4055". Nous allons principalement manipuler la configuration d'Apache2 qui se situe dans "/etc/apache2" par défaut. Dans ce dossier existe un fichier "ports.conf" où sont en parti définis les ports sur lesquels Apache2 va écouter. Par défaut, ce fichier contient entre autres les lignes suivantes :
On voit donc bien qu'Apache2 est configuré pour écouter sur le port 80. Pour faire écouter Apache2 sur le port 1800 par exemple, il suffit de remplacer "80" par "1800" sur la ligne "Listen 80" qui va devenir :
Listen 1800
Il est à noter que pour modifier le port d'écoute sur les sites HTTPS et qui s'appuie sur le module SSL d'Apache, vous devez modifier les deux lignes "Listen 443" avec le port de votre choix (différent de l'autre port).
Il faut ensuite configurer les hôtes virtuels pour écouter également sur ce port. En effet, les virtual host d'un serveur Apache peuvent écouter chacun sur un port différent, il faut donc dans Apache spécifier pour chaque hôte virtuel sur quel port il doit écouter. Le site actif par défaut dans Apache2 est "Default", on trouve son fichier de configuration dans "/etc/apache/sites-enabled/000-default.conf", qu'il va falloir éditer :
nano /etc/apache/sites-enabled/000-default.conf
Voici la ligne qui indique que l'hôte virtuel d'écoute sur le port 80 :
Il suffit donc de remplacer encore une fois "80" par "1800" pour faire écouter cet hôte sur le port 1800 :
On pourra alors sauvegarder les modifications puis recharger Apache2 pour valider les changements de configuration :
systemctl reload apache2
On pourra ensuite revérifier le port d'écoute d'Apache :
Note : Pour faire écouter Apache sur plusieurs ports, il suffit de suivre la même procédure en mettant plusieurs lignes "Listen" dans le fichier "ports.conf" et ensuite de faire écouter les virtuals hosts sur tel ou tel port.
Voilà, votre serveur Web écoute désormais sur un port personnalisé ! ?
Tutoriel actualisé le 20/10/2020 par Florian
j’ai du changer le port des virtualhost dans
/etc/apache2/sites-enabled/000-default.conf
et /etc/apache2/sites-available/default n’existe pas
c’est écrit au début de ports.conf
merci pour ce tuto en tout cas ! nickel
il faut faire cd / /etc/apache2/sites-enabled/
puis cd sites-enabled/
enfin nano 000-default.conf