LAMP - Linux Apache MySQL PHP
If your really wanted to host your own website then you could run your own server on your Internet connection. However, this is a LOT of work!
To develop PHP Scripts/Webpages you need a server that supports PHP.
When I was living in Canada I setup and ran a LAMP server in my basement. This consisted of a dedicated computer that was connected to the Internet 24/7. This computer was constructed from old parts and was relativly low-spec. The speed of the computer was not important as all it needed to do was to "serve" files in response to requests from the Internet. To make the computer visible to the outside world I needed to use a DNS service that pointed requests to my domain name to the computer in my basement. This is similar to what you are getting when you pay for hosting from a 3rd party.
Configuration
This is a relatively complex proceedure. Linux has to be installed on the computer and the webserver software configured. I had detals on how to do this along with a discussion on Achache and the directives for operation of the website.