What's so complicated? I'm currently on DigitalOcean but I've self-hosted before. My site is largely a basic LAMP setup with LetsEncrypt and a cron job to install security updates. Self-hosting that on one of my machines would only be a matter of buying a static IP and port forwarding.
LAMP with dynamic webpages (I assume your approach) works just like it ever did (besides SSL)
But are you really keen to make a PHP dynamic webpage application where each page imports some database function/credentials and uses them to render html?
Can you keep the behavior of fluent userflow (e.g. menu not rerendering) that way? Only with minimal design.
When in 2006 most webpages had an iframe from the main content, an iframe for the menu, and maybe an iframe for some other element (e.g. a chat window), it was fine to refresh one of those or have a link in one load another dynamic page. Today that is not seen to be very attractive and to common people (consumers and businesses), unattractive means low-trust which means less income. Just my experience, unfortunately. I also loved that era in hindsight, even though the bugs were frustrating, let alone the JS binding and undefined errors if you added that...
You can make modern single-page web apps with a LAMP back-end if you want. PHP is perfectly capable of serving database query results as JSON, and Apache will happily serve your (now static) HTML and JS framework-based page.
I was doing web development in 2006 and that's not how it was. Websites were not all in i-frames and they were not all insecure. Setting up a PHP dynamic website with Apache does not have to be insecure and didn't have to be back then, either.