Welcome to small tutorial series of hosting a website on Linux machine. This series of articles will teach how to setup a web server on the Linux computer and make it available online. The website we’ll host on our personal computer can be accessed from around the globe. In this article(Part 1), we are going to install all the required tools to a setup web server. So let’s get started and start our own setup web server.
The Linux distro we’ll be using for this setup is Ubuntu OS. However, this can be implemented in any Linux distro. At the end of this tutorial, you will be able to host your PHP and mySQL based website on your own Linux machine. The tutorial is divided into two parts. In the first part, we discuss the basic components and their installation part. In the next section, we shall write sample PHP code for a basic website and host it under apache2 web server.
Prerequisites To Setup Web Server
To setup 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( add link 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: https://httpd.apache.org/
Open your terminal and type in commands –
sudo apt-get updatesudo 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 and hence you need not provide the port number in your browser.
127.0.0.1Or ip-address of your server. For example18.104.22.168
It should show a message as it works! To change 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 edit, you need to restart the apache2 server.
To restart apache2 web server - sudo service apache2 restart
mySQL is the database management solution that helps you to store and retrieve data in tables.
Since in this tutorial we shall be using php, we will also need to install php5-mysql component.
sudo apt-get install mysql-server php5-mysql
To check if mySQL is installed properly, open mysql on terminal with 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 in your website, with the help of PHP you can interact with mySQL, retrieve the employee list and render in html page. php5-mysql library helps you in this regard. PHP provides multiple auxiliary libraries for different needs. Php5-mysql is one among them and we shall use that in our tutorial.
To search the libraries that are available.
apt-cache search php5-
To install PHP and php5-mysql
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt sudo apt-get install php5-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 web browser and navigate to
127.0.0.1/info.phpIf you are using remote server replace ip with 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. We’ll publish the next part very soon so keep visiting. Thank you!