mirror of
https://github.com/php/php-src.git
synced 2024-11-25 19:05:31 +08:00
a8136b4dba
IRCG. These could cause thttpd to start a second request in the same connection context, and thereby causing real damage. Mozilla 1.0.1 is buggy in that context: When HTTP/1.1 pipelining is enabled (defaults to off), it will send any number of requests over a persistent connection (which is fine), even after it has received a "Connection: close" header field in a subsequent response header. This blatantly violates RFC 2616, section 8.1.2. Because it cannot receive any response on the dead connection, the download manager pops up and tries to download a file (which never arrives). Also, we don't try to send a 400 message anymore, if the connection dies. |
||
---|---|---|
.. | ||
config.m4 | ||
CREDITS | ||
php_thttpd.h | ||
php.sym | ||
README | ||
stub.c | ||
thttpd_patch | ||
thttpd.c |
README FOR THTTPD MODULE (by Sascha Schumann) ($Date$) This is a SAPI module for PHP 4.x supporting thttpd, the tiny, turbo, throttling HTTP server by Jef Poskanzer. NOTE: All requests will be serialized. That means, one long running script will block all other requests. Choose another web server, if you want to execute arbitrary scripts. The module contains a patch against version 2.21b of thttpd. The patch fixes a number of bugs and adds some functionality: - HTTP/1.1 Persistent Connection/Pipeline Support - PHP Scripting (**.php by default) - Highlighting PHP Scripts (**.phps by default) - Fast Accept Loop - Periodic Connection Expiring - Fixes the Host: header vulnerability - Asynchronous request body handling - Fixup for non-blocking send of thttpd-generated responses You can configure the filename extensions by creating a config file for thttpd and setting these entries: phppat=PATTERN phpspat=PATTERN The PATTERN has the same format as defined here: http://acme.com/software/thttpd/options.html#CGI_PATTERN "**.php" means: match any file ending in .php in any directory. Setting the pattern from the command line is not supported. NOTE: This version supports *only* thttpd 2.21b, no prior or later version. This is a functional and stable module (it runs a large application like IMP 2.2.0 without any problems). Its original intention was to demonstrate the ability of PHP to work in every web server environment. REQUIRED DOWNLOADS 1. thttpd 2.21b (2.20 or +2.22beta will _not_ work) Full Distribution: http://www.acme.com/software/thttpd/thttpd-2.21b.tar.gz 2. PHP 4.x Download: http://www.php.net/ Snapshots from CVS: http://snaps.php.net/ BUILD INSTRUCTIONS 1. Extract software packages $ gunzip -c thttpd-2.xx.tar.gz | tar xf - $ gunzip -c php-*.tar.gz | tar xf - 2. Prepare PHP $ cd php-* $ ./configure \ --with-thttpd=../thttpd-2.xx \ <further PHP options> $ make install $ cd .. You can see the list of valid PHP options by executing $ ./configure --help 3. Configure, compile, install thttpd Now follow the thttpd instructions. The Makefile template of thttpd was changed to automatically use the components required by PHP.