Apache Server on Windows 7 opening up ports?

20

12

I have installed Apache 2.2.14 on Windows 7 and can view my web pages using both http://localhost and http://127.0.0.1 but when I try to access the server from another computer on the same router, it fails. It also fails when I use the DynDNS address that I have mapped.

This worked fine under Windows XP before I upgraded to Windows 7.

I suspect the issue is something like port 80 not being opened up for outside access into the computer.

Does anyone know how to open that port up in the Windows Firewall, or if something else is locked down what that is and how to unlock it?

WilliamKF

Posted 2010-01-07T04:15:26.470

Reputation: 6 916

Answers

34

To add a rule in the Windows Firewall for port 80, do the following:

  • Go to the Control Panel and launch "Windows Firewall"
  • Go to "Advanced Settings"
  • Select "Inbound Rules" in the left pane
  • Select "New Rule" in the right pane
  • In the New Inbound Rule Wizard, select "Port" as Rule Type, then click on "Next"
  • Select "TCP and put "80" (and any other ports you want to open) in "Specific local ports", then click on "Next"
  • Select "Allow the connection", then click on "Next"
  • Select the network location where the rule should apply (select them all if you're not sure), then click on "Next"
  • Give a name and an optional description

That should do it.

Snark

Posted 2010-01-07T04:15:26.470

Reputation: 30 147

Tips: You will be able to visit that port, but you may still not be able to ping the ip! – fzyzcjy – 2016-11-27T10:37:41.973

2You may find that there is already an "Apache" inbound rule under the firewall settings. If you examine this rule, you will find some settings under the General tab, one of which is Action. There are two options - "Allow the Connection" and "Allow the Connection if it is Secure". You could choose either of those options at your discretion, but I suggest you read and understand the "Customize" options of the latter. – Aaron Newton – 2011-10-15T06:53:12.313

3

It seems Windows 7 Firewall has a fear of the 80 port.

It will open those ports if you configure it this way:

Apache server → UDP → all ports.
Apache server → TCP → all ports.

That's bad since Apache usually works with specific ports (I mean 80, some use 8080, and 443), but I didn't find other way to get the Apache firewall rules to work.

Sergio Abreu

Posted 2010-01-07T04:15:26.470

Reputation: 31

2

I just mine working. I created the exception rule for port 80 on windows firewall. I'm running windows 7 on the laptop and OSX Leopard on my Mac. The exception alone did not fix the problem. I then turned off the Firewall and I was able to connect to the apache on the laptop from my mac. What really solved the problem was in the control panel > network and sharing center. I changed the settings for the active network and set it as the home network. If you check on the win firewall, you should see the Home network(private) connected

ricardo

Posted 2010-01-07T04:15:26.470

Reputation: 21

+1, I also had to choose a homegroup for the current network in order for the rule to work. Thanks @ricardo. – rishimaharaj – 2014-05-31T22:53:24.530

2

sounds like you need to add an exception(port 80) to the windows firewall.

I'm sure this can be accomplished by opening the firewall control panel and clicking around a bit. In XP it was fairly straightforward at least.

The problem could also be that apache is only configured to listen on the loopback interface. You can test that by running netstat or by trying to visit the other address of your machine, like http://192.168.1.101/

user23307

Posted 2010-01-07T04:15:26.470

Reputation: 5 915

1

Try both opening up the port on your router to your machine and looking at Windows own firewall.

Remember that when you reinstalled Windows, it is possible that you have a different DHCP lease and have a different IP address so the router may not be forwarding it correctly any more.

On top of this, your router needs to support "Nat Loopback" otherwise you simply will fail to connect, however I assume it supports it as you said it previously worked. To check for this, I highly advise you use Hide My Ass or Proxify.

William Hilsum

Posted 2010-01-07T04:15:26.470

Reputation: 111 572

> It is possible that you have a different IP address so the router may not be forwarding it correctly any more.   Agreed! I am “portablizing” my WordPress installation so I can easily host it from anywhere. I got it working locally, but it is blocked from the world. There is already an exception in the Windows Firewall because I said allow when it prompted me, so I checked the router, and sure enough, it was set to forward port 80 to the IP of my desktop. Of course changing it to the laptop is no good. I ended up assigning a port-trigger instead, and now works from any connected system. – Synetech – 2012-11-09T17:13:12.730

1

In addition to checking the firewall and checking if apache is listening only to the localhost address, you could/should also check your .htaccess files. The new version you installed may have implemented a more restrictive security policy.

Some tutorials on .htaccess

pcapademic

Posted 2010-01-07T04:15:26.470

Reputation: 3 283

0

Looks like it is an issue with the Windows 7 firewall. When I turn off the firewall, it works properly. Now I just need to figure out how to have the firewall active but allow port 80 connections.

WilliamKF

Posted 2010-01-07T04:15:26.470

Reputation: 6 916