WordPress Building Your Site The Easy Way Using A…

I’ve been on a quest to find the best webpage builder to go with WordPress, this makes life comfortable and allows you to construct web pages without manual code editing. My criteria are speed and simplicity.

Did you already know WordPress gets used on over 75 million websites? I’d love to know how many prefer SquareSpace, Wix and Jimdo, by the way, I’ve used them and like them too, they are not part of the comparison here though, but, do please let me know if you have some statistics. Want to see some beautiful WordPress sites, then check out

For those hungry to not waste time, here is my personal list of the best page builders.

  1. Elementor
  2. Visual Composer Website Builder
  3. WordPress Page Builder by MotoPress
  4. PageBuilder SiteOrign
  5. The Divi Builder
  6. WordPress Page Builder by Beaver Builder

They are all very good tools and urge you to try each, to find your personal favourite, because there are differences in usability, which is why you might choose Divi or Elementor over Beaver Builder. One details regarding Visual Composer, as good as it is and I think it is excellent, to change the size of heading elements and such, you will need to write a little CSS, but there are plenty of tutorials.

So how did I come to my conclusion, go to my “Go Amazon” page and you’ll see the layout which I designed. It contains a lot of YouTube videos. The testing truly surprised me, more than once. For example, what seemed to be the killer feature in Divi, image overlay on video, what I thought was for load speed, actually seemed to make no difference, at least at the time when I tested it, but, perhaps there was a bug or optimization missed on my part.

Visual Composer

I only heard about this through a WordPress group on Facebook. You’ll need to download it from their website, then upload via the plugins screen. It takes about 5 minutes to download stuff when you first install. It’s not one of the faster editors to load. However, it more than makes up for usability and final page speed. I found my page was about half a second faster than all the other page designers I tested. A couple of times I got my page layout messed up but was quickly able to recover. The only negative for beginners I already mentioned, you might need to know or learn a little CSS to manipulate the font types and sizes of heading tags and such. For learning that you get a highly optimised page.


An extremely good plugin, I don’t think they have a free trial edition, but, I think you have to try it. The design interface is really good and you’ll be happily building pages within minutes of installation. Their customer services are quick too. If your looking for something that just works, then you’ll really be a very happy customer. I lay particular worth on mobile rendering of pages and here I had no problems, unlike the with some of the other page builders.


There is something to be said about plugins appearing on the second page of the WordPress plugins list – try them – you may be surprised. Although, I found it a little tricky to get started because the menu was not always visible. Once getting used to the drag and drop interface, I was able to accelerate along and found it very good. The editor sometimes felt a bit slow, but you’ll also find that with my current favourite page builder tool. One button I missed was for duplicating/copying content.


First I wasn’t sure it was activated, but, it is visible as a new tab. You design the layout similar to other page builders, which is by defining rows and columns. I liked how you can give each block a title. The rich text editor requires you to install the SiteOrigin Widgets Bundle (an extra plugin), but, I think it was worth it and I really like the live page editor. I also installed their North theme which allowed me to make full-width pages. I like the widgets menu where you can activate more features like social icons & icons. The amount of video & code I found while googling showed me they care a lot about their product and this is actually a very good page builder – it was one of the fastest.

Beaver Builder

I liked that it has an integrated tutorial on first use, however, after 5 clicks I was getting a little annoyed. Like many other products, it is not long before you realise you need to buy something and for only 199$ you get the theme which would provide full-width page layout. I wanted to try the designer, so took a theme CustomPressVersion by TwoPoints that was free, according to the description it is optimized and has a very small stylesheet which is just 20kb (that really is tiny). The layout work was initially a little awkward the further I got down the page, I had problems adding content, eventually though I figured it out. They get plus points for the save and exit button: I found on other page builders that I lost work because I had forgotten to save.


Easy to find because it is number one on the plugins search screen. It has 300’000 active installations and at the time of writing nearly 500 five-star ratings.  Its easy to use, the pages are fast and think it has everything you need to make great pages. It is number one on my list because it is slick and the easiest to learn. Note that I don’t use it encountered a problem with the look of my page on mobile devices. I couldn’t get them to look the way I wanted which could have been a problem with the 3 column layout I chose. I then switched to Visual Composer, it’s nowhere near as user-friendly though. I great feature on Elementor I really liked, was being able to add shadow to boxes, which made the page look great and I liked their drag and drop interface the best over all others I tested.


A common problem I had was getting full page design. I tested a few more page builder tools and they didn’t make my list because they commanded money for that or for a widget to add social icons. In the end, I got my social icons for Instagram, YouTube and Facebook via the plugin AccessPress Social Icons which is free at the time of writing.

You are going to have to pay something to get a good page builder. I think I found my favourites and would urge you to go out there and test them all. It will take you a day, but, it is time well worth spent.

As a final note, I want to mention I do not have any affiliate links here. I do not make money from recommending any of this software.

wordpress on amazon Blog

Ready a v16.04 Ubuntu Server for WordPress on Amazon…


This document lists the steps required to prepare a Linux server to setup your server on Amazon for running one or more WordPress sites. If you decide to have the database on the server, then the architecture is known as "LAMP" which is an acronym for "Linux, Apache, MySQL and PHP". If you're setting up your first machine, then write down the commands and any connection information into a journal. It will help you remember the steps and internalise anything you learn along the way. You should add knowledge to it as you go along and will see that it will become more valuable than any book you can buy.


  • You have created an EC2 instance on Amazon and know how to connect to the machine using Putty or SSH.
  • You have chosen to run the database on the same server or use Amazons RDS service.
  • You have a domain name configured for your website on Route 53 or another DNS provider.

Step 1: Ensuring Machine Is Up To Date

When you log in to the machine, you will see information about how many packages and security updates are available. You should never ignore those messages.

sudo apt-get update

sudo apt-get upgrade

First update which refreshes the list of available packages and their versions, but does not install or upgrade any packages. The upgrade command installs newer packages and security updates. Neither of them runs automatically; I recommend a monthly calendar reminder, so you keep your server safe. If you run the server over a couple of months, then dist-upgrade will bring the operating system up to date and is known to clean up better after itself.

sudo apt-get dist-upgrade

If you are asked a question with a “Y/n” answer, type in “y” and otherwise follow any instruction.

Step 2: Install Apache Web Server

sudo apt-get install apache2

It will start installing. You will be prompted to Press Y and hit Enter to continue, so do that for the installation to advance.

Step 3: Checking the web server is running

Type the IP into your browser and check the web server is running. If you haven't created an A record to point to the IP of the server, then do it now. You should get the default page, if so, then congratulate yourself.

Step 4: Configuring Your Access Rights

We want maximum lockdown later on and for you to be able to work without using the "super user do" command sudo all the time. Ignore this step, and you'll be using sloppy access commands later on like "chmod 777", then you could end up in a situation where you have an unprotected directory, and that's not good. The Apache server on Ubuntu will be running under www-data here is how you can double check that:

ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}'

Assuming the user is "www-data" we're now going to add you to the apache user group.

sudo usermod -a -G www-data ubuntu



We need to logout and login again for the change to show. To check the changes are in place you can now run.


You should see the "www-data" group listed.

Step 5: Setup Database On Server (The low budget option)

If you have decided to use Amazon RDS, then you should follow their instructions and have the instance connection information ready. BUT, if you follow a backup strategy, then I think there is nothing bad about running the database on the server while the site is small. I suggest you use MariaDB over MySQL. It took me a lot of time to get used to the idea of MariaDB, as I had been using MySQL since I built my first web server 15 years ago. I now realise what MariaDB is and its development is more open and vibrant, don't believe me, then check out the activity on GitHub. Also, it's said to be between 3 and 5% more performant, which is very relevant for web server backends. The command to install the database and client is.

sudo apt-get install mariadb-server mariadb-client

In the next step, we use the MySQL utility to secure everything. This hardening we are about to do will require that you come up with a password for the root user.

sudo mysql_secure_installation

I would allow remote login, so you have the opportunity to later connect via MySql Workbench. Lets login to the database to demonstrate the security.

sudo mysql -u root

Notice it didn't ask for a password. What happend? MariaDB is per default configured to use your operating system credentials through the auth_plugin. I wouldn't recommend this but, if you want to force the password for root in the terminal, run these commands.

update mysql.user set plugin=null where user='root';
flush privileges;

To close the MySQL database client use the command


Step 6: Installing PHP

This step is setting up the scripting language used on WordPress sites.

sudo apt-get install php libapache2-mod-php php-mysql

php -v

Apache will try to first serve up index.html files. We can make an optimisation by making index.php first in the list.

sudo nano /etc/apache2/mods-enabled/dir.conf
    DirectoryIndex index.php index.html index.cgi index.xhtml index.htm

When you are finished, save and close the file by pressing Ctrl-X. You'll have to confirm the save by typing Y and then hit Enter to confirm the file save location.

sudo systemctl restart apache2

sudo systemctl status apache2


Step 7: Sanity check to ensure PHP is running

sudo nano /var/www/html/info.php

Now go to the web browser enter the IP address /info.php and you should see the information page.

Step 8: Preparing your web server for multisite

Delete the HTML directory

sudo rm -rf /var/www/html

Also, we will disable the default site.

sudo a2dissite 000-default.conf

Step 9: Install WordPress the Command Line Interface (CLI)

The WP-CLI is the official command line tool for interacting with and managing your WordPress sites. It will help us download and install WordPress in seconds. It can also do a lot more. We should go into the home directory.

cd /home/ubuntu

Now we download the WordPress tool by (or use the official instructions link).

curl -O

Check it works using the command.

php wp-cli.phar --info

Making it a standard executable.

chmod +x wp-cli.phar

sudo mv wp-cli.phar /usr/local/bin/wp

wp --info


If you WP-CLI installed successfully, then you'll be presented with important version and directory information

Step 10: Creating your first site

You need the decide on the following

  • website_name shown below as

Start by setting up Route54 DNS so the domain is pointing to the web server. Create the directory where the site will be hosted.

cd /var/www

sudo mkdir

sudo chown www-data:www-data

sudo chmod 775


Some like to copy the default template but it is missing stuff. I would create your own blank configuration.

sudo nano /etc/apache2/sites-available/

Now add this into the file




DocumentRoot /var/www/


CustomLog ${APACHE_LOG_DIR}/ combined


The above entry is for a top level domain. If you are creating a site for a sub domain, e.g. Then just remove the ServerAlias bit. SUPER IMPORTANT: check for mistakes in the configuration file using the command.

sudo apache2ctl configtest

The system response should be "Syntax OK". You will use the above command every time you change the web server configuration. If you are having trouble, then I always like to go to the following page Enable the site using the command.

sudo a2ensite

If all is OK then continue by restarting apache.

sudo systemctl restart apache2

Step 11: Installing WordPress

Before you proceed, decide on the following information and securely store somewhere in a password safe such as KeePass. I've highlighted them in bold below.

  • Database name e.g. clouded_ch.
  • Database username e.g. clouded_ch_user.
  • Database password.
  • Website URL.
  • Site title.
  • Admin username.
  • Admin password.
  • Admin email address.

Start by going into the website directory.

cd /var/www/

We download WordPress.

wp core download

Creating the database.

sudo mysql -u root -p

You will get asked for the password you set for the MySQL root account.


GRANT ALL ON clouded_ch.* TO 'clouded_ch_user'@'localhost' IDENTIFIED BY '***SecretPassword***';

We need to flush the privileges so that the current instance of MySQL knows about the recent changes we've made.


Ensure the database name, user and password are correct!!

wp core config --dbhost=localhost --dbname=clouded_ch --dbuser=clouded_ch_user --dbpass=***SecretPassword***

Now we generate the WordPress configuration file wp-config.php

wp core install --title="Clouded.CH" --admin_name=james --admin_password=***SecretAdminPassword***

Prepare it for accepting uploads, which may already exist.

cd wp-content
mkdir uploads

We will set the ownership of all directories and files, as well as the group id bit on each of the directories, which makes new files created inherit the group of the parent directory.

sudo chown -R www-data:www-data /var/www/


sudo find /var/www/ -type d -exec chmod g+s {} \;


Step 12: Make your site HTTPS

Always check your system operating system version and check for actual instructions.

lsb_release -a

The following will install certbot which does all the lifting.

sudo add-apt-repository ppa:certbot/certbot

sudo apt-get update

sudo apt-get install python-certbot-apache


The command that will allow you to make your site HTTPS.

sudo certbot --apache
  • You will need your email address, so they can contact you for urgent renewal and security notices.
  • You will need to agree to there terms of service (which I would recommend downloading for safekeeping).
  • Then it will ask which sites you would like to activate HTTPS on.
  • You also need to choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access, I would use the redirect because often people forget to type in the S on the end of HTTP

You can see the added configuration files in apache here.

ll /etc/apache2/sites-available/

Use the cat command to review them if you like.

sudo cat /etc/apache2/sites-available/

Lets test if the renew will work.

sudo certbot renew --dry-run

All good? let us hope so. The certificate needs to be replaced regularly. We can setup automatic renewal using the scheduler. You only need to do this once.

sudo crontab -e

Choose NANO as editor it's the easiest to use, then add the following line and Ctrl+X to both save and exit. This will make the server check for a new SSL certificate every morning at 03:15am and is something you only need to setup once.

15 3 * * * /usr/bin/certbot renew --quiet

Check the settings are stored

sudo crontab -l


Miscellaneous: Unable To Install Plugins In WordPress

This will be a permissions problem. Run the commands to set up the ownership.

sudo chown -R www-data:www-data /var/www/

sudo find /var/www/ -type d -exec chmod g+s {} \;

Miscellaneous: Unable To Upload Theme To WordPress

You just bought yourself an awesome new theme and want to upload it to the site. WordPress fails by asking are you sure and do you want to try again. Start by checking your error log. They are found in the /var/www/apache2 folder.

cd /var/www/apache2


If you see a message like "POST Content-Length exceeds the limit", then it's the default limit in PHP, which is 8M. To find the php.ini file run this command.

php -i | grep 'php.ini'

Then edit the file.

sudo nano /etc/php/7.0/apache2/php.ini

Now choose the max upload size wisely (use Ctrl + W to find quickly).

upload_max_filesize = 50M
post_max_size = 50M

Finally, you need to restart the web server.

sudo systemctl restart apache2

sudo systemctl status apache2

Miscellaneous: Resetting the root database password.

These happen to me so often. Start by identifying your database.
mysql --version
It should be MariaDB
sudo systemctl stop mariadb
We start it without security or network
sudo mysqld_safe --skip-grant-tables --skip-networking &
Connect to the DB
sudo mysql -u root
When you get the mysql> prompt.


SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');


Now to restore the database to normal operation

sudo kill `/var/run/mariadb/`

sudo systemctl start mariadb

Finally, confirm you can login.
sudo mysql -u root -p

Miscellaneous: Resetting the database password.

Login to your MariaDB using the command

sudo mysql -u root -p

Then run

SET PASSWORD FOR 'clouded_ch_user'@'localhost' = PASSWORD('***SecretPassword***');