There is a new revision of this tutorial available for Debian 8 (Jessie).

Installing Lighttpd With PHP5 And MySQL Support On Debian Etch

Lighttpd is a secure, fast, standards-compliant web server designed for speed-critical environments. This tutorial shows how you can install Lighttpd on a Debian Etch server with PHP5 support (through FastCGI) and MySQL support.

I do not issue any guarantee that this will work for you!


1 Preliminary Note

In this tutorial I use the hostname with the IP address These settings might differ for you, so you have to replace them where appropriate.


2 Installing MySQL 5.0

First we install MySQL 5.0 like this:

apt-get install mysql-server mysql-client

Create a password for the MySQL user root (replace yourrootsqlpassword with the password you want to use):

mysqladmin -u root password yourrootsqlpassword

Then check with

netstat -tap | grep mysql

on which addresses MySQL is listening. If the output looks like this:

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2713/mysqld

which means MySQL is listening on localhost.localdomain only, then you're safe with the password you set before. But if the output looks like this:

tcp        0      0 *:mysql *:*                     LISTEN     2713/mysqld

you should set a MySQL password for your hostname, too, because otherwise anybody can access your database and modify data:

mysqladmin -h -u root password yourrootsqlpassword


3 Installing Lighttpd

Lighttpd is available as a Debian package, therefore we can install it like this:

apt-get install lighttpd

Now direct your browser to, and you should see the Lighttpd placeholder page:

Lighttpd's default document root is /var/www on Debian, and the configuration file is /etc/lighttpd/lighttpd.conf.


4 Installing PHP5

We can make PHP5 work in Lighttpd through FastCGI. Fortunately, Debian provides a FastCGI-enabled PHP5 package which we install like this:

apt-get install php5-cgi


5 Configuring Lighttpd And PHP5

To enable PHP5 in Lighttpd, we must modify two files, /etc/php5/cgi/php.ini and /etc/lighttpd/lighttpd.conf. First we open /etc/php5/cgi/php.ini and add the line cgi.fix_pathinfo = 1 right at the end of the file:

vi /etc/php5/cgi/php.ini

cgi.fix_pathinfo = 1

Then we open /etc/lighttpd/lighttpd.conf and add "mod_fastcgi", to the server.modules stanza:

vi /etc/lighttpd/lighttpd.conf

server.modules              = (
#           "mod_rewrite",
#           "mod_redirect",
#           "mod_status",
#           "mod_evhost",
#           "mod_compress",
#           "mod_usertrack",
#           "mod_rrdtool",
#           "mod_webdav",
#           "mod_expire",
#           "mod_flv_streaming",
#           "mod_evasive"

and then right at the end of the file, we add the following stanza:

fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/bin/php5-cgi",
                     "socket" => "/tmp/php.socket"

Then we restart Lighttpd:

/etc/init.d/lighttpd restart

Share this page:

6 Comment(s)

Add comment


From: Anonymous

Easy. Thanks for the info.

From: Anonymous

Thank you pal! I really apreciate it, it was very helpful.

From: Anonymous

Very big thanks  . gretings from Poland this tutorial is very easy and userfull

From: Jay

Superb write-up! worked like a charm. Saved me time.

From: Anonymous

This works awesome. Now i can finaly create a super light web server

From: Anonymous

Thanks for this howto. work all well.