Welcome to small tutorial series to host web server on your own Linux machine. This series of articles will teach how to set up a web server on a Linux computer and make it available online. In this article, we will install all the required tools to set up a web server. The website we’ll host on our personal computer can be accessed from around the globe.
Table of Contents
Hosting web server
Hosting a web server is an essential aspect of running a website. A web server is a computer that stores and delivers website content to users who request it through their web browser. Hosting a web server involves setting up a computer with web server software and configuring it to deliver user content.
When it comes to hosting a web server, several options are available. One of the most common options is to use a web hosting service. Web hosting services provide a range of hosting plans designed to meet the needs of different websites, from small blogs to large e-commerce sites.
A web hosting service typically provides a server environment that is preconfigured with the necessary software, such as a web server (e.g. Apache or Nginx), database server (e.g. MySQL), and scripting language support (e.g. PHP). The hosting service also provides tools and resources for managing and maintaining the website, such as website builders, control panels, and backup services.
Another web server hosting option is hosting it on your hardware. This requires purchasing or leasing a server, installing the necessary software and configuring it to deliver website content. Hosting a web server on your hardware can give you more control and flexibility, but it also requires technical knowledge and regular maintenance.
Regardless of whether you use a web hosting service or host your web server, there are several factors to consider when selecting a hosting option. These include –
- Reliability: The hosting option you choose should be reliable and ensure that your website is always available to users. This requires selecting a hosting provider with a reliable infrastructure and uptime guarantee.
- Security: Hosting a web server also requires implementing security measures to protect your website from attacks, data breaches, and other security risks. This requires selecting a hosting provider with robust security measures and tools.
- Performance: Your hosting option should also deliver fast and responsive website performance. This requires selecting a hosting provider with a fast, reliable network infrastructure and optimized server environment.
- Support: The hosting provider you choose should also provide comprehensive support services, including technical support, customer service, and resources for managing and maintaining your website.
How to Host web server
The Linux distro we’ll be using for this setup is Ubuntu. However, this can be implemented in any Linux distro. At the end of this tutorial, you can host your PHP and MySQL-based website on your own Linux machine.
After following this tutorial, you must set up your web server. The real challenge, however, is protecting your server from thousands of active threats. If you’re not an expert in managing Linux servers, it is strongly advised to use web hosting services that take care of security.
The tutorial is divided into two parts. In the first part, we discuss the essential components and their installation. In the next section, we shall write sample PHP code for an essential website and host it under the apache2 webserver.
Prerequisites To host Web Server
To set up a web server on your own Linux computer, we’ll require the following three components to be installed –
- Apache2: apache2 is open-source HTTP server. It is still the most popular web-server used worldwide today.
- php and php sqlite component: PHP is a server-side scripting language. PHP and its component will help you to interact with a backend mySQL database for your website.
- mySQL: mySQL is a database solution in which you shall be storing your data in the table.
If you have installed the above components, you can skip this part and move to the next part here.
How To Setup A Web Server
Apache is open-source web-server software that powers much of the web today. It is maintained by apache-http-project. Explore more here.
Open your terminal and type in commands –
sudo apt-get update sudo apt-get install apache2
To check if apache2 is installed properly –
sudo service apache2 restart
Open your web browser and open the link using ip–address of your server. If you are practicing locally, you can type in localhost or
127.0.0.1. By default, Apache runs on port 80. You need not provide the port number in your browser.
127.0.0.1 Or ip-address of your server. For example
It should show a message as it works! To change the port address, you need to edit the configuration file at
/etc/apache2/ports.conf and change the Listen 80 to your desired port number. After the edit, you need to restart the apache2 server.
Restart web server –
sudo service apache2 restart
MySQL is the database management solution that helps you to store and retrieve data in tables. Since we shall be using PHP in this tutorial, we will also need to install the php8-mysql component.
sudo apt-get install mysql-server php8-mysql
To check if MySQL is installed properly, open MySQL on terminal with the command –
If you set the password during installation, open with -p parameter –
mysql -uroot -p
PHP is an open-source web server scripting language. It is a back-end scripting language that will help you to interact with the MySQL database. For example, if you want to show the tabular employee list stored in your MySQL database on your website, with the help of PHP, you can interact with MySQL, retrieve the employee list and render it on the HTML page.
php8-mysql library helps you in this regard. PHP provides multiple auxiliary libraries for different needs.
php8-mysql is one among them, and we shall use that in our tutorial.
To search the available libraries.
apt-cache search php8-
To install PHP and php5-mysql.
sudo apt-get install php8 libapache2-mod-php8 php8-mcrypt sudo apt-get install php8-sqlite
To check if PHP is installed correctly, make file
/var/www/html/info.php and add the following content to this file -
<?php phpinfo(); ?>
sudo service apache2 restart
Open the web browser and navigate to
127.0.0.1/info.php. If you are using a remote server, replace IP with the server’s IP address. Upon success, you should see the following webpage –
Well, that’s it. You are ready with the basic setup required for this tutorial. In the next section, we code a sample webpage in PHP that would store and retrieve the information in the MySQL table. Then we host it under apache2. If you like this tutorial, share the tutorial with your friends and let them set up their own web server.
Continue reading to learn how to install WordPress on our own server.
Frequently Asked Questions
How do I host a webserver on my computer?
Hosting a web server on your computer involves several steps, including setting up the necessary software, configuring your network and firewall settings, and configuring your web server settings.
What are the 3 types of web hosting?
The 3 main types of web hosting are the shared hosting, VPS, and dedicated hosting server.
What Is Web Hosting?
Web hosting is a service that allows individuals and organizations to make their websites accessible on the internet. When a website is created, its files, images, and other content are stored on a web server.
What is the cheapest way to host a website?
The cheapest way to host a website depends on various factors, such as the type of website, the expected traffic, the level of customization required, and the desired level of support and reliability. Here are some low-cost options to consider – Shared hosting, cloud hosting, and DIY hosting (described in this article).
How much does it cost to host a website?
The cost of hosting a website depends on various factors, such as the type of hosting, the level of customization and support required, the size and complexity of the website, and the amount of traffic it receives.
Nice tutorial, but i’ve another problem, what if i shut down my machine? How my website will respond online if my machine is off. Please enlighten me.
If you want your site to be available 24/7, you must leave it on 24/7
If I wanted to host a web page without putting it out on the world wide webs, supposing I have a router with DDNS address assigned and a vpn server running on said router, could I do this and then just give those I want to be able to access the site a login for the VPN and once on my network set things up such that they would then get directed to my website?
what about hosting a server on the world wide web and not just your local instance?
You need to open the port that Apache is listening on Afterward you can access it from using your public ip. Hopefully its static if not have a dns like no-ip.com running on the same server.
Where is the next page? The next page button just refreshes the current page.
Updated! Here is the URL of the next part –
Hi this is kind of of off topic but I was wondering if blogs use WYSIWYG editors or if you have to manually code with HTML. I’m starting a blog soon but have no coding know-how so I wanted to get advice from someone with experience. Any help would be enormously appreciated!
Hi, Most people use WYSIWYG editors since it’s default in WordPress. Manually writing HTML is hectic and will cause problems if you don’t have preview feature.