FrequentlyAskedQuestions » History » Revision 11
« Previous |
Revision 11/83
(diff)
| Next »
Anonymous, 2005-09-14 18:20
Added README link.
= 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].
=== What kind of environment does server.error-handler-404 set up? ===
The environment (which is relevant when using CGI or FastCGI) is quite normal, but observe the following:
- The REQUEST_URI is the original request, and has nothing to do with where the redirect points to.
- QUERY_STRING is ''not'' set, so you have to parse the REQUEST_URI yourself to get it.
- Likewise, PATH_INFO isn't set.
- SCRIPT_NAME is set according to the handler, not according to the original URI.
=== 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
=== Is there an su-exec wrapper available? ===
Not right now, but Sune Foldager coded one especially for lighttpd which you can grab [http://cyanite.org/projects/execwrap/ here]. It's very easy to use, but has not yet been extensively tested so a little caution is adviced. On the other hand, the source is so small so it's easy to get a security overview. Instructions and usage examples (with lighttpd) are in the [http://cyanite.org/projects/execwrap/READ_ME README].
=== 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, php 4.3, 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. However, if a php parent segfaults, you'll still have three groups available to respond to queries. For this reason, Jan recommends setting min- and max-procs to 2.
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.
Updated by Anonymous over 19 years ago · 83 revisions