If you are starting from scratch, you need a host first and foremost. I use Bluehost but there are many of them with varying costs and facilities. For a fee they give you server space and a bunch of tools and utilities, your login etc. You can get a domain name through your host. Alternatively you can get your domain name in advance from someone like GoDaddy (who I mention solely because they do the most advertising and you may know the name).
When you register your domain, you have to provide certain information that is publicly available. Most domain services allow you to be anonymous. You pay an extra annual fee for that and the public information becomes that of the service, not you.
To design a website, you need some basic html knowledge. Plenty of guides around the internet. Some hosts will already have packages in place so it's easy to set up sites like you described. You can find scripts (free and pay) for things like guestbooks, forums etc either at the host or on the internet. You might even find something that suits what you want to do.
I would suggest you start of with a very simple test site. Design some basic pages of html and upload so you can see how everything works (links, images, frames etc). Leave the complicated scripting until you get the big picture. It's quite easy to password protect your site so that you can play around with it, accessing from the internet to see if it works OK, and nobody else can access. Once you have your final product you can make accessible to all.
It's best to upload your pages using FTP so that's another thing you would need to look at. The host would have details on how to set that up. There are lots of FTP clients (including freeware FileZilla). You can also use the File Manager of the host. That may be a better option to begin with.