Ma machine exécute Windows 7 Ultimate. Voici ce que j'ai fait (avec succès) jusqu'à présent:
- Installé IIS 7.5 avec PHP sur FastCGI
- Je l'ai fait fonctionner! Quand je vais sur http: //localhost/index.php , mes scripts PHP fonctionnent bien.
- Exécutez ipconfig pour découvrir que mon adresse IP locale est 192.168.1.102. J'ai confirmé que http://192.168.1.102/index.php fonctionne exactement comme l'adresse localhost ci-dessus.
- Je suis allé dans l'administration de mon routeur (j'ai un Linksys WRT54G2) et j'ai configuré la redirection de port sur le port 80 à 192.168.1.102. Le port 80 est maintenant transféré vers ma machine.
- Configurez une règle entrante dans le pare-feu Windows pour autoriser toutes les activités sur le port 80.
- J'ai découvert quelle était mon adresse IP externe de Google. Appelons cela XXX.XX.XX.XX.
Cependant, lorsque j'essaie d'accéder à http: //XXX.XX.XX.XX/index.php depuis ma propre machine, ou depuis un ordinateur éloigné et non sur mon réseau, de toute façon ... je ne reçois rien. Il essaie de se connecter pendant un certain temps (sans succès) mais finit par abandonner.
Voici ce que je me demande:
- Qu'est-ce que je rate? Qu'est-ce que j'ai oublié / oublié? Comment faire en sorte que cela fonctionne et soit accessible en dehors de mon propre réseau local?
- En supposant que cela fonctionne, comment puis-je utiliser un port autre que le port 80? Quelles modifications devrais-je apporter (par exemple, IIS, pare-feu Windows, administration du routeur, etc.) pour que cela soit possible?
Merci d'avance!
Réponses:
Cela ressemble à un problème HTTP.SYS que vous rencontrez.
Vous trouverez ci-dessous un extrait du blog de Scott Hanselman qui décrit comment exposer IISExpress en dehors de localhost. Le billet de blog est plus long et décrit également comment câbler SSL. Mais je crois que les commandes que j'ai postées ci-dessous et que j'ai extraites de son message vous aideront à résoudre le problème que vous rencontrez.
Il se peut que vous n'ayez pas besoin de la dernière commande car vous déclarez que vous avez déjà créé une règle de pare-feu.
la source
(Accès depuis l'extérieur de votre réseau) De nombreux FAI résidentiels (et certains FAI professionnels) bloquent le trafic entrant sur certains ports de service, comme le port 80 ou 25. Ceci est généralement pour vous empêcher d'exécuter des services commerciaux sur une ligne résidentielle en raison de l'utilisation de la bande passante. L'alternative est de l'exécuter sur un autre port (voir ci-dessous).
(Accès depuis l'intérieur de votre réseau) La situation que vous décrivez ressemble à un NAT en épingle à cheveux. Voici un bon aperçu de haut niveau de Hairpin NAT . Vous devrez ajouter des règles NAT à votre routeur pour toujours faire en sorte que le trafic destiné à votre IP externe, le port 80 passe par votre routeur et non directement d'hôte à hôte à l'intérieur de votre réseau. Mise en garde: votre routeur peut ne pas être en mesure de le faire.
Modifiez la liaison de port dans IIS, puis redémarrez le site Web.
la source
J'ai eu le même problème. Le pare-feu Windows bloque l'accès. Éteignez-le et vérifiez-le à nouveau. Je suppose que cela fonctionnera.
la source