Let’s face it, not everyone can afford to pay for the hosting of their websites, either monthly or yearly. Especially if you are beginner blogging enthusiast on a budget.
The big and reliable hosting providers out there charge exorbitant prices on their customers which makes beginner bloggers shy away from their dreams due to financial constraints.
If you are in this situation, or just want to save a great deal of money from hosting, then you are in the right place.
Some of the big tech providers such as Google have put the considerations of their average consumers in mind. Imagine having to host your website for as little as $0 for an entire year! Yeah, I know it sounds too good to be true. But trust me, I am actually speaking from experience of hosting websites for multiple clients at such a price.
I was also a bit skeptical when I first started out, but it turned out to be true. Besides, all those websites have never been down due to any server issues, which means that the google servers are reliable. Follow the following steps to get your website running on no time:
Step 1: Getting a domain name
The only cost which you will incur is the one of acquiring a domain name, which can be as cheap as $8.99 for a .com domain name and as little as $0.99 for a .site, .online etc domain names on domain providers such as hostinger. The good part is that you will never have to incur this cost again for an entire year!
So, go ahead and grab yourself a domain name from hostinger for the little price and keep your domain management page open. We will need it later.
Step 2: Creating your server
Let us set up our server on the google cloud console. Sign in using your gmail account. If you are first time user of the platform, go ahead and claim your free $300 credit. Google will then ask you for your credit card information. Don’t be scared, they will not auto-charge you anything. They will only perform a $1 transaction to verify the validity of your credit card, and it will be refunded back.
Go through the whole set-up process, which is straight forward, until you end up on your home console as shown below:
Navigate to your navigation menu on the left, hover over compute engine and select vm instances.
On the navigation menu at the top, click on create instance. Give your instance any name, preferably, the name of your website. Choose your region, in this example, I will choose US central1 (lowa).
Next is the machine instance. Your choice here will determine if you will be charged and how much will be you will be charged. I assume that we are all creating a static website, and we are all just beginners, meaning the website is not too large and the traffic load is also minimal.
Go ahead and choose f1-micro, which gives you 614MB of memory, which is pretty standard for a static wordpress site and we can definitely maximize on it to get all the benefits of our server instance.
Now in the boot disk section, click on change. The operating system which we will use is ubuntu, and the version will be 18.04 LTS. I will give the boot disk a size of 20GB and click on select.
For the firewall configuration, allow HTTP and HTTPS traffic.
Now if you check your total bill on the right, you will see a total $4.68 mothly estimate, if you have chosen the same settings as mine.
Don’t let that figure scare you. That amount will only be charged if you completely use up your chosen resources within a month, which is a bit difficult for a website that is only starting with very little traffic.
If your website grows beyond the chosen resources, you can always come back to your instance and upgrade. (Of course you will now be making some extra bucks and the extra cost will be nothing).
Click on create and wait for a few seconds for your instance to finish creating. Now under you VM instances, you should have your server instance started
Step 3: Configuring Your Server
For the next steps, do not worry if you are not “techy”. I will keep everything simple and super easy to follow along.
If you look at your instance you will notice that it has been assigned an external IP which is ephemeral. Which means, when you switch off your server instance, that IP will change, which will make your website unreachable. Let us change that:
On the 3 vertical ellipsis within your instance, on the far right, click on them and select view network details.
On the navigation menu on the left, select external ip addresses. Under the type, change the type from ephemeral to static. Give it any name and save.
Now go back to your VM instances and click on SSH. This will open another browser window with a command terminal. Now let us install our web server, which will serve our website files to the internet. In this example we will be using Apache web server.
Copy paste the following commands in the given order on the terminal to begin:
- Installing swap
apt update && apt upgrade -y
fallocate -l 1G /swapfile
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
chmod 600 /swapfile
The last command above will open a file. Scroll to the bottom of it and using your up/down arrows and add the following line: /swapfile swap swap defaults 0 0 . Press ctrl + o then enter/return key on your keyboard to save the file and ctrl + x to close the file.
2. Installing LAMP stack (Linux, Apache, MySQL and PHP)
apt install tasksel
tasksel install lamp-server
apt install php-curl php-gd php-mbstring php-xml php-xmlrpc
Step 4: Configuring your domain name
The following process should be neutral to all domain name providers. In this example, I will use hostinger as the domain provider. We need to add an A record which points to the static IP address assigned to our instance by Google. If you are using a different domain provider, review their documentation on how to go about this process.
For hostinger, login to your control panel and click manage on your domain. Navigate to the DNS ZONE tab. At the A (host), click add new.
The host is @ and points to is the external IP found in your google console instance. Leave the TTL to the default value.
After doing that, you need to be patient for at least an hour to allow the domain to point to that IP address.
Navigate back to your terminal window and type the following commands:
mv 000-default.conf your_domain_name.conf
NOTE: In the last command above, replace
your_domain_name with your actual domain name.
The above command should open a file. Before the line:
Add the following code:
Options Indexes FollowSymLinks MultiViews
AllowOverride All Require all granted
Inside the tags that begin with
configure the first 4 un-commented lines to be as follows:
ServerAdmin [email protected]
Press ctrl + o followed by enter/return to save the file, then ctr + x to close the file.
Now type the following commands to enable your site:
mkdir -p /var/www/your_domain
systemctl reload apache2
If you now go to your domain name, on the browser, you should see the default Apache welcome page, which means you have successfully pointed your domain to the IP address.
Now let us install a wordpress website:
Step 5: Installing your website
Let us now create a database for our wordpress installation:
mysql -u root
CREATE DATABASE wordpress;
GRANT ALL ON wordpress.* TO 'wordpressuser' IDENTIFIED BY 'password02';
NOTE: My database name is wordpress. You can change yours to another name. You can also change wordpressuser to your custom username and password02 to your own password.
Then run the command:
mysql_secure_installation to install mySQL database.
In some cases, you may need to upload large files on your server and the current server configuration may not allow you to do so. To fix that, type the following command:
The above command will open a file. Search for the line saying
upload_max_filesize by pressing ctrl + w and typing the search keywords then press enter/return. Change the value from 2M to a higher value, say 50M.
Also search for the line
post_max_size and change the value to a higher one, say 21M.
Step 6: Installing wordpress
This is now the final step and you should have an amazing website hosted by yourself at absolutely no cost.
Paste the following commands on your terminal:
rm -rf index.html
tar -xzvf latest.tar.gz
mv * ..
rm -rf wordpress
mv wp-config-sample.php wp-config.php
The final command above will open a file. Navigate using your up/down arrows to the following lines:
( 'DB_NAME', 'cyberg' );/** MySQL database name */
define( 'DB_USER', 'root' );/** MySQL database username */
define( 'DB_PASSWORD', 'password02' );/** MySQL database password */
Fill in the details according to the configurations made while installing mySQL. Press ctr + o, then enter/return to save then ctrl + x to exit.
Finally let us change the user permissions for our wordpress installation to avoid errors while installing plugins or themes:
chown -R www-data:www-data /var/www/html/*
If you now navigate to your domain name, you should be able to go ahead with the wordpress installation and customize your site according to your needs.
Feel free to leave a comment if you have any question regarding any step on this awesome way to save money on unnecessary costs on hosting.