If you had been thinking about setting up your own web server. You probably want to get some information about the requirement and basic knowledge on it. So, here it is:
You will need to know some basic about DNS, which will involve setting up FQDN(Fully Qualified Domain Name), for your server to setup the host name and other related stuff like, email host, nameserver etc2.
Command Line Knowledge
This is fundamental. Nearly everything in the server world required you to be able to manage the settings or services by using command line. Example, restart apache, restart mysql, restart mail service, restart ftp.
Linux is the core architecture for your server. It is recommended to use linux for your web server as it provides stability and easy management for many applications such as PHP.
Apache is the service that will serve your website to the internet world. Which you will need to know how to minggle on the apache configuration files like httpd.conf and other related to it. Usually there is a lot of trouble when you dont know how to manage the config files. such as, when you are installing a new package for ther server, or you do some changes. sure this will take some time to adapt and learn.
MySQL is a database. Which allow apps to store data and to be the centre of your application. It can store login credentials, Purchase items, Logs, and many more.
PHP have the largest community which makes it popular among many programmers around the world, Gaining knowledge on this programming language will give you advantages of the growing Open Source world.
That is all the essential requirement for you to kick start and understand the fundamental of setting up your own server. It still have many other additional things you can add to it, such as email server, DNS server, and many others. But when you can master these 6 items. you can use these fundamental to go up and improve your server. Good luck!