I have an ubunto vm running a lamp stack, and a for now, one domain name redirecting to the vm's ip address.
Concept wise the main principle is I want users to register an account and get a "website" running over on a subdomain of my own domain. That part is easy with wildcard subdomains in apache vhosts etc and with certbot i managed to automatically have all subdomains protected under ssl.

Now, if a customer wants to buy his/her own domain name, with me or some other registrar they need to point an A record to my ip address and a CNAME from www to the domain name. And in my end I need to add a vhost file under sites-available folder configuring the virtual host file for that new domain name and restarting "gracefully" apache.

Here lies the problem. How can I manipulate apache vhosts files etc so I can accomplish this at the push of a button on my main website? I'm using PHP in my backend and doing it in php (shell exec etc) seems like a security risk..

Im running on GCP so any of GCP's services are available.

Thanks in advance.