Revision of Lighttpd from Tue, 01/08/2013 - 10:22

Revisions allow you to track differences between multiple versions of your content, and revert back to older versions.

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

cd /extra/src
tar zxvf pcre-8.00.tar.gz
cd pcre-8.00
make install

or, with CentOS 5, install the pcre-devel package:

yum install pcre-devel


cd /extra/src
tar zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
make install

The install might also complain about not finding the bzip2 headers. If that's the case:

yum install bzip2-devel

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

mkdir -p /extra/src
cd /extra/src
tar zxf lighttpd-1.4.32.tar.gz
cd lighttpd-1.4.32

Configure, build and install:

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
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/"

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/
echo 'OMG, This tutorial worked' > /var/websites/

Create the symbolic link to start the lighttpd service

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

Recent Updates

  • PHP
    1 year 5 months ago
    PHP 7.4
  • 1 year 6 months ago
    MariaDB 10.4.12
  • 1 year 6 months ago
    Dovecot 2.3.10
  • 1 year 6 months ago
    CentOS 6 revisions
  • 1 year 6 months ago
    Copy of the revision from Wed, 08/22/2018 - 13:39.