Project

General

Profile

Actions

TutorialLighttpdAndPHP » History » Revision 15

« Previous | Revision 15/91 (diff) | Next »
jan, 2006-01-25 22:44
remove all the spammed revisions and removed the last piece of search engine spam


= 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 === MeawNIX === {{{
  1. cd /pkg
  2. milk install php.meaw
    }}} === FreeBSD === {{{
    $ cd /usr/ports/www/php-cgi
    $ make install clean
    }}} === Gentoo ===
    Add the USE flag 'fastcgi' to compile php with fastcgi support. {{{
  3. emerge php-cgi
    }}} === Debian ===
    Debian provides (at least in Sarge) a fastcgi enabled version - though it's called php4-cgi. {{{
  4. 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 * http://www.lighttpd.net/documentation/configuration.html * http://www.lighttpd.net/documentation/fastcgi.html
      and use
      http://trac.lighttpd.net/trac/file/branches/lighttpd-1.3.x/doc/lighttpd.conf
      as starting point for the configuration.

Updated by jan about 19 years ago · 91 revisions