Did you know that you don’t necessarily need a hosting company to get your website online? A hosting company does nothing more than provide computers on which you can load and store your data and which are then permanently online.
Sure, the hosting companies’ computers are bigger, more expensive, and probably more powerful than your old home computer. But do you absolutely need this computing power to run your company website or blog? No, your home computer is definitely enough for your personal website or an old computer that is standing around the corner and gathering dust.
The most important thing when hosting a website is actually only that the computer runs stably, your personal hosting computer has to be online 24 hours a day and seven days a week to make your website available.
It is also an advantage if the computer has a fast hard drive and enough RAM to ensure fast data transfer. Of course, you should also have a stable and fast internet connection at home and a modern internet router.
That’s actually all you need to host your own website and save yourself the expensive hosting fees.
Here I would like to list again everything you need to host your own website on your own home computer or laptop.
It’s actually not much you need. Basically, you only need very little hardware and some software, and a little time and patience, that’s it!
Of course, you need a computer on which you can store the files and databases of your website and make them available to the world. This computer does not have to be state-of-the-art. It is important that the computer runs stably, and has a modern and fast hard drive installed, if possible an SSD hard drive, but a normal HDD is usually sufficient.
The computer should also have enough RAM installed to be able to realize fast computing processes. For most computers or laptops, anywhere from 16GB of RAM to 32GB of RAM will do.
Your computer should also have at least Windows 10 as the operating system. Since the programs I will show you here will require Windows 10 as a minimum requirement.
In addition, your computer should have a stable connection to the internet or your internet router. This connection to the router can be via a LAN cable or WLAN.
Of course, we need software tools to help us host our own website on our own computer or laptop and bring it to the internet. This software that I will show you is all free. So you don’t need to spend any money on software, that’s a good thing 😉
This software enables your website to provide data and databases. How exactly this software works and how you have to configure these tools, I will of course explain to you in this article!
To configure your website, you need a modern internet router that allows you to log into the backend of the router and make various configurations there.
However, most modern routers have these setting options. It is important that you have the username and password to log into the backend of your internet router.
Now all you need is a domain name (www.YourNewDomain.Com). Without a domain, your website can still be reached on the internet, but only via the individual IP address.
But a personal domain name doesn’t cost much. With most providers, such as GoDaddy or NameCheap, you can buy a domain name (without hosting) for as little as $10 per year. (But when buying your domain, be careful not to order the hosting, after all, you want to do the hosting yourself, at home, on your own computer.)
That’s all you need. I will now explain everything else to you in this tutorial.
Of course, the first thing you need is a website. Of course, if you already know how to create a locale website, you don’t need to read this section and can jump straight to the next section.
Since I think WordPress is the best platform to create a website, I decided to explain how to create a WordPress website on your local computer.
Of course you can also create and use a website with Joomla, Drupal, or ProcessWire. But it would be too much if I explained all CMS platforms here. Therefore, I limit myself here to the topic of WordPress. If you want to learn how to create a local website with other open source CMS, you can of course also find the information in our blog.
What exactly is XAMPP server control panel? XAMPP enables the installation and configuration of the Apache web server with the MariaDB or SQLite database and the Perl and PHP scripting languages (with PEAR). The X (“cross-platform”) stands for the different operating systems on which it can be used. XAMPP also includes other useful tools such as the FTP server ProFTPD or FileZilla Server, the mail server Mercury, phpMyAdmin, Webalizer and OpenSSL.
The aim of XAMPP is to achieve a particularly simple installation. There is a version with an installation routine for Windows systems, and a version with detailed installation instructions for the other supported operating systems. You get server tools in a shorter way, which alone would sometimes require quite long configuration times.
XAMPP is not intended for use as a productive system (e.g. as a public webserver), but for developers who want to set up a compact test system as quickly as possible. This also explains the deliberately accepted limitations with regard to the security of XAMPP.
However, XAMPP is ideal for bringing a website online and thus managing the webserver. Another advantage of XAMPP is that it is very easy to use. Once you know the functions, you can work with XAMPP without any problems.
Step one: Download the XAMPP software to your computer, that you want to use as a hosting server.
Step two: Now please install XAMPP on your computer.
Select all options and click on next.
Now all files will be installed on your computer. Also make sure to give full network access to the program if a pop up opens and ask you for permission.
After the installation is complete, launch the control panel.
This is what your XAMPP control panel looks like.
If you see any errors like these in the picture above there are several solutions for this problem.
Make sure to start this program as an administrator (give the program admin rights). To do so, you have to close the program, search for the .exe file, and right-click on the file. Now choose the option “Run As Administrator”.
Another common problem is, that the XAMPP program conflicts with an other program that is using the same port, like Skype or Microsoft Teams or a virus scanner or malware scanner program on your PC or laptop. Make sure to close all other programs or deinstall unused programs.
If this does not help, you can change the port for this program. Out of the box, this program uses port 80, which many other programs use as well. So we have to change the port.
You can change the port number by opening the “httpd.conf” file.
In this file that opens, search for #Listen 126.96.36.199:80 (or some other random numbers).
Please change the port numbers to a random port like 123.
Change it to: #Listen 188.8.131.52:123
Next, you have to search another line of code in the same file.
Search for: ServerName localhost:xxx and set it to the port number you gave in the other code lines, like 123 in this case. Make it ServerName localhost:123
Then save the file!
Now you have to open another file. Open the file “httpd-ssl.conf”.
Search for Listen 443
Change this to a random port number like: Listen 1443
In the same file, you must search for another code line. Search for “<VirtualHost_default_:443>” and change the number to the number you gave to the other code snipped from above.
One more code line to change: Search for ServerName www.example.com:443 or ServerName localhost:443 – Change these port numbers as well!
Now save and close this file!
One more file to modify!
Now click on the “Config” button in the top right corner of the program. Click on “Service and Port Setting”, here you can click on the “Apache” tab and enter the new port in the “main port” field and “SSL port” file. Then click on “Save”.
Now everything should work fine. If not, open and close the program, start it as Administrator or even reboot your computer.
Please visit the website of WordPress and download the latest WordPress version to your computer.
Now we have to copy the files of our WordPress website to the right folder.
Please go to the folder where WordPress has saved the files (your local downloads folder), the zip file, and copy/extract these files to the “htdocs” folder of XAMPP.
Please copy all of your website files to the htdocs folder. This folder is used to publish your website.
Now that you have copied all files to your computer you can start designing your website. In order to get access to your website, we have to start the Apache server and the MySQL database. Click on “Start” for both. Make sure they are running.
Now we have to create a database for our WordPress website.
In the MySQL tab click on “Admin” and then the MySQL database will open.
Create a new database:
Go to the “Databases” tab and enter a name for your new database. In our case, we name the database “wordpress”. And then click on “Create”.
Now you created your new database. You don’t need a password or a username right now. The standard username and password are given by XAMPP. Username: root and NO PASSWORD!
Open the WordPress installation by starting the WordPress installation via your browser.
Open a new browser tab and type in “localhost”
Now you will see the standard WordPress installation guide.
Use the database name you gave in the previous step. The standard username is: root and the password is not existing. (But you can change that later on when we installed WordPress completely)
Now give your new WordPress website a title, an admin name, and a password.
Now you can design the website according to your wishes and fill it with content. After you have designed your website according to your wishes and ideas, I will show you how you can make your website accessible to the public.
How important is it that your website can be found via IP address? Localhost doesn’t do much if we want to access the website from another computer or outside the network, because “localhost” means just your computer.
Now we have to find your IP address to enter your newly created website from other computer or phones or even outside your home network.
First go to Network and Internet or search for it in the Windows settings.
Then click on “Properties”
Now you can see at the end of the page your IP address.
With this IP address, in my case: 192.168.178.51, I can access the new created website. This IP address we can type into the browser and access our WordPress website, instead of entering “localhost”.
Now you can reach your website via your internet IP address. But what if you are not connected to your home network, for example if you are outside with your smartphone and want to reach your website that you host on your home computer.
Of course that doesn’t work. Because your IP address is only accessible within your network. For this reason we now have to set up a public and static IP address.
First go to “Network Connections”
First we need to assign a static IP address to your computer!
After you clicked on “Properties” you will see this window. Here you click again on the “Properties” tab to go to the connection settings.
After you clicked on “Properties” you will get to another screen.
Here you can select “Internet Protocol Version 4 (TCP/IPv4)” and then click on “Properties” to make the necessary changes.
In this window you have to click on “Use the following IP address”. Here enter your IP address. This IP address depends on your computer and connection, this address is different from computer to computer. The Subnet mask is always the same: 255.255.255.0, the default gateway address is: 192.168.1.1
Next you have to enter the DNS settings. Click on “Use the following DNS server addresses”.
Here you enter: 192.168.1.1 – the alternative field you can leave blank.
Then click on “OK” to save these settings!
Now you set a static IP address for your hosting computer.
Now that we created a static IP address on your hosting computer we have to make your IP address public. In order to make your website accessible outside of your home network, we now have to make a few settings on your router.
Here I explain to you exactly how to make the settings to publish your IP address on the world wide web using the internet router and making your hosting computer/website accesible.
Of course, every router has a different interface, but the settings and options are almost always the same. Every modern internet router has these functions. Sometimes all you have to do is do a search or check your internet router’s manual for where these functions are located. You can also go to your router provider’s website and download your router’s PDF manual from there.
Use the address or IP address of your router to access the dashboard of your router. These infos you can find maybe on the back of your router or in the manual of your router.
Now we have to find the settings for the public IP address. Every router has its own public IP address.
Now we have to search for the settings “Forward Rules” or “Port Forwarding”.
Go to “Port Mapping Configuration”. This is where we add a new rule, so when someone enters our public IP address in there browser, he gets forwarded to the hosting computer IP address.
Now you have configured your IP addresses. When someone enters your public IP address in there browser, he will gets forwarded to the internal IP address or your hosting computer.
Now your website is online and can be found on the internet! If you host your new website from your home computer, you only have the problem that your website can now only be found and accessed via IP address.
Nobody wants to type your IP address into their browser to find your website, so you should now connect your local hosting computer to a domain name (URL).
You can also buy your domain name from other providers. You are of course free to decide that.
Now we have to connect the domain with the public IP address of your router. The domain name redirects all inquiries and visitors to your local computer and your domain can be reached worldwide.
If you bought your domain name you can forward the domain name to a specific IP address. Here we want to redirect everyone who enters our new domain name to our public IP address, which then redirects to our internal IP address.
For example, if you bought your domain name at GoDaddy, its really simple to do. Select your domain name and search for Forwarding. Then click on “Manage”, in the next box you can enter the public IP address of your router and hit save.
Thats it! Now if someone enters your domain name, he will get forwarded to the IP address.
If you’re using an other domain provider, you can search in the FAQ’s of the company or simply ask the support service where you can find the forwarding settings.
Because your website is now hosted on your computer at home, you have the disadvantage that the connection can take longer than if you host your website with a hosting company that has multiple hosting servers around the country, or around the world.
Anyone who calls up your website or visits your website must now connect to your computer to access the data on your website. Of course, this can take longer depending on the location or connection speed.
But there is a relatively simple solution to this problem too!
To increase the connection speed to your local hosting computer we use a CDN network.
A content delivery network (CDN) is a group of geographically distributed servers that accelerate the delivery of web content by bringing it closer to where users are. Data centers around the world use caching. This is a process that temporarily stores copies of files to allow you faster access to Internet content from a server near you using a web-enabled device or browser. CDNs store content such as webpages, images, and videos in proxy servers close to your physical location. So you can make your website available very quickly, no matter where the visitor comes from.
For this, we use the free service from Cloudflare. Cloudflare offers a free CDN service that we connect to your website.
Here are the instructions to connect your local hosting computer to Cloudflare.
Go to Cloudflare.com
Open a new account.
Enter your domain name and select the free plan.
Cloudflare will now give you two new Nameserver addresses.
You need to change the nameservers in your domain to point to Cloudflare (use the ones they provide). Because Cloudflare is a full proxy service, you basically point your domain to Cloudflare. Cloudflare then points your domain to Kinsta. There’s no downtime when you switch your name servers.