If you are interested in Linux or doing things the hard way then this page will introduce the idea of setting up your own Web server.  For most people it is probably not the best option as it is complex and will hurt your brain.  XAMPP lets you do all the same stuff for development and testing (although it is insecure and will probably be slower) and paying a monthly fee equivalent to the price of a burger is probably a better way to run a real site (they handle setup and security for you). 

For a Web server to be useful it needs to be on a working network but most people will have one of those at both home and work/college.  To serve pages across the Internet you need an Internet connection for the server, a domain name and, ideally, a static IP address for your Internet connection so people can reliable find your site.  None of that is explained here.


XAMPP uses Apache, MySQL and PHP.  These are also available on any computer running Linux as it's operating system.  Linux is a free operating system which was designed from the start to work well at networking and so makes a good server.  You can also run a server under Microsoft Windows or Mac OS X if you want to.  These choices are known as choosing a development stack.  Linux, Apache, MySQL and PHP (LAMP) is one choice.  You can choose Windows as the operating system to get WAMP but normally you would use Microsoft's servers and languages instead (IIS and asp.net).

If you want a Linux server you need a computer to install it on but almost any old computer or laptop will do.  Be prepared for some real headaches as you get it working the way you want.  Search for a Linux distribution which includes a LAMP server and make sure you RTFM.


Once set up it means you have a proper server using exactly the same methods as the professionals use to host real sites and you will have learned a lot as well.  You could even set up your own hosting company!

As this is a proper server you will need to set up and use an FTP server to get the Web pages to the Web server.  Using FTP is explained soon.  Setting up the server is not.