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 server1.example.com with the IP address 192.168.0.100. 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
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 server1.example.com -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 http://192.168.0.100, 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:
[...] cgi.fix_pathinfo = 1
Then we open /etc/lighttpd/lighttpd.conf and add "mod_fastcgi", to the server.modules stanza:
[...] server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_fastcgi", # "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: