Ok, first I'd say reconsider how you are going to build that site you mentioned. You are better coming up with a database design of your core functionality and implementing that and then implementing your basic feature set. Building a site and trying to add core functionality will have you re-writing large chunks of code over and over as you reconfigure how the system interconnects.
However, I guess it could also be argued to try a few small test projects and then build the main thing. Generally though, you will end up with a messy code base if you don't set up a lot of the core stuff initially, especially as a beginner.
In terms of not putting the site online till it's safe etc. I wouldn't worry too much about that, get it online ASAP
it will give you more incentive to work on it. ****
Just make sure you sanitize all your user inputs (forms) so people can't use SQL injection and hash user passwords
(with bcrypt). Beyond that, if someone brings the site down, it probably won't matter that much (small user base -maybe also advise users to pick a new password), and just take regular (hourly/daily) backups of the database so you can bring the site back online if something goes down. You can google these two things quite easily.
Also consider a full stack framework like symfony, laravel, one of the other hundreds of FSFs, etc.
These will offer far more functionality than you need, but they will handle things like session management, data-store connections, user control, etc. without you having to build that functionality from the ground up.
Also in the end you will have to build a stack, and if you are new to programming, that will be a year-long mission.