Pages

27 January 2020

How to set up your own website (extreme hardcore version)

There are many reasons why you would want to have your own website. Maybe you want to advertise your shop or maybe you just want a blog. Maybe you want to create a website on how to create a website. Then its readers will make a website on how to make a website...

There are many options on how to go about this, ranging from the boring (but free and easy and quick) methods to the much more interesting Obligatory Nightmare method which we will follow here.

[The gods above were proceeding to do their regular Divine work when a strange feeling ran through their ichor, as if a heinous crime had been committed. They immediately opened the Sin Scanner on their portable magic mirrors (smartphones) and were mightily angered by the fact that a puny mortal named Eyekay had dared to say the words 'interesting Obligatory Nightmare'.]

How does the internet work, anyway?

The internet is actually a very simple and centralized system.

[At this point of time, the Lord Himself noticed that a puny mortal had uttered the words 'simple internet' or something of similar nature, which of course is a punishable offense by Divine law.]

Each and every device connected to the internet is assigned an IP (internet protocol) address as soon as it connects to it. It looks like this : zzz.zzz.zzz.zzz, in which zzz is a number from 0-255, which means there are a total of 2^32 possibilities in such a system. (Only a small range of IPs are actually usable, many are reserved. For example, all private networks - the ones running in your homes and offices - usually have the format 192.168.1.zzz. Also, this is the IPv4 format, which has been exhausted now. The IPv4 addresses ran out in 2011, and Asia was the first continent to exhaust its allocated IP addresses. A newer format, IPv6 was released recently, which has a very complex format but supports upto 2^128 combinations.) The internet is basically run by the ICANN (Internet Corporation for Assigned Names and Numbers) and the IANA (Internet Assigned Numbers Authority.)

If you check your IP address right now from your device settings, and are connected to a home or office network, your IP will probably seem to be like 192.168.zzz.zzz. This is because all private networks use this same system. But if you Google your IP, it will show a completely different numbers. You may also have noticed something : this number will keep regularly changing. This is because your public IP (the one the web can see) is actually shuffled regularly by your ISP.

You may have heard the term ISP (Internet Service Provider) before. It is the company that gives you internet service. (I hope you can catch up with all the complex stuff I am saying, especially the last two sentences.) For example, my ISP is not a very good one at all (see my post titled 'umm' published on 26 January '20.) Now, your ISP will claim and manage a large range of IP addresses and keep shuffling your IP each time you start your device. This is called a dynamic IP address, and I have no idea why this is so. But the fact exists that a static IP (which does not change as long as you keep paying the charge and is definitely something you want for your website, as you will see later when we discuss DNS) is charged for extra by the ISP.

Server: what is it?
A server is basically any computer which transfers data to and from the internet. Your website will be stored on a server too. 

There are many server hosts online today which will be more than happy to host your site at very cheap rates, but since this is an extreme hardcore guide, you will make a server at your home.

To make a server, all your need is an old computer (just the CPU) and if your site is not very resource heavy, it will be more than enough for you. You should definitely invest in a static IP, though. You just need to do something called port forwarding (see below) to make your server public.

Also, a note on prices. A static IP isn't terribly costly, so if your house has regular electricity and internet then running the site won't be terribly pricy. (If you decide against making the server at your home, then you have to account for the land rent and server staff too.)

DSL / ADSL

DSL (Digital Subscriber Line) is the actual internet cable given to you by your ISP. But for home connections, they usually give an ADSL (Asymmetric DSL) connection instead of a standard DSL connection. What this means is that at your home, your upload speed will be much less than the download speed. This is because an average home (one not running a web server) typically does not need to upload that much data in comparison to downloading data. This is not the case for your server. For DSL connections, your ISP will most likely charge extra. (I tried to research DSL prices from my ISP's website, but it 404'ed. It also happens to be the country's fourth largest ISP. The irony would have killed me, but since it is a government-run company which is practically bankrupt, it's a wonder it's still running.)

[Now, you may be wondering how come I am saying all devices are connected using a set of numbers and yet you can type eyekay49.blogspot.com rather than a set of numbers. That is due to DNS, a piece of pure wizardry which we will discuss in detail later.]

Now you have a server, a DSL plan and hopefully a place to keep the server in. That's it! Thank you for reading this article, and -

[The Lord, obviously 'ticked off' as modern people would say, gave Eyekay a slight electric shock for committing a crime and then not even completing it's purpose.]

Umm... I mean uhh... Obviously not! We still haven't installed any software yet! 

To make your server actually a server, you need to install a set of software called a software stack to your server. There are many software stacks available such as LAMP (Linux, Apache, MySQL, PHP), WAMP (LAMP but with Windows instead of Linux), MAMP (Mac), WIMP, FAMP, FAPP, XAMPP etc. which are all basically the same. A simple LAMP server will be quite enough for your server. 

[To those of you haven't yet figured out this isn't a very serious article but rather just a short of hitch-hiker's guide to the internet, this isn't a very serious article but rather just a short of hitch-hikker's guide to the internet. There are a number of tutorials out there on how to install LAMP, and also there is also a thing called port forwarding which you need to do in your router to make your server public. I would recommend you to search these things after reading the rest of the article.]

Now all is ready. You have a server, you have acquired a DSL plan with a static IP and you have installed a LAMP server. Now all you need to do is make the content of the website either by hand, spending the rest of your life writing all the HTML code yourself, or installing something like WordPress or Dreamweaver. I would recommend writing all the code by hand, of course.

[The Lord readied His bolt of Thunder, ready to shoot at sight the puny mortal at this point.]

Your website is now complete, but there is one key element missing - people need to enter a set of numbers to access your website, rather than just entering myshop.in or something similar. As I mentioned earlier, there is a service called the Domain Name System (DNS) which comes to play here. (A domain name is the text we enter while referring to a specific IP address, like eyekay49.blogspot.com or minetest.net.)

Each domain name is set to point a specific server which is recognized by it's IP. To understand how the DNS and DNS servers work, let's buy a domain name.

Just for information : URL, or Uniform Resource Locater, is the domain name or IP address we put in the address bar of the browser.

Domain registrars are companies which sell domain names. The 'domain' refers to the stuff after the last dot in the URL like .com, .net, or country-code domains like .uk, .in etc. or the strange new domains popping up like .game and .club. The domain name is any string followed by a domain which points to a specific IP.

Once you buy a domain name from a registrar, they will ask you where to link the domain name with, where you give your static IP. If you used a dynamic IP, this is where you would get stuck, as you will need to keep updating it each time you start your server.

Once you register this data with them, they will update a few DNS servers about it. 

Now, DNS is a decentralized service. It works by having many DNS servers around the world which store the DNS data about which domain name goes to which IP. Once your registrar updates a few DNS servers, all the servers worldwide would slowly get this information and update to make the change. This usually take a day or two worldwide (which is why it's called a decentralized service.)

With all this done, your website is finally ready.

Wait, what about the easy method you mentioned in the beginning?

Of course, there are many website hosts worldwide which would do all this for you for free - creating a server, domain name, even usually giving a website builder with it too. But where's there fun in that? ~eyekay

[Eyekay was struck by lightning.]

1 comment: