Install Lighttpd with PHP and MariaDB on Rocky/AlmaLinux

Lighttpd is an open-source, high-performance, super-fast, flexible, and simple to configure secure web server that provides support for the broad technologies that include PHP, FastCGI, Auth, SSL, URL rewriting, reverse proxy, load balancing, and much more.

Lighttpd is extremely efficient, lightweight, and offers optimized speed-critical environments with lower memory and CPU usage than other popular web servers like Apache and Nginx.

[ You might also like: The 8 Best Open Source Web Servers ]

Lighttpd graciously operates many concurrent connections, has a small memory footprint, and provides security and robustness. It is also platform-independent offering native performance for Unix, Linux, and Windows systems.

In this article, you will learn how to install the Lighttpd web server with MySQL and PHP support in RockyLinux and AlmaLinux.

Installing Lighttpd Web Server in Rocky Linux

The simplest way to install Lighttpd is by adding the EPEL repository and updating the software list using the following commands.

# yum -y install epel-release
# yum -y update

Now you’re ready to install Lighttpd from the EPEL repo.

# yum install lighttpd
Install Lighttpd in Rocky Linux
Install Lighttpd in Rocky Linux

After installing Lighttpd, you need to start, enable the service to automatically start at boot time, and make sure to verify the status using the following commands.

# systemctl start lighttpd
# systemctl enable lighttpd
# systemctl status lighttpd
Check Lighttpd Status
Check Lighttpd Status

Next, check the version of Lighttpd installed on your system using the following command.

# lighttpd -v

lighttpd/1.4.55 (ssl) - a light and fast webserver

If you are running firewalls on the system, make sure to open HTTP and HTTPS traffic on your firewall.

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

Now open your browser and navigate to the following URL to confirm that your Lighttpd web server is running.

http://Your-Domain.com
OR
http://Your-IP-addr
Check Lighttpd Webpage
Check Lighttpd Webpage

The default configuration file for Lighttpd is /etc/lighttpd/lighttpd.conf and the document root directory is /var/www/lighttpd/.

Installing MariaDB in Rocky Linux

Similarly, you can also install MariaDB from the default repository as shown.

# yum -y install mariadb mariadb-server
Install MariaDB in Rocky Linux
Install MariaDB in Rocky Linux

After installing MariaDB, you need to start, enable and verify the status as shown.

# systemctl start mariadb.service
# systemctl enable mariadb.service
# systemctl status mariadb.service
Check MariaDB Status
Check MariaDB Status

Once MariaDB is running, you need to secure installation by issuing the following security script command.

# mysql_secure_installation

The script will ask you to create a new root password, remove anonymous users, disable root login remotely. remove test database, and reload the privilege table.

Secure MariaDB in Rocky Linux
Secure MariaDB in Rocky Linux

Once you secured MariaDB installation, try to connect to the MariaDB shell from the terminal using the new password.

# mysql -u root -p
MariaDB [(none)]> show databases;
Connect MySQL Shell
Connect MySQL Shell

Installing PHP and PHP-FPM with FastCGI on RockyLinux

To install PHP with the PHP-FPM and FastCGI support, you need to install PHP along with the needed modules as shown.

# yum -y install php php-mysqlnd php-pdo php-gd php-mbstring php-fpm lighttpd-fastcgi
Install PHP in Rocky Linux
Install PHP in Rocky Linux

Next, open the php-fpm configuration file.

# vi /etc/php-fpm.d/www.conf

Set the user and group to Lighttpd as shown.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = lighttpd
; RPM: Keep a group allowed to write in log dir.
group = lighttpd

Also, by default php-fpm uses listen = /run/php-fpm/www.sock socket, you need to make this line to listen = 127.0.0.1:9000 as TCP connection.

;listen = /run/php-fpm/www.sock
listen = 127.0.0.1:9000 

After making changes, you need to start, enable and verify the status of php-fpm.

# systemctl start php-fpm.service
# systemctl enable php-fpm.service
# systemctl status php-fpm.service
Check PHP-FPM Status
Check PHP-FPM Status

Enabling PHP and PHP-FPM with FastCGI in Lighttpd

To enable FastCGI support in PHP, you need to make the configuration changes in three files as follows.

Open first file /etc/php.ini.

# vi /etc/php.ini

Un-comment the following line that says a line cgi.fix_pathinfo=1.

cgi.fix_pathinfo=1

Then open second file called /etc/lighttpd/modules.conf.

# vi /etc/lighttpd/modules.conf

Un-comment the following line that says include “conf.d/fastcgi.conf”.

include "conf.d/fastcgi.conf"

Next, open third file called /etc/lighttpd/conf.d/fastcgi.conf.

# vi /etc/lighttpd/conf.d/fastcgi.conf

Now add the following container at the bottom of the file and save it.

fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Restart the Lighttpd service to reflect changes and enable PHP support.

# systemctl restart lighttpd

After making all the above configuration changes, you need to test the FastCGI support in PHP by creating a phpinfo.php file under /var/www/lighttpd/ directory.

# vi /var/www/lighttpd/phpinfo.php

Add the following lines to it.

<?php
phpinfo();
?>

Open your browser and navigate to the following URL to test the FastCGI support in PHP.

http://Your-Domain.com/phpinfo.php
OR
http://Your-IP-addr/phpinfo.php
Check FastCGI Support in PHP
Check FastCGI Support in PHP

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

Ravi Saive
I am an experienced GNU/Linux expert and a full-stack software developer with over a decade in the field of Linux and Open Source technologies

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

5 Comments

Leave a Reply
    • Just downloaded the latest RockyLinux 8.5 and AlmaLinux 8.5 and tried both and in steps above missing something because in both cases I have:

      when I try to run test

      http://ip/info.php 
      

      I’ve got 503 Service Not Available error.

      Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.