Creating A Brand New Development Website From Scratch (Ubuntu 20.10)

First you need to have a private development VirtualBox web server created before you start this process. The web server in my case has a public domain name of:

webserver4.mattifesto.com

The domain for the development website for this example is:

dogs.webserver4.mattifesto.com

Your website domain should have a DNS CNAME record that points to the main web server domain.

Create Website Directory On Host Machine

  • Navigate to the folder the contains all your website directories.

  • I use the reverse domain name for my website directories, but you can use whatever naming scheme you like.

  • $ mkdir -p com_mattifesto_webserver4_devs/logs

  • $ cd com_mattifesto_webserver4_devs

  • $ curl -s https://mattifesto.com/install/ > install.php && php install.php


  • directory: document_root

  • copy form directory: <return>

Create Database On Web Server

One of the principles of the Mattifesto Method is using unique identifiers which makes searching and potentially replacing much easier. The database is named "com_mattifesto_webserver4_devs_database" because naming it "devs" or even "devs_mattifesto" would create a name overlap in many places.

  • $ ssh webserver4

  • $ sudo mysql

  • mysql> create database com_mattifesto_webserver4_devs_database;

  • mysql> create user 'web'@'localhost' identified with mysql_native_password BY '********';

  • mysql> grant all on com_mattifesto_webserver4_devs_database.* to 'web'@'localhost';

  • mysql> exit;

  • $ mysql -u web -p

  • mysql> show databases;

  • mysql> exit;

Share The Website Folder With The Web Server

  • Open the VirtualBox Manager window.

  • Select the web server virtual machine.

  • Click the "Settings" button in the toolbar.

  • Click the "Shared Folders" button in the toolbar.

  • Click the small folder icon with a green plus on the right side of the panel.

  • Folder Path:
    Select the com_mattifesto_webserver4_devs folder you just created.

  • Check the "Auto-mount" check box.

  • Mount Point:
    /home/mattcalkins/www/com_mattifesto_webserver4_devs

  • Check the "Make Permanent" check box.

  • Click the "OK" button.

  • Click the "OK" button.

  • Verify the the shared folder is present on the web server.

Create Virtual Host On Web Server

  • $ sudo vi /etc/apache2/sites-available/com_mattifesto_webserver4_devs.conf

    <VirtualHost *:80>
    
        ServerName      devs.webserver4.mattifesto.com
    
        ServerAdmin     matt@mattifesto.com
        DocumentRoot    /home/mattcalkins/www/com_mattifesto_webserver4_devs/document_root
        ErrorLog        /home/mattcalkins/www/com_mattifesto_webserver4_devs/logs/error.log
        CustomLog       /home/mattcalkins/www/com_mattifesto_webserver4_devs/logs/access.log combined
    
        <Directory "/home/mattcalkins/www/com_mattifesto_webserver4_devs/document_root">
            AllowOverride   all
            Require         all granted
        </Directory>
    
    </VirtualHost>
    
    
    <VirtualHost *:443>
    
        ServerName      devs.webserver4.mattifesto.com
    
        ServerAdmin     matt@mattifesto.com
        DocumentRoot    /home/mattcalkins/www/com_mattifesto_webserver4_devs/document_root
        ErrorLog        /home/mattcalkins/www/com_mattifesto_webserver4_devs/logs/error.log
        CustomLog       /home/mattcalkins/www/com_mattifesto_webserver4_devs/logs/access.log combined
    
        SSLEngine               on
        SSLCertificateFile      /home/mattcalkins/.acme.sh/webserver4.mattifesto.com/webserver4.mattifesto.com.cer
        SSLCertificateKeyFile   /home/mattcalkins/.acme.sh/webserver4.mattifesto.com/webserver4.mattifesto.com.key
    
        <Directory "/home/mattcalkins/www/com_mattifesto_webserver4_devs/document_root">
            AllowOverride   all
            Require         all granted
        </Directory>
    
    </VirtualHost>
    
  • $ sudo a2ensite com_mattifesto_webserver4_devs

    $ sudo apache2ctl configtest

    $ sudo systemctl restart apache2

    Set Up The Website

    • On your workstation browser, navigate to:

      https://devs.webserver4.mattifesto.com/colby/setup/

    • MySQL Host: localhost

    • MySQL Username: web

    • MySQL Password: <password>

    • MySQL Database: com_mattifesto_webserver4_devs_database

    • Developer Email Address: Use the email address you want to use for your user account on this specific website.

    • Developer Password: Enter the password you want to use for this specific website.

    • Confirm Developer Password: re-enter password

    The website will point out a few more steps you will want to take. You will also want to setup an email account so that email services can be used.

    $ cd document_root

    $ rm settings.json

    $ git add .

    $ git commit -m 'Release version 0'