+4  A: 

You will need to configure the server's firewall to allow incoming connections, and your router to forward connections to the servers.

Also be aware that many ISPs block incoming port 80 connections to avoid having their customers host their own sites (Check your ISP's contract, you may be violating it by hosting a web server)

It's possible to set your router to use a different port and forward it as port 80 to your server if your ISP is blocking port 80. Check with your router's user's manual about forwarding ports. Some routers might not support changing the incoming port to a different one, in which case you would have to change the port Apache runs on as well.

From your screen shot set the public port to something other than 80 (by convention use a port between 1024–49151), and leave the private port to 80.

Also, make sure you're using your public IP on other clients. Do not use the 192.168.. addresses, they're meant only for private networks.

Outside users should then be able to use the link http://[your public router IP]:[new port] to connect.

Ben S
Hi,So what's the solution for the incoming port 80 problem?
Raymond G.
To verify that it isn't a problem with port 80 being blocked, set the "public port" on the router to 81 (leaving the private port at 80) then try going to your site like this: http://123.123.123.123:81 (substituting your actual IP address of course).
Eric Petroelje
Eric,Why is it if I go to my IP address in my other computer, I proceed to my default router website??
Raymond G.
Ah, that's probably half of your problem. Your router is already set to use port 80 for its own webpage. Change it to use a different port (I use 8080) and then hopefully it will let connections to port 80 through to Apache on your PC
Joe
Are you using a new port in your browser? By default all page requests are on port 80, and so your router thinks you're trying to connect to it rather than the Apache machine, even if there's a forwarding rule. The forwarding only applies to outside connections(from the internet, not your network).
Ben S
oh ic so maybe this will work from the internet.. i dont wanna expose it. I just try this for my learning purposes.I turned off my firewall.. I might get attacked by the pirates. I'll try this tomorrow
Raymond G.
If you're only testing locally connect to the server machine directly by going to http://192.168.0.102 Does that give you a "Cannot connect" page?
Ben S
Hi all helpful creatures,I asked my friend to test the ip for me. It worked!! Thanks you guys..
Raymond G.
A: 

Be sure if you are using any type of router that you enable "IP forwarding" otherwise your server remains hidden behind it.

This option can be changed on the configuration webpage for the router.

gnomed
A: 

`bstpierre' is correct in that some ISP's block port 80. I use port 8080 myself. Good luck!

brian newman