how to make your own web hosting server linux

How To Make Your Own Web Hosting Server Linux With 4 Easy Steps

If you wish to make your own web hosting Linux computer, you are at the right place to completely understand the process.

To make Linux based web hosting that you can run from home you would need the following

  • A computer with Linux installed.
  • Install Apache2 which is an open-source HTTP server.
  • Install PHP and PHP SQLite components that will help you to interact with the backend database for your website.
  • Install MySQL which will store your data in the tabular form.
  • Install Ngrok

Let’s go through step by step procedure to make your own web hosting on Linux

How To Make Your Own Web Hosting Server On Linux Computer

Step #1. Install Apache2

Apache is an open-source web server program that helps you power your website. It is the most popular web-server being used worldwide. 

It comes installed and configured on most of the Linux Systems. You must check if it is installed on your system or not.

You can use the following command in the terminal of Debian based Linux OS.

# apt-cache policy apache2 

This command will return the following if apache web-server is already installed

apache2: 

 Installed: 2.2.22-13 

 Candidate: 2.2.22-13 

 Version table: 

 *** 2.2.22-13 0 

If you don’t get this output you can move ahead to install the apache2 on your system.

Open your terminal and type the following commands

To first update the Local Packages

sudo apt update

Then type this command to install apache2

sudo apt install apache2

After running these commands you will get the following screen that asks for confirmation.

Install apache2

After you confirm the system will automatically complete the installation.

http://local.server.ip

Your web browser must open a page labelled “Apache2 Ubuntu Default Page” as shown in the image below. This would confirm the proper installation of apache2 on your system.

apache2 installation

Step #2. Install MySQL

MySQL is a database management server program that helps you store and retrieve data in tables. Some Linux systems come with pre-installed MySQL. 

So, you need to first check that by using the following command.

# whereis mysql

If MySQL is already installed it will return the location otherwise you can move ahead with installing it.

Open the terminal and use the following commands

To first update the Local Packages

sudo apt update

Then type this command to install MySQL

sudo apt install MySQL-server

After you give the confirmation on the following screen the system will automatically install MySQL.

Install mysql

After the installation is complete, the MySQL server should start automatically and you can check using the following command.

systemctl status mysql.service 

This will return the status of the SQL server. If it is not running for some reason you can use the following command to start MySQL server

sudo systemctl start mysql

You can use the following command for securing your MySQL server by setting a Password.

sudo mysql_secure_installation

This command will give you the option to set the password as shown below. You would need to give confirmation by typing “y” for setting a password. 

Next, you will be asked for entering an 8-letter password that will secure your MySQL database from unauthorised access.

mysql_secure_installation

Step #3. Install PHP

PHP has multiple program libraries used for different needs. Php5-MySQL is one among them that you will use while making your own hosting.

You need to run the following command to install PHP for your hosting needs

$ sudo apt-get install php5 libapache2-mod-php5

The system will automatically install PHP after you give the necessary permissions.

install php

Now you would need to restart your Apache to see the changes made and run PHP.

Use this command in the terminal to restart Apache

$ sudo service apache2 restart

And check the status of apache server by using

$ sudo service apache2 status

 apache2 status

Now you need to check the installation of PHP

For that, you need to create a file called  “info.php”

You can use this command

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

And then insert the following code in the file

<?php

phpinfo()

?>

Now, You can check whether PHP running properly by opening browser and opening this

http://your-ip-address/info.php

You will get the following page that confirms the PHP installation.

php confirmation page

Step #4. Using Ngrok

Now you need to set up an IP address for your Linux Web Server. As you might be aware that IP address keeps on changing and setting a Static IP address is one solution. But setting static IP has its own problems like IP conflict, Port forwarding that need expert understanding to troubleshoot.

You should rather use changing IPs with the webserver and allot a URL to access them. For that, you can use “ngrok” that will help you update new IP with the website.

Ngrok is the easiest wat to make localhost available online. Although it is a paid service you will get the basic services for free.

Ngrok creates a secure tunnel to your localhost that binds your IP with the URL. When someone visits your URL all the requests would be forwarded to your Localhost. If the IP address changes Ngrok will quickly update it on the website keeping your website up for the most time.

Now you need to create a free account on the Ngrok website and download the Ngrok client for Linux from here. You should download the 32-bit version or 64-bit version depending upon your system and requirement.

ngrok

After you download, you need to unzip the files then you can use the following command in terminal to install Ngrok.

sudo snap install ngrok 

Now you can connect your account. You can use this command to add your account’s authtoken to Ngrok.

./ngrok authtoken <YOUR_AUTHTOKEN>

Your authcode would be mentioned in your account on Ngrok website

Now you can use this command to create a tunnel to your localhost

./ngrok http 80

Now ​Ngrok will assign a URL to the localhost automatically. You can copy that use that in your browser to verify. To use your own custom domain you would need to use the paid version of Ngrok.

Now you have successfully hosted your own Linux website server on which you can now upload your websites for the world to see.

Final Words

Now You can use your own web server hosting for testing your websites that you are making. But it is not recommended to use own web server for running a website with regular visitors. You can also install Content management systems like WordPress on this hosting to build a website.

By using Ngrok you can easily bypass the painful process of setting a working static IP. Using the paid version of Ngrok you can also set up multiple tunnels.