OpenLiteSpeed is an open-source HTTP server developed by LiteSpeed Technologies. OpenLiteSpeed is a high-performance, lightweight HTTP server with a Web GUI administration interface.

OpenLiteSpeed can handle more than a hundred thousand concurrent connections while using lower resources (CPU and RAM). OpenLiteSpeed supports many operating systems like Linux, Mac OS, FreeBSD, and SunOS and can be used to run website scripts written in PHP, Ruby Perl, and java.

Apache and Nginx usually spotlight open-source web servers, but OpenLiteSpeed is a viable solution. Some of the most notable features of OpenLiteSpeed are:

  • An intuitive web-based admin GUI that displays real-time statistics.
  • Event-drive architecture with low resource overheads (RAM & CPU).
  • Efficient page caching.
  • Remarkable scalability thanks to worker processes.
  • Ability to handle thousands of concurrent connections without yielding load spikes.
  • Support for third-party modules and much more.

This tutorial will take you through the installation process of OpenLiteSpeed on CentOS 8. Let’s go!

Prerequisites

  • A server running with CentOS 8
  • Access to a root user account or an account with sudo privileges
  • A basic understanding of Linux commands
  • 2 GB RAM (recommended)
  • 25 GB free disk space (recommended)

Step 1: Add the OpenLiteSpeed repository

The first step before we go with the installation is to add the OpenLiteSpeed repository to your CentOS 8 server, as it is not available by default. To do this, enter the following command:

sudo rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el8.noarch.rpm

Now, update the system package list by using this command:

sudo dnf update

You can enter the following command to check the available repositories on your system. You will see the OpenLiteSpeed repository on the list.

dnf repolist

Step 2: Install OpenLiteSpeed

You can install the OpenLiteSpeed package using the DNF command below:

sudo dnf install -y openlitespeed

When prompted to continue, don’t forget to press y. Once the installation is completed, you can check the web server's status.

sudo systemctl status lsws

If the webserver is not active and running, you can start it by running the command:

sudo systemctl start lsws

Something to note is that the web server will be listening through ports 8088 and 7080. Port 8088 is for demo purposes, while port 7080 gives you access to the administrative UI.

You can confirm the ports that the web server is listening on using the netstat command as shown:

sudo netstat –pnltu

You should consider opening the respective ports for optimum working conditions if your firewall is running. Enter the following commands consecutively:

sudo firewall-cmd --zone=public --permanent --add-port=8088/tcp

sudo firewall-cmd --zone=public --permanent --add-port=7080/tcp

sudo firewall-cmd –reload

Step 3: Install PHP

We will install PHP 7.4 using the OpenLiteSpeed repository, colloquially referred to as LSPHP. However, some components will be taken from the EPEL repository and if you don’t have it, here’s the command to have it set up on your system:

sudo dnf install -y epel-release

Now that we have everything ready, let’s go ahead and install PHP and all the necessary components:

sudo dnf install -y lsphp74 lsphp74-mysqlnd lsphp74-process lsphp74-mbstring lsphp74-mcrypt lsphp74-gd lsphp74-opcache lsphp74-bcmath lsphp74-pdo lsphp74-common lsphp74-xml

Once all the PHP packages are installed, we can move forward to set up the MariaDB database server.

Step 4: Install MariaDB

We made a previous article on how to set up a MariaDB server on CentOS. You can check it out for a more in-depth explanation. Here’s the fast version of setting up MariaDB on CentOS 8 as part of the OpenLiteSpeed web server.

Run the following command to install MariaDB:

sudo dnf install -y mariadb mariadb-server

Once the installation is complete, start the MariaDB service and add it to the boot time.

sudo systemctl start mariadb

sudo systemctl enable mariadb

You can run the systemctl command to check the status of the MariaDB service:

sudo systemctl status mariadb

Now we will make some basic configurations by running the mysql_secure_installation. Enter the command below:

sudo mysql_secure_installation

Enter Y and continue the installation process by providing the relevant information for all the installation procedures.

Now we will move on to the next part of the installation process:

Step 5: Change the default Administrator password

OpenLiteSpeed, by default, sets the Admin’s password like ‘123456’; for obvious reasons, we need to change this password and set a very robust password. We will specify a different username from the default ‘admin’ username.

sudo /usr/local/lsws/admin/misc/admpass.sh

Now, you can specify a different username and password.

Step 6: Access OpenLiteSpeed webserver

Everything is set in place, and now we can go ahead and access the OpenLiteSpeed dashboard from the web browser. To view the demo page, enter the following URL on your browser and press Enter.

http://server-ip:8088

You will need to change the URL slightly to access the administrative section. Enter the following to access the administrative dashboard:

https://server-ip:7080

You will be prompted to enter the newly created username and password to Login into the server. Once you provide the credentials, you can enter the OpenLiteSpeed dashboard, as shown below.

Congratulations, you have successfully set up OpenLiteSpeed on your CentOS 8 server.

Conclusions

We have set up and made all the necessary configurations to use the OpenLiteSpeed web server. The six steps mentioned above will help you have a properly functioning web server running on your CentOS server, ensuring stability and optimal performance.

With the OpenLiteSpeed web dashboard, you will have the ability to configure virtual hosts, change the default port to another one, and explore many other features to customize your server. If you encounter any issues or have feedback, feel free to let us know in the comment section below. We're here to help with any CentOS server-related queries.

People also read: