Installing and configuring lighttpd with php support

Download the latest source from lighttpd.net

$wget -O http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.29.tar.gz /usr/src/lighttpd.tar.gz<br></br>
$cd /usr/src<br></br>
$tar -zxvf lighttpd.tar.gz<br></br>
$cd lighttpd```

**Now Configure lighttpd:**  

$ ./configure --host=i686-redhat-linux-gnu --build=i686-redhat-linux-gnu --target=i386-redhat-linux <br>

--program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin <br>

--sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec <br>

--localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info <br>

--with-openssl --with-pcre --with-zlib --with-bzip2 --disable-ipv6 --with-PACKAGE=mod_redirect <br>

--with-rewrite --with-redirect --with-ssi```

**
Now Compile and Install:**

$make && make install

Now make configuration Directory for lighttpd:
#mkdir /etc/lighttpd

Create user and group:

#groupadd lighttpd<br></br>
#useradd -g lighttpd -d /var/www/html -s /sbin/nologin lighttpd```

**Create directory for logfiles:**  

mkdir /var/log/lighttpd

chown lighttpd:lighttpd /var/log/lighttpd```

Create a sample config file :

#vi /etc/lighttpd/lighttpd.conf

Paste the following Sample with php support:

server.document-root = "/var/www/html"

server.port = 80
server.username = "lighttpd"
server.groupname = "lighttpd"
server.bind = "0.0.0.0"
server.tag ="lighttpd"

server.errorlog = "/var/log/lighttpd/error.log"
accesslog.filename = "/var/log/lighttpd/access.log"

server.modules = (
"mod_access",
"mod_accesslog",
"mod_fastcgi",
"mod_rewrite",
"mod_auth"
)

This is for php support

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

mimetype mapping

mimetype.assign = (
".pdf" => "application/pdf",
".sig" => "application/pgp-signature",
".spl" => "application/futuresplash",
".class" => "application/octet-stream",
".ps" => "application/postscript",
".torrent" => "application/x-bittorrent",
".dvi" => "application/x-dvi",
".gz" => "application/x-gzip",
".pac" => "application/x-ns-proxy-autoconfig",
".swf" => "application/x-shockwave-flash",
".tar.gz" => "application/x-tgz",
".tgz" => "application/x-tgz",
".tar" => "application/x-tar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/x-mpegurl",
".wma" => "audio/x-ms-wma",
".wax" => "audio/x-ms-wax",
".ogg" => "audio/x-wav",
".wav" => "audio/x-wav",
".gif" => "image/gif",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".css" => "text/css",
".html" => "text/html",
".htm" => "text/html",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/x-msvideo",
".asf" => "video/x-ms-asf",
".asx" => "video/x-ms-asf",
".wmv" => "video/x-ms-wmv",
".bz2" => "application/x-bzip",
".tbz" => "application/x-bzip-compressed-tar",
".tar.bz2" => "application/x-bzip-compressed-tar"
)
index-file.names = ( "index.html", "index.php" )

Now Create the init script:

vi /etc/init.d/lighttpd

paste the following:

#!/bin/sh<br></br>
#<br></br>
# lighttpd     Startup script for the lighttpd server<br></br>
#<br></br>
# chkconfig: - 85 15<br></br>
# description: Lightning fast webserver with light system requirements<br></br>
#<br></br>
# processname: lighttpd<br></br>
# config: /etc/lighttpd/lighttpd.conf<br></br>
# config: /etc/sysconfig/lighttpd<br></br>
# pidfile: /var/run/lighttpd.pid<br></br>
#<br></br>
# Note: pidfile is assumed to be created<br></br>
# by lighttpd (config: server.pid-file).<br></br>
# If not, uncomment 'pidof' line.```

# Source function library  
 . /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/lighttpd ]; then  
 . /etc/sysconfig/lighttpd  
 fi

if [ -z "$LIGHTTPD_CONF_PATH" ]; then  
 LIGHTTPD_CONF_PATH="/etc/lighttpd/lighttpd.conf"  
 fi

prog="lighttpd"  
 lighttpd="/usr/sbin/lighttpd"  
 RETVAL=0

start() {  
 echo -n $"Starting $prog: "  
 daemon $lighttpd -f $LIGHTTPD_CONF_PATH  
 RETVAL=$?  
 echo  
 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog  
 return $RETVAL  
 }

stop() {  
 echo -n $"Stopping $prog: "  
 killproc $lighttpd  
 RETVAL=$?  
 echo  
 [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog  
 return $RETVAL  
 }

reload() {  
 echo -n $"Reloading $prog: "  
 killproc $lighttpd -HUP  
 RETVAL=$?  
 echo  
 return $RETVAL  
 }  
 case "$1" in  
 start)  
 start  
 ;;  
 stop)  
 stop  
 ;;  
 restart)  
 stop  
 start  
 ;;  
 condrestart)  
 if [ -f /var/lock/subsys/$prog ]; then  
 stop  
 start  
 fi  
 ;;  
 reload)  
 reload  
 ;;  
 status)  
 status $lighttpd  
 RETVAL=$?  
 ;;  
 *)  
 echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"  
 RETVAL=1  
 esac

exit $RETVAL

**Now make the init script executable:**

`#chmod +x /etc/init.d/lighttpd`