Project

General

Profile

Actions

TutorialLighttpdAndPHP » History » Revision 7

« Previous | Revision 7/91 (diff) | Next »
Anonymous, 2005-11-23 15:57


= Lighttpd and PHP =

`Startingpoint` Lighttpd is already [wiki:TutorialInstallation installed and working]

PHP and FastCGI

First of all you need a PHP which is providing FastCGI support. Depending on your
distribution you might already have it:

=== ArchLinux ===

Read http://wiki.archlinux.org/index.php/Fastcgi_and_lighttpd

=== FreeBSD ===

{{{
$ cd /usr/ports/www/php-cgi
$ make install clean
}}}

=== Gentoo ===

Add the USE flag 'fastcgi' to compile php with fastcgi support.

{{{
$ emerge php-cgi
}}}

=== Debian ===

Debian provides (at least in Sarge) a fastcgi enabled version - though it's called php4-cgi.

{{{
$ apt-get install php4-cgi
}}}

=== Others ===

Download a source tar-ball from http://www.php.net/ and configure it with at least this settings:

{{{
$ ./configure \
--enable-fastcgi \
--enable-discard-path \
--enable-force-redirect
}}}

If you want to have the same PHP as you are using in a mod_php configuration somewhere else call

{{{

}}}

  • copy the configure options from the output of the script
  • remove the ``--with-apxs`` and ``--with-apxs2`` options
  • add the three options from above.

Build PHP now by callings ``make`` and ``make install`` and see if you can find a php binary which is responding:

{{{
$ php -v
PHP 5.0.3 (cgi-fcgi) (built: Dec 21 2004 12:59:18)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.3, Copyright (c) 2004-2005 eAccelerator, by eAccelerator
}}}

or something like this. The ``(cgi-fcgi)`` is the important part. The binary might also called ``php-cgi`` or if
you still can't find it follow this hint:

{{{
$ ls sapi/cgi/php
}}}

Configuration

Add ``cgi.fix_pathinfo = 1`` to you ``php.ini`` and add this basic section to you ``lighttpd.conf``:

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

A little bit more advance is this setting which tries the tune some more options. If you need PATH_INFO the broken-scriptfilename is
for you.

{{{
fastcgi.server = ( ".php" => ((
"bin-path" => "/path/to/php-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 2,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
)))
}}}

Please read the configuration section for more background

and use

http://trac.lighttpd.net/trac/file/branches/lighttpd-1.3.x/doc/lighttpd.conf

as starting point for the configuration.

Updated by Anonymous over 19 years ago · 91 revisions