1. Location

1.1 Home/Office/other similar location
1.2 Colocation facilities/Data centers

2. Installing Hosting Software

2.1 Apache
2.2 Nginx ( nginx wiki )

3. Allowing the world to view your site
NOTE: Your provider may block some ports (for example, my provider blocks 80, 8080, 23.. ports)
You should use alternative ports for your httpd’s
3.1 using a router

3.2 without a router

3.3 Dynamic IP

Dynamic IP is needed for accessing your site not thrue XX.XX.XX.XX:666
But thrue lame.shit.com

dydns.com
no-ip.org