Well, that's two distinct (maybe more depending on how you categorize) areas of functionality.
There's the server itself . On which you can install and configure numerous web servers or servlet containers. Apache and tomcat, respectively, are the most familiar. Once you get your server and services running with/without the desired content your next step is getting other people to see it.
To to allow public access to your site depends on the type internet connection you have. Here at work I have a dedicated DS3 curcuit to my ISP with a pool of addresses routed to me. So all I have to do is place a server in my DMZ, assign a publicly routable IP address and configure what ports I want to forward to/from my public server. If I want a DNS name, I go to my ISP's management portal and request an forward (A record) and reverse (PTR record) to link my IP with a DNS name.
What do you have?