Create Subdomain (on the fly) by using PHP

Hi i try to find way for user to register in my web. they just need to fill in their name,phone,email address and subdomain that need to create. this information will store in database and PHP will execute the command to create subdomain. is it possible to do that? my webhost control panel are not using cpanel , my domain i already point using DO DNS. thanks


This comment has been deleted

Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Pretty simple, but you’ll need to handle the coding part.

  • Create an A record at DO for a wild-card sub-domain (*, for example)
  • In apache, create a wild-card vhost:

Example vhost config (written for CentOS 6.6)

<VirtualHost *:80>
        ServerAlias *
        #### This is where you put your files for that domain: /var/www/vhosts/
        DocumentRoot /var/www/vhosts/
        <Directory /var/www/vhosts/>
                # This section sets directives for the directory.
                # -Indexes <-- That blocks index listings on folders that don't have a default file (index.php/index.html/default.html/etc)
                # FollowSymLinks <-- This will treat symlinks like they should be treated in linux: as folders/files in the folder the symlink resides
                # MultiViews  <--It's easier for you to read this:
                Options -Indexes FollowSymLinks MultiViews
                # AllowOverride All <-- This is required for Apache HTTPD server to read .htaccess files.  It says that you can have a per-folder override for apache directives
                AllowOverride All
        ## Everything to see here. Just the log files.  Good to use for troubleshooting errors.
        CustomLog /var/log/httpd/ combined
        ErrorLog /var/log/httpd/

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
  • In your PHP, have it get the host name:
$user= str_replace("","",$URL);

Now, you have the user. Just have your code configured to show that users page, or a 404 if it doesn’t exist.