Моя машина работает под управлением Windows 7 Ultimate. Вот что я сделал (успешно) до сих пор:
- Установленный IIS 7.5 с PHP поверх FastCGI
- Работай! Когда я захожу на http: //localhost/index.php , мои PHP-скрипты работают нормально.
- Запустил ipconfig, чтобы узнать, что мой локальный IP-адрес - 192.168.1.102. Я подтвердил, что http://192.168.1.102/index.php работает точно так же, как адрес localhost выше.
- Зашел в администрацию моего роутера (у меня есть Linksys WRT54G2) и настроил переадресацию портов на порт 80 на 192.168.1.102. Теперь порт 80 пересылается на мою машину.
- Настройте правило для входящих подключений в брандмауэре Windows, чтобы разрешить все действия на порту 80.
- Выяснил, что мой внешний IP-адрес от Google. Давайте назовем это XXX.XX.XX.XX.
Тем не менее, когда я пытаюсь зайти на http: //XXX.XX.XX.XX/index.php со своей собственной машины или с компьютера, находящегося далеко и не находящегося в моей сети, в любом случае ... я ничего не получаю. Он пытается подключиться некоторое время (безуспешно), но в итоге просто сдается.
Вот что мне интересно:
- Что мне не хватает? Что я забыл / упустил из виду? Как мне сделать это работающим и доступным за пределами моей собственной локальной сети?
- Предполагая, что это работает, как я могу использовать порт, отличный от порта 80? Какие изменения мне нужно будет сделать (например, IIS, брандмауэр Windows, администрирование маршрутизатора и т. Д.), Чтобы это стало возможным?
Большое спасибо заранее!
iis
router
iis-7.5
port-forwarding
windows-firewall
soapergem
источник
источник
Ответы:
Это звучит как проблема HTTP.SYS, которая у вас возникла.
Ниже приведен отрывок из блога Скотта Хансельмана, в котором описывается, как раскрыть IISExpress вне localhost. Пост в блоге длиннее, в котором также описывается, как подключить SSL. Но я верю, что команды, которые я разместил ниже и которые я извлек из его поста, помогут вам решить проблему, с которой вы столкнулись.
Возможно, вам не понадобится последняя команда, поскольку вы заявляете, что уже создали правило брандмауэра.
источник
(Доступ извне вашей сети) Многие провайдеры (и некоторые провайдеры бизнеса) блокируют входящий трафик через определенные сервисные порты, такие как порты 80 или 25. Обычно это не позволяет вам запускать бизнес-сервисы на домашней линии из-за использования полосы пропускания. Альтернатива - запустить его на другом порту (см. Ниже).
(Доступ из вашей сети) Ситуация, которую вы описываете, звучит как шпилька NAT. Вот хороший общий обзор Hairpin NAT . Вам нужно будет добавить правила NAT к вашему маршрутизатору, чтобы всегда направлять трафик на ваш внешний IP-адрес, порт 80 проходит через ваш маршрутизатор, а не напрямую от хоста к хосту в вашей сети. Предостережение: Ваш маршрутизатор может быть не в состоянии сделать это.
Измените привязку порта в IIS, затем перезапустите веб-сайт.
источник
У меня такая же проблема. Брандмауэр Windows блокирует доступ. Выключите и проверьте это снова. Я думаю, что это будет работать.
источник