source code

lighttpd source code and build instructions for experts

binary packages

On most systems you can install the current lighttpd-1.4.x version via the package management:

Debian based systems

aptitude install lighttpd lighttpd-doc
apt-get install lighttpd lighttpd-doc


Some modules are only available from extra packages (see the website)

Fedora based systems

dnf install lighttpd lighttpd-mod_openssl


zypper install lighttpd


Some modules are only available from extra packages (use zypper search lighttpd to find them)

Other repositories (may contain more up to date packages, especially for older distributions)


emerge lighttpd

Please note: Don't neglect to set the proper USE flags for your lighty installation and all its dependencies. Take a look at the flags Portage would use by running emerge with the --pretend --verbose --tree options. This will pretend to install lighttpd and display some informative output, such as all USE flags and dependencies: emerge -pvt lighttpd

If necessary, add your desired flags to /etc/portage/package.use. For example, if you want to emerge lighttpd with support for MySQL and PHP but without SSL, set the according USE flags: echo "www-servers/lighttpd php mysql -ssl" >> /etc/portage/package.use

FreeBSD ports

FreeBSD has the ports and lighttpd is in this tree for a long time now.

cd /usr/ports/www/lighttpd
make install clean

If you don't get the configuration dialog, do make config first. The additional CONFIG_ARGS for the PHP5 installation force cgi-fcgi support in /usr/local/bin/php. The option --with-pcre-regex is needed to support several functions that use regular expressions like 'preg_match', and you really want that for things like conditionals, rewrite and redirect.

Now that everything is installed, enable lighttpd in rc.conf and edit it's configuration:

echo lighttpd_enable=\"YES\" >> /etc/rc.conf
cd /usr/local/etc/
cp lighttpd.conf.sample lighttpd.conf

You will probably need to create some directories and files, since the port neglects to do them for you (as of 2008 February 24), and make them accessible by the user and group "www" that lighttpd operates as:

mkdir /var/log/lighttpd
touch /var/log/lighttpd/lighttpd.error.log
touch /var/log/lighttpd/lighttpd.access.log
chown www:www /var/log/lighttpd
chown www:www /var/log/lighttpd/lighttpd.error.log
chown www:www /var/log/lighttpd/lighttpd.access.log
Edit lighttpd.conf to use the new directories and files as follows:
  • server.errorlog = "/var/log/lighttpd/lighttpd.error.log"
  • accesslog.filename = "/var/log/lighttpd/lighttpd.access.log"
Edit lighttpd.conf docroot:
  • server.document-root = "/usr/local/www/"

Updated by gstrauss over 2 years ago · 23 revisions