Project

General

Profile

FrequentlyAskedQuestions » History » Revision 7

Revision 6 (jan, 2005-09-01 08:02) → Revision 7/83 (Anonymous, 2005-09-01 13:29)

= FAQs = 

 == Where to get help? == 

 IRC: [http://www.freenode.net/ freenode],    channel [irc://irc.freenode.net/lighttpd #lighttpd] 

 Mailing list: [http://lighttpd.net/documentation/ details], [http://news.gmane.org/gmane.comp.web.lighttpd archive]. 

 == General == 

 === How do I bind to more than one address? === 

 Use server.bind and server.port to bind to the first port and then the $SERVER["socket"] conditional to bind to the rest (it will 'magically' bind to the specified socket). 

 Example that exposes /server-status to an internal IP only (note that it's perfectly valid to leave the body of the conditional empty): 
 {{{ 
 server.port = 80 
 server.bind = "192.0.2.1" 

 $SERVER["socket"] == "192.168.2.100:80" { 
    status.status-url = "/server-status" 
 } 
 }}} 

 This can also be combined with [http://www.lighttpd.net/documentation/ssl.html SSL]. 

 == FastCGI == 

 === Where is the spawn-php program/script available from? it's mentioned in docs but not available in the distributed package (1.3.7)    === 

 If you install lighttpd (http://lighttpd.net/download/INSTALL), the spawn-fcgi binary is installed automatically (to /usr/bin/spawn-fcgi by default). 

 The spawn-php.sh script can be found here: http://www.lighttpd.net/download/spawn-php.sh 

 === How do I exclude a certain directory from FastCGI? === 

 {{{ 
 $HTTP["url"] =~ "^/no-fcgi/" { 
    fastcgi.server = ( "/" => ... ) 
 } 
 }}} 

 You can also use server.error-handler-404 to redirect all non-existent files to FastCGI (see LighttpdOnRails for an example). 

 === I get the error "No input file specified" when trying use PHP === 

 See the comments in the [http://php.net/features.commandline PHP docs]. The issue here is that the variable $SCRIPT_FILENAME is not being passed to PHP. 

 Double check you have this line in your php.ini:  
 {{{ 
 cgi.fix_pathinfo=1 
 }}} 

 === How many php CGI processes will lighttpd spawn? === 

 lighttpd has three configuration options that control how many php-cgi processes will run: 

  * PHP_FCGI_CHILDREN (defaults to 8 before 4.3.0, 0 after; see below) 
  * min-procs (default 4) 
  * max-procs (default 4) 

 When lighttpd starts, it will launch min-procs parent php processes.    Each parent process then pre-forks PHP_FCGI_CHILDREN child processes.    For example, if min- and max-procs are 4 and PHP_FCGI_CHILDREN is 16, lighttpd will start 4 + 4 x 16 = 68 processes. 

 To disable lighttpd's process control, set min-procs and max-procs to 1 and set PHP_FCGI_CHILDREN to the number of processes you want to spawn. 

 In the case of lighttpd 1.4.2, php 4.3.X, and eaccelerator 0.9.3 on Linux, eaccelerator will create a separate memory space for each parent process.    If you leave min- and max-procs at 4, you'll end up with four separate eaccelerator caches. 

 After PHP 4.3.0, PHP_FCGI_CHILDREN defaults to 0.    If left at 0, PHP will not pre-fork any children, so only min-procs parents will handle requests. 

 Note that setting PHP_FCGI_MAX_REQUESTS is recommended to avoid possible memory leak side-effects.