Lighttpd

Prerequisites
lighttpd requires the headers for libprce and zlib. If the lighttpd configure script can't find them, you'll need to install them.

yum install pcre2-devel zlib-devel bzip2-devel
yum install autoconf automake libtool m4 pcre pcre-devel pkg-config

Installation
Download the latest version of the lighttpd source (1.4.76 at time of writing):

mkdir -p /extra/src
cd /extra/src
wget https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.76.tar.gz
tar zxf lighttpd-1.4.76.tar.gz
cd lighttpd-1.4.76

Configure, build and install:

./autogen.sh
./configure
make
make install

Daemontools Startup
Lighttpd is well-suited for being supervised by daemontools. The application configuration files can be placed below the service directory, similar to how djbdns does it.
Assuming you have already installed daemontools, create the directories to hold the lighttpd run script, logging script, and config files:

mkdir -p /var/service
cd /var/service
mkdir -m 1755 lighttpd
cd lighttpd

Create the run script (/var/service/lighttpd/run), with the following:

#! /bin/sh
exec 2>&1
exec lighttpd -D -f ./root/lighttpd.conf

Once you have saved the file, change it's permissions to it can be executed:

chmod 700 run

Then create a directory to hold your lighttpd config files:

mkdir -m 755 root

Create the logging service:

mkdir -m 755 log
cd log
wget http://qmail.jms1.net/scripts/run.log
mv run.log run
chmod 700 run

Lighttpd Configuration
The Lighttpd configuration tutorial outlines some options for your lighttpd configuration file, /var/service/lighttpd/root/lighttpd.conf, to get a basic server running. A basic config file could be:

server.document-root = "/var/websites/www.example.org/htdocs/"

server.port = 80

server.username = "nobody"
server.groupname = "nobody"

mimetype.assign = (
  ".html" => "text/html",
  ".txt" => "text/plain",
  ".jpg" => "image/jpeg",
  ".png" => "image/png",
  ".gif" => "image/gif",
  ".pdf" => "application/pdf",
  ".css" => "text/css",
  ".js" => "text/javascript",
)

static-file.exclude-extensions = ( ".fcgi", ".php", ".rb", "~", ".inc" )
index-file.names = ( "index.html" )

The LighttpdUnderSuperviseExampleConfiguration wiki page has more detailed instructions on how you can organize your configuration.

Start Lighttpd
Once you have created your basic configuration, create a test website:

mkdir -p /var/websites/www.example.org/htdocs/
echo 'OMG, This tutorial worked' > /var/websites/www.example.org/htdocs/test.txt

Create the symbolic link to start the lighttpd service

ln -s /var/service/lighttpd /service/lighttpd

Recent Updates

  • 5 days 41 min ago
    1.27.2 update
  • 2 weeks 2 days ago
    Drupal 10/11 config
  • 2 weeks 3 days ago
  • PHP
    2 weeks 3 days ago
    PHP 8.3.11 and AlmaLinux
  • 2 weeks 4 days ago
    New version of Pound