1. Have a computer in your house open exposed to the internet on port 80- port forward on your router.
2. Run an http server on that box. Apache is a reasonable choice but there are probably easier pieces of software out there to set up.
2a. Create an index.html or equivalent default page name and put some html in it even if it's just hello world- it can even be in plain text.
3. Technically you are now self hosted on the internet! Figure out your external IP from your router and point a browser to http://$YOURIP/ and you should see your page.
The next steps are optional but kind of required to have a "real" site.
4. Set up dns. Since you won't have a static IP from your ISP almost certainly, you will need to use a dynamic dns provider. Noip.com is a popular choice. Once this is working you can register a domain name with GoDaddy or whoever and then point that name to your dynamic dns provider. Now you can load up http://www.yourdomain.com (or whatever tld you choose)
5. Set up https. For some reason beyond my comprehension google is forcing everyone to use https if they want to really exist on the internet in any real way even if they are just serving static pages. Let's encrypt can you there for free. Now you can go to https://www.yourdomain.com and your page will show up and Google et al might even consider you to be a real presence on the internet and index you one day.