Setting up port forwarding varies depending on your network setup, but it's
usually a simple thing. Basically, you need to tell your router which computer to send network data to when it receives on a particular port, in normal web use that would be 80.
(
Note that I'm working under the assumption that your ISP isn't blocking port 80, you're not on a college dorm network, etc etc)
You need to edit your router's configuration. Most have some sort of web interface. Most LinkSys routers you can access via
http://192.168.1.1 or something similiar.. check your router's documentation for that one.
On my router anyway (Linksys BEFW11S4), from the main configuration page, I'll hit "Applications and Gaming" on the top of the screen, and then under that "UPnP Port Forwarding". (This is for single ports, there's also a "Port Range Forwarding" page that works similarly)
On that page, I need to set three things. First, the port number to be forwarded. That would be port 80, on TCP. Then, I need to tell it where to send port 80 data too, that would be the
local IP of the machine that's running Apache. And finally, I need to make sure it's actually enabled.
It varies from router to router but that's the general gist of what you need to do.. check your router's manual. You'll need to do this for most server type applications that need outside internet connections (FTP, mail which takes two ports, P2P, SSL web pages and so on.. client apps like mail readers and games and whatnot usually don't need this)
One suggestion, I recommend your Apache machine have a static IP, not one assigned by NAT (makes it a lot easier to keep port forwarding working properly, don't want your IP changing on you all the time)