1README FOR THTTPD MODULE (by Sascha Schumann) 2($Date$) 3 4 This is a SAPI module for PHP 4.x supporting thttpd, the tiny, 5 turbo, throttling HTTP server by Jef Poskanzer. 6 7 NOTE: All HTTP requests will be serialized. That means, one long running 8 script will block all other requests. Choose another web server, 9 if you want to execute arbitrarily long running scripts. 10 11 The module contains a patch against version 2.21b of thttpd. The patch 12 fixes a number of bugs and adds some functionality: 13 14 - HTTP/1.1 Persistent Connection/Pipeline Support 15 - PHP Scripting (**.php by default) 16 - Highlighting PHP Scripts (**.phps by default) 17 - Fast Accept Loop (unique to PHP) 18 - Periodic Connection Expiring (unique to PHP) 19 - Log to stdout (logfile=-) 20 - Fixes the Host: header vulnerability (affects vhosts only) 21 - Asynchronous request body handling (e.g. for POSTs) 22 - Accept filter for Linux 23 - Fix for non-blocking sending of thttpd-generated responses 24 25 You can configure the filename extensions by creating a config file for 26 thttpd and setting these entries: 27 28 phppat=PATTERN 29 phpspat=PATTERN 30 31 The PATTERN has the same format as defined here: 32 33 http://acme.com/software/thttpd/options.html#CGI_PATTERN 34 35 "**.php" means: match any file ending in .php in any directory. 36 Setting the pattern from the command line is not supported. 37 38 NOTE: This version supports *only* thttpd 2.21b, no prior or later 39 version. 40 41 This is a functional and stable module (it runs a large application 42 like IMP 2.2.0 without any problems). Its original intention was to 43 demonstrate the ability of PHP to work in every web server environment. 44 45REQUIRED DOWNLOADS 46 47 1. thttpd 2.21b (2.20 or +2.22beta will _not_ work) 48 49 Full Distribution: 50 http://www.acme.com/software/thttpd/thttpd-2.21b.tar.gz 51 52 2. PHP 4.x 53 54 Download: 55 http://www.php.net/ 56 57 Snapshots from CVS: 58 http://snaps.php.net/ 59 60 61BUILD INSTRUCTIONS 62 63 1. Extract software packages 64 65 $ gunzip -c thttpd-2.xx.tar.gz | tar xf - 66 $ gunzip -c php-*.tar.gz | tar xf - 67 68 2. Prepare PHP 69 70 $ cd php-* 71 $ ./configure \ 72 --with-thttpd=../thttpd-2.xx \ 73 <further PHP options> 74 $ make install 75 $ cd .. 76 77 You can see the list of valid PHP options by executing 78 79 $ ./configure --help 80 81 3. Configure, compile, install thttpd 82 83 Now follow the thttpd instructions. The Makefile template of 84 thttpd was changed to automatically use the components 85 required by PHP. 86