Lighttpd is an open-source web server that powers numerous websites in the world. Lighttpd focuses on providing increased performance and a light memory footprint. Lighttpd works with the popular MySQL database server (MariaDB) and the PHP server-side dynamic scripting language.
Thanks to the low hardware requirements, it manages high data traffic even on poorly performing systems. It is a strong alternative to the more resource-intensive LAMP stack but otherwise very powerful.
This tutorial will show you how to install Lighttpd on Ubuntu 18.04 server.
Prerequisites
Before we get started, you will need the following.
- An Ubuntu 18.04 server
- Access to the root user account or an account with Sudo Privileges
- Basic understanding of Linux commands
We assume you have already connected to your server via an SSH connection. Good! Let's start.
Step 1: Installing Lighttpd
We will update our repository to ensure the latest version of Lighttpd is on our system. To do that, enter the command below.
sudo apt-get update
apt-get upgrade
Now run the following command to install Lighttpd directly from the Ubuntu repository.
sudo apt install lighttpd
Once the installation is completed, you are ready to start the service. However, before we start the service, we should make some configuration changes. Open the lighttpd.conf file using the nano text editor.
nano /etc/lighttpd/lighttpd.conf
It is necessary to enable Lighttpd to listen to IPv4 addresses. To do this, scroll down to the section which shows ‘bind to a specific IP’ and add the following:
##
## bind to a specific IP
##
#
server.bind = "localhost"
$SERVER["socket"] == "0.0.0.0" { }
Save the file and exit the text editor. Ctrl + x > y > Enter
Now we have everything ready to activate Lighttpd on the server. Enter the following command to start the service:
sudo systemctl start lighttpd
We will also enter the below command so that the service will also start automatically during a system startup:
sudo systemctl enable lighttpd
To check the status of the service, run the following command:
systemctl status lighttpd
Lighttpd is ready to be used. Before that, you should make some configurations on your firewall.
Once your firewall is configured, it's a good idea to test your server setup. If you're unsure how to capture a screenshot of your Ubuntu system for documentation or troubleshooting, check out our guide on how to take a screenshot in Ubuntu for quick steps!
Step 2: Firewall configuration
In the case of the firewall on your system, it is usually set to not accept HTTP and HTTPS traffic. This will be a problem since Lighttpd works using these protocols. Therefore, to allow HTTP (port 80) and HTTPS (port 443) traffic to your server, you need to allow the respective ports from your firewall:
sudo ufw allow 80
sudo ufw allow 443
Once this is done, you can test the operation of the server by visiting your browser and entering the following command.
http: //server_ip_address
If you see an output similar to this, you have successfully made the configurations for Lighttpd.
Step 3: Installing MariaDB
Usually, Lighttpd works together with the MariaDB database, which is the MySQL replacement for CentOS. You can install the database server using the following command:
sudo apt-get install mariadb-server
Once the installation is completed, we will need to start the service as it doesn’t start automatically once the installation completes. Enter the following commands to start the service on your server and enable it to start on server boot up:
sudo systemctl start mariadb
sudo systemctl enable mariadb
If everything was set up correctly, you could enter the following command to get the status of the MariaDB server.
sudo systemctl status mariadb
You should get the following output. For a more in-depth view of the installation, check out our MariaDB installation guide for CentOS.
For users looking to explore more options, check out our guide on the best Ubuntu-based distros for a seamless experience with Lighttpd and other web servers.
Step 4: Install PHP and PHP extensions
Now we will install PHP and all the necessary PHP extensions. To do this, run the following command on your terminal:
sudo apt-get install php7.2 php7.2-fpm php7.2-mysql php7.2-cli php7.2-curl php7.2-xml php7.2-mbstring php7.2-gd
Once PHP 7.2 has been installed, we need to enable PHP-FPM and FastCGI for Lighttpd. We will open the configuration file using the nano text editor:
sudo nano /etc/php/7.2/fpm/pool.d/www.conf
Scroll down in the configuration file and locate this section:
listen = /run/php/php7.2-fpm.sock
Now replace this part with the following:
listen = 127.0.0.1:9000
All is set in the PHP-FPM files. Save the file and exit the nano text editor by pressing Ctrl + x > y > Enter.
Now we will edit the configuration file of FastCGI using the below command:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
Find the following lines:
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php.socket",
Then replace those values with
"host" => "127.0.0.1",
"port" => "9000",
All is set in the FastCGI config files. Save the file and exit the nano text editor by pressing Ctrl + x > y > Enter.
Now we will go ahead and enable both FastCGI and FastCGI-PHP modules:
sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php
Restart Lighttpd and PHP7.2-FPM to apply all the configuration changes:
sudo service lighttpd force-reload
sudo systemctl restart php7.2-fpm
That’s all there is to it – in this tutorial, we learned how to install Lighttpd on an Ubuntu 18.04 Cloud VPS and enable MariaDB, PHP and PHP-FPM with FastCGI support in Lighttpd.
Conclusion
We hope you enjoyed this tutorial on installing Lighttpd on the Ubuntu server. If you're looking to host your own Ubuntu VPS for more control and flexibility, or if you need to set up an Ubuntu RDP server to manage your server remotely with a graphical interface, we have guides available to help. Should you encounter any issues during the installation process or need assistance with additional configurations, don’t hesitate to contact us in the comment section below. We're here to assist!
People also read: