I learned HTML and CSS from a site called w3 schools a few years back.
https://www.w3schools.com/
(Modern pages are often split between HTML, which specifies what elements go on a page, and CSS, which contains all the style descriptors which modify the elements and control appearance and positioning.)
If you want to get started with a simple static webpage (which is probably where you should start if you don't know this stuff), you'll need to run some web-server software. Apache2 or nginx are the two popular servers, and can be configured to serve static pages, php pages, and many other things. They can run on either a machine you own on your local network, or on a virtual private server (which is a VM running on a hosting provider.)
(Backing up - there are all sorts of pieces to a webserver)
1. The DNS provider, such as namecheap. This allows you to manage a domain name and DNS records, which identify your server to the world and tie it to a domain name such as (blablabla.com) (mail.blablabla.com,
www.blalala.com, ...) (small ~$15 or so fee per year.)
2. The server computer itself (a spare junk machine of yours running linux (does *not* have to be fancy or even good) or a VPS). (small $5/month if VPS such as Linode. Advantage there is you don't need to fight your ISP if you have a dynamic IP address, and uptime is not horrible. With your home machine you'll have to enable port forwarding on your local network, and on your cable modem.) You'll need to learn how to mess with a Linux system (how to log in with ssh, how to wrangle filesystem permissions, how to start and stop the webserver software, how to install packages.)
3. The server software apache2 or nginx.
4. The site configuration which controls what the server software does.
5. HTML and CSS files which define your webpage layout and appearance. Once you have all this set up, you can start playing with the page and getting feedback from the computer about how it looks - this is where the learning starts.
----
Once you have a static webpage down, you should start learning a backend scripting language and how to administer a database. PHP is a pretty basic backend scripting language. Databases are used to store all the state in webpage interactions. Mariadb or mysql are generic database servers.
So, the user's webclient dials a webpage. The server then executes a PHP script on the server side. (If the PHP is configured right, the client never sees the PHP code. The PHP code assembles a dynamic HTML page based on its code, the user's HTTP request, and what's in the database. The user gets the HTML page, which contains what he sees. Then he clicks on various page elements or fills out a form, which sends variables back to the server in another HTTP request.
------
That's the 10,000 ft view. It's a bit of a journey. I'm not a sysadmin or a web developer really, I've just got infinite computer trivia banging around in my head from my own web-sites and experiments.
PS, once you have a server of your own, you can do all sorts of useful and interesting things. You can serve and store files to yourself from your own encrypted "cloud storage". You can manage academic paper libraries with webdav storage and zotero. You can run a mail-server and serve email from your own website (though there is a *LOT* of configuration and pain in that learning curve.) Once you're to the basic-competence-with-a-database stage, you can start bolting on all sorts of other software onto your website if you don't want to develop your own (though it sounds like you eventually do want to develop your own store page.)
That reminds me - while I hope to never have to deal with even a microscopic fraction of the shit this site has dealt with, I should probably at some point learn what is behind kiwiflare and the rest of the things Null/the admins have built to stay online. It deserves Matrix memes. Truly impressive.