Alright. First of all, Domain names. You can reserve/buy a domainname with tons of sites, mostly for about $15 USD for TLDs (so .org/.net/.com/etc). You should look for sites that offer DNS Management.

Once you have the domainname, you change it's DNS Settings to your IP and it will then "forward" any request (Tsenru.com/bla) to yourip/bla.

On your computer, you should set up a LAMP stack - Linux Apache/MySQL/PHP. I know Fedora has a great Yum UI manager where you can just search for software or entire software packages, and hell, it even does most of the work for you.

Once your LAMP stack is installed, you're going to have to edit the config files and set everything the way you want it to be.

You cannot reserve/get domain names for free unless you're an officially registered, licensed and affiliated company with the ICANN (basically the company that manages all the domain names on the internet).

Unfortunately I can not recommend you any site to register your domainname at, for I have no experience with anything but Dutch webhosts. I've done the DNS thing with a domainname of mine though, and it is dropdead simple. I trust you'll make it just fine. The hardest thing is getting a reliable hostname (which I'm sure someone can provide, I think Kaniaz mentioned Site5 a couple of times) and setting up the LAMP stack, which is also pretty eays.

Good luck, and I'm open for questions. QUESSINS.