J'ai besoin d'exécuter Apache2 sur mon serveur Debian 7. Mais il ne fonctionne que sur le port tcpv6, pas sur le port tcpv4. Je l'ai installé avec apt-get install. Si je vais sur localhost ou 127.0.0.1 ou sur l'adresse IPv4 de mon serveur, il n'affiche aucun site Web.
Mon /etc/apache2/ports.conf
:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
netstat -plntu
:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3558/sshd
tcp 0 0 0.0.0.0:3466 0.0.0.0:* LISTEN 2820/mysqld
tcp6 0 0 :::80 :::* LISTEN 2097/apache2
tcp6 0 0 :::22 :::* LISTEN 3558/sshd
debian
apache-httpd
Mato
la source
la source
Listen 80
enListen 0.0.0.0:80
. Vous pouvez vous référer à la documentation httpd.apache.org/docs/2.2/bind.html pour plus d'informations.sudo iptables -nvL
etsudo sestatus
? Je pense que vous avez un pare-feu local qui empêche.a2enmod php5
ça devrait le faire pour vous.::
.Réponses:
Le fait que netstat affiche uniquement tcp6 ici n'est pas le problème. Si vous ne spécifiez pas d'adresse à écouter, apache écoutera toutes les familles d'adresses prises en charge à l'aide d'un seul socket (pour des raisons de conception, sshd utilise un socket unique par adresse et famille d'adresses, apparaissant donc deux fois dans votre sortie netstat).
Voici un de mes systèmes, montrant apache n'ayant que des sockets tcp6, et fonctionnant toujours bien via IPv4 et IPv6.
Si vous exécutez
wget http://127.0.0.1/ -O -
sur le serveur ce qui se passe? Se connecte-t-il avec succès? Renvoie-t-il le HTML brut de votre site Web comme prévu?la source
INADDR_ANY
etIN6ADDR_ANY_INIT
. Mais aujourd'hui, j'ai vu un comportement vraiment étrange. Aucun changement de pare-feu, aucun changement d'Apache, mais les hôtes distants ne peuvent en quelque sorte se connecter que via IPv6 - ce qui est un problème pour ceux qui n'ont toujours pas IPv6. C'est certainement quelque chose que je vais résoudre, mais vous avez absolument raison (bien que l'invocation que vous donnez ne s'applique malheureusement pas dans mon cas).Cela gérera uniquement les connexions IPV4:
https://httpd.apache.org/docs/2.2/bind.html#ipv6
la source
127.0.0.1 est local sur une machine uniquement, vous devez être sur le serveur lui-même dans un navigateur pour utiliser l'adresse IP / l'adresse de bouclage locale;
Vous pourriez avoir un pare-feu bloquant les ports;
Assurez-vous qu'apache fonctionne et fonctionne correctement, consultez les journaux d'erreurs;
Vérifiez toutes vos configurations apache;
Hébergez-vous à partir du répertoire racine www ou du répertoire utilisateur public_html?
Vérifiez le propriétaire et les autorisations.
Presque l'année 2019 (Bienvenue dans le futur):
Par défaut, la plupart du monde utilise ipv6 et en cas d'échec, retombe sur ipv4;
Nous avons maintenant des tunnels ipv4 sur ipv6, et vice versa;
La plupart des systèmes d'exploitation, des programmes, des clients et des serveurs le font principalement maintenant;
Bienvenue dans le monde de plus de NAT et de devoir dépendre maintenant de pare-feu / filtres directement sur votre appareil;
Je recommanderais d'essayer de garder vos systèmes tous deux empilés, en prenant en charge à la fois ipv4 et ipv6, donc lorsque le commutateur magique se produit, vous êtes toujours opérationnel. Mon système d'exploitation, mon réseau et même mon FAI sont doubles empilés de bout en bout. Je pourrais désactiver complètement ipv4 si je le voulais, mais ce qui existe pourrait ne plus fonctionner si aucun tunnel n'existe pour ipv6 depuis ipv4.
la source
*
* représente la connexion au serveur local sans gérer IPv4 ou IPv6, si vous changez localhost (ou 127.0.0.1) en véritable adresse IP IPv4 de ce serveur, vous ne pouvez rien faire car la connexion est refusée.
Essayez de décrire votre IP dans les fichiers de configuration: NameVirtualHost: 80 Listen: 80
la source