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
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
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
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
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
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.
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;
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
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
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
I can’t to the admin panel thru http://127.0.0.1:9090/ http://10.0.2.15:9090/ or http://10.0.2.15:9090/ and can see the test page but cant connect to admin
@Michael,
On which Linux distributions you’ve tried? or you able to access the admin panel via localhost:9090?
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
I’ve got 503 Service Not Available error.
@Valon,
Try disabling SELinux and try again to test it…
Great and detailed Info…! Keep it Up..!
Comes in handy for Linux admins like us..!