J'ai installé le serveur Apache sur mon ordinateur Windows 7. J'ai pu afficher le fichier index.php par défaut en tapant http: // localhost / dans la ligne d'adresse de mon navigateur.
Cependant, je ne parviens toujours pas à voir cette page en tapant l'adresse IP de mon ordinateur (ni localement (depuis le même ordinateur) ni globalement (depuis un autre ordinateur connecté à Internet)).
On m'a dit que je devais ouvrir le port 80. Je l'ai fait (d'une manière décrite ici ) mais cela n'a pas résolu le problème.
Je voudrais tout d'abord vérifier quels ports sont ouverts et lesquels ne le sont pas. Par exemple, je ne suis pas sûr que mon port 80 ait été fermé avant d'essayer de l'ouvrir. Je ne suis pas sûr non plus qu'il soit ouvert après avoir essayé de l'ouvrir.
J'ai essayé d'exécuter un serveur Web très simple écrit en Python. Pour cela j'ai utilisé le port 81 et ça a marché! Et je n'ai pas essayé d'ouvrir le port 81. Donc, il a été ouvert par défaut. Donc, si 81 est ouvert par défaut, pourquoi 80 ne l'est pas? Ou c'est?
INFORMATION ADDITIONNELLE:
1. Dans mon fichier httpd.conf, j'ai "Listen 80".
2. Ce site me dit que le port 80 de mon ordinateur est ouvert.
3. J'obtiens des réponses différentes si j'essaye http: // myip: 8 et http: // myip: 81 . Dans le dernier cas, le navigateur (Chrome) m'écrit que le lien est rompu. Dans le premier cas, j'obtiens: Interdit Vous n'avez pas la permission d'accéder à/sur ce serveur.
4. IE écrit que "Le site Web a refusé d'afficher cette page Web".
Si vous ne faites que vérifier vos ports de l'extérieur. Utilisez cet outil:
http://www.yougetsignal.com/tools/open-ports/
Il tentera de se connecter à votre adresse IP, sur le port spécifique, et vous indiquera s'il est ouvert ou fermé au monde extérieur.
Des problèmes locaux aussi? On dirait que le pare-feu Windows 7 vous coupe. Ajoutez une exception avec ce tutoriel ...
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
Fonctionnement netstat -a -n
ou ss -a -n
à partir d'une invite de commande affichera toutes les connexions réseau ouvertes et les ports d'écoute de votre machine. 0.0.0.0:80
signifierait qu'il écoute sur le port 80
de toutes les adresses IP (localhost et vos adresses IP publiques/privées) où 127.0.0.1:80
signifierait qu'il écoute uniquement sur localhost. Vous pouvez ajouter -b
à la commande et il montrera quel exécutable utilise ce port. Vous pouvez obtenir les mêmes informations à l'aide du moniteur de ressources dans Windows 7 sous la section Ports d'écoute de l'onglet Réseau.
Si vous voulez voir s'il est ouvert depuis un autre serveur, vous pouvez simplement telnet serverName 80
et voyez si la session s'ouvre. Si ce n'est pas le cas, le serveur n'écoute pas ou le port est bloqué par un pare-feu.
S'il s'ouvre puis se ferme immédiatement, au moins Windows 2003, le logiciel (tel qu'Exchange) n'est peut-être pas configuré pour écouter sur cette interface ou IP particulière, mais il écoute sur d'autres ports. J'ai vu IIS se comporter de cette façon parce que c'est stupide, Apache peut-être pas.
Tu as écrit:
Dans le premier cas, j'obtiens: Interdit Vous n'avez pas la permission d'accéder à/sur ce serveur.
Bien que cela puisse sembler étrange, vous n'avez pas un problème avec les ports ouverts (mais avec la configuration Apache).
Ce message "Interdit" provient de votre serveur Apache; cela signifie que votre serveur Web est accessible depuis Internet.
Vous devez configurer Apache pour autoriser le service à tous les hôtes - sinon ils obtiendront la page "Interdit". IIRC, Apache est initialement configuré pour n'autoriser que les demandes de l'ordinateur local.
Quelque part dans votre configuration Apache, il y a probablement une section comme celle-ci (le répertoire réel peut être différent):
<Directory "/home/piskvor/www">
Allow from 127.0.0.1
Deny from all
(...)
Si vous souhaitez autoriser un ordinateur à voir vos pages, vous devez modifier le Deny from all
à Allow from all
. Voir la documentation du module d'accès pour plus d'informations .
Pour voir les ports ouverts, vous devriez probablement utiliser nmap Ils ont une version Windows: http://nmap.org/dist/nmap-5.21-setup.exe
Ce n'est pas suffisant si vous voyez votre port 80 ouvert depuis localhost - peut-être que quelque chose vous empêche de l'essayer ailleurs, c'est pourquoi je recommande nmap
Depuis le client que vous tapez: nmap ip-of-your-server
Si vous voulez tester cela sur votre réseau local, téléchargez nmap Si vous voulez voir la météo, le port est accessible au monde extérieur, lancez une analyse à https: //www.grc .com/x/ne.dll? bh0bkyd2
À partir d'une invite de commandes, tapez:
netstat -ano, look for 0.0.0.0:80
... ou votre IP: 80. Cela vous indiquera si le port 80 est ouvert sur votre machine. Maintenant, si vous voulez vérifier et voir si vous pouvez y accéder depuis l'extérieur de votre réseau, cela déterminera si vous avez une sorte de pare-feu en place. Si vous le faites, vous devrez transmettre le port 80 à votre serveur Web.
Les ports du serveur peuvent être liés à une seule adresse IP ou à toutes les adresses IP disponibles. Il semble que votre installation Apache soit configurée pour se lier uniquement à 127.0.0.1, et vous devez la configurer pour la lier à *. Dans votre httpd.conf (dans le répertoire conf d'Apache), recherchez une ligne comme Listen localhost:80
et changez-le en Listen 80
.
Si vous êtes sous Windows, utilisez SysInternals TCPView . Il peut vous dire quel programme utilise quel port.
telnet <Host> <port>
est votre ami. Il a le mérite d'être installé sur à peu près tous les ordinateurs du monde.
Modifications après relecture de la question:
Voici quelques conseils de diagnostic utiles
si vous pouvez accéder au site via localhost, mais pas via votre adresse IP locale (192.168. *) à partir d'autres hôtes de votre réseau, c'est probablement un problème de pare-feu Windows.
si vous pouvez accéder au site à partir d'autres machines locales du site, mais pas d'Internet à votre IP publique, c'est un problème de configuration de routeur/transfert de port.