Apache Domain Registering
I'm making a website using Apache as the web server. Would I have to register a domain with someone like godaddy? I don't want someone like godaddy hosting a website for me. I want to be in control of the server.
GoDaddy can, but does not have to control the domain itself.
When you register the domain name, you provide GoDaddy (or whichever registrar you choose) multiple "Name Server" addresses. These are the computer systems that will actually house your domain's information.
I use Amazon's Route 53 DNS server (http://aws.amazon.com/route53/) since I run my own web server, but you could run your own DNS server, or use your hosting provider's name servers.
The "Name Server" that you specify will maintain the details about your domain such as what IP handles email, name servers, a/cname records (sub-domains), etc...
In addition to GoDaddy, you could use Network Solutions (http://www.networksolutions.com), Dotster (http://dotster.com), Register.com (http://www.register.com), and if you google DNS Registrars, you'll find tons of them.
You could just buy the domain name from GoDaddy, or any other DNS provider. You can host your own domain by pointing the nameservers to your own server!
Take a look at How to assign a domain name to your home web server.