Je voudrais un serveur Web Apache que j'ai installé à la maison pour écouter sur le port 80 et le port 8080.
J'ai ajouté Listen 8080
à httpd.conf et redémarré les services Apache mais le serveur ne semble pas écouter sur 8080. Le pointage http: // localhost: 808 expire et n'affiche pas mon index. html mais http: // localhost affichera mon index.html.
Comment puis-je lui faire écouter 80 et 8080?
Une installation Debian standard d'Apache aura le fragment de configuration suivant:
Listen 80 <IfModule mod_ssl.c> # Les hôtes virtuels basés sur le nom SSL ne sont pas encore pris en charge, donc pas de # Instruction NameVirtualHost ici Écoutez 443 </IfModule>
Cela indique à Apache d'écouter sur le port 80 et d'écouter le port 443 si mod_ssl est configuré. Dans votre cas, vous souhaitez:
Listen 80
Listen 8080
Vous devez vous assurer que vous exécutez un redémarrage, pas une opération de rechargement sur Apache pour qu'il prenne en compte les nouvelles directives Listen. La chose la plus sûre à faire est d'arrêter Apache, assurez-vous qu'il est mort et redémarrez-le.
Si cette configuration ne fonctionne pas, vérifiez les fichiers journaux pour tout message d'erreur. Vous pouvez utiliser "netstat -lep --tcp" pour voir s'il y a quelque chose à écouter sur le port 8080. Enfin, si tout le reste ne fonctionne pas, essayez d'exécuter Apache sous strace pour voir s'il essaie de se lier à ce port et échoue, mais sans enregistrer le problème.
Ces réponses sont excellentes, mais elles laissent de côté la possibilité qu'Owen a ait déjà fait cela ("J'ai ajouté Listen 8080
") peut signifier exactement à quoi cela ressemble (c'est-à-dire ce que David a suggéré).
Si vous l'avez déjà fait et que cela ne fonctionne toujours pas, assurez-vous d'avoir correctement configuré vos directives pour chaque sous-domaine que vous pouvez avoir, y compris celui par défaut (s'il a été configuré manuellement pour écouter: 80 juste après le nom).
Vous avez probablement une directive comme celle-ci:
<VirtualHost *:80>
ServerName michaelsanford.com
etc…
</VirtualHost>
Vous devez changer cela en <VirtualHost *:8080>
ou <VirtualHost *:*>
.
Étape 1
#vi httpd.conf
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
httpd (Apache) pour écouter sur le port 80 et pour écouter le port 443 si mod_ssl est configuré.
Listen 80
Listen 8080
Étape 2
#su - service httpd restart
Étape 3
$ netstat -lntp
(Tous les processus n'ont pas pu être identifiés, les informations sur les processus n'appartenant pas à eux ne seront pas affichées, vous devez être root pour tout voir.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:47027 0.0.0.0:* LISTEN -
tcp 0 0 192.168.1.1:80 0.0.0.0:* LISTEN -
tcp 0 0 192.168.1.1:8080 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 ::ffff:127.0.0.1:45100 :::* LISTEN 3149/Java
tcp 0 0 :::111 :::* LISTEN -
tcp 0 0 :::80 :::* LISTEN -
tcp 0 0 :::57173 :::* LISTEN 3149/Java
tcp 0 0 :::18197 :::* LISTEN 3149/Java
tcp 0 0 :::22 :::* LISTEN -
tcp 0 0 ::1:631 :::* LISTEN -
tcp 0 0 :::40832 :::* LISTEN 3149/Java
tcp 0 0 ::ffff:127.0.0.1:6880 :::* LISTEN 3149/Java
Vous devrez peut-être configurer un site un port 8080 pour que cela fonctionne. Lisez la documentation de Apache Virtual Hosts . Chaque "site" peut être configuré pour accepter des connexions sur des ports spécifiques (et IP, etc.). Avez-vous un hôte virtuel dans votre http.conf qui est uniquement configuré pour le port 80?
Vous pouvez également confirmer que le serveur écoute sur 8080 en utilisant netstat -nlp
et à la recherche d'une entrée sur ce port.
Vous pouvez également vérifier si SELinux est activé. La configuration SELinux par défaut peut ne pas vous permettre d'exécuter Apache sur des ports non standard. Voici un site qui vous montre si vous utilisez SELinux et comment le désactiver, si vous ne voulez pas ou n'utilisez pas ses fonctionnalités. http://www.crypt.gen.nz/selinux/disable_selinux.html
En supposant que Linux s'exécute netstat -lntp
aussi root que vous pouvez voir si Apache écoute sur 8080 ou non. Cela vous aidera à identifier si le problème est qu'Apache n'écoute pas ou s'il existe des facteurs externes (par exemple, pare-feu, selinux, etc.) à Apache rendant la connexion expirée.