16 June 1999. The SRE-http 1.3f WWW server Synopsis: SRE-http is a highly configurable, http/1.1 compliant, web server for OS/2. With advanced features such as remote configuration, caching, and SSI; SRE-http is powerful enough for technically proficient administrators, yet simple enough to be maintained by non-technical users. In addition, the Rexx based GoServe API (as augmented by SRE-http's numerous extensions) offers significant development advantages when creating web aware applications, and when otherwise crafting a customized and enhanced web site. ************************ I. Introduction. At it's heart, SRE-http is a "filter" for GoServe. SRE-http is designed to work with GoServe 2.52 (and above), and will run under OS/2 3.0 (and above). It will run under OS/2 2.11, but it uses the Warp version of the REXXUTIL library (which contains some routines not in the OS/2 2.1x version). In other words: If you use GoServe under OS/2 2.11, or with earlier versions of GoServe (prior to 2.52),you might have sporadic problems. Notes: * if you are using OS/2 Warp Server; you may need to install the latest fix packs * If you are using Warp 4.0, you should be using the latest fix packs for TCP/IP (INETVER should report 4.02t or above). * If you are using Object Rexx (under OS/2 4.0), you will NOT be able to use SRE-http. * GoServe is a free IBM EWS Internet Server -- you can get it from http://www2.hursley.ibm.com/goserve. * SRE-http comes with the standard freeware dislaimer -- use it at your own risk (see the bottom of this document for a more complete disclaimer). That said, we want to know when you run into problems, and are always willing to help. * Questions? Contact Daniel Hellerstein : DANIELH@ECON.AG.GOV Or visit the SRE-http home page at http://www.srehttp.org ************************ II. Installation instuctions: 1) Obtain and install the latest version (2.52 or above) of GoServe. 2) Unzip SREV13F.ZIP to an empty, temporary directory... (you can use UNZIP, a recent copy of which is on the SRE-http home page) 3) Open an os/2 window 4) CD to this temporary directory 5) Run INSTALL.CMD. i) You will be asked to provide a few directory names. ii) You will also be asked for your IP address (it's optional). iii) You will be given the opportunity to set a few parameters -- which you can modify later. iv) You will be given the opportunity to set up a username with SUPERUSER privileges. We recommend that you do this (it's required for remote configuration). Of course, you can always create such a SUPERUSER later. 6)If you are reinstallating SRE-http: * INSTALL will ask if you want to archive the (potentially) user- configurable files. We recommend selecting this option. * If INSTALL detects a pre-existing file, it will ask you if you want to overwrite it. For some "configuration" files if will ask you twice! * Several of the program files (such as COUNTER.RXX) contain "advanced" user-configurable parameters. If you had changed them, you'll need to change them again (in the new versions you just installed). That is, INSTALL does NOT retain these values; it just creates backup files, and then overwrites. HINT: SRE-http's EDITSREF.CMD utility makes it easy to change parameters in ADDON\COUNTER.RXX. * Occassionally, GoServe/SRE will not properly restart after an installation (it seems to have something to do with corrupted macrospace). Should this happen, rebooting your machine (and then starting GoServe/SRE) will often solve the problem. 7) If this is a first time install, you must change your default filter (in GoServe) to be SREFILTR.80 Alternatively, in many cases the SREPROXY.80 "simple proxy" can be used to improve performance. 8) Start GoServe. But first: * Are you using GoServe 2.52? If not, you'll need to download it (see notes below). * You must set the Options-Limit-Connection_maintain to some positive number (say, 15). * You must have a properly defined TZ variable in your CONFIG.SYS file (TZ defines your time zone, relative to Greenwich Mean Time). Advanced Users Note: If you are willing to sacrfice full compliance with http/1.1, you can force SRE-http to ignore some of these prerequisites by setting the CHECK_COMPLIANCE parameter in SREFMON.CMD. 9) Assuming you were able to choose the default parameters (in step 5.iii), point your browser at http://your.server.whereever/index.sht This SRE-http home page contains a number of useful links to documentation, demos, and configuration tools. Of particular interest is the users-guide, and the configurator. The users guide (GUIDE.HTM) outlines the capabilites of SRE-http, and points to further help. It's a good place to start. In addition, the DOCGUIDE.HTM, the frames/javascript enabled "documentation guide", is a useful front end to SRE-http's various documentation files. The configurator can be accessed via http://your.server.whereever/CONFIGUR.HTM It has three modes: simple, intermediate, and expert. New users will probably be most comfortable with the simple mode. ************************ III. Miscellaneous notes * For the latest version of SRE-http, demos, and addons -- visit the SRE-http home page at http://www.srehttp.org/ * SRE-http's configuration files will be written to the CFGS\ subdirectory of the GoServe working directory. * SRE-http ver 1.3f will work with GoServe 2.50. However, several http/1.1 features require 2.52 -- thus, we highly recommend obtaining GoServe 2.52. * You can get the latest copy of GoServe (currently 2.52) from: http://www2.hursley.ibm.com/goserve/ (or, you can find a copy of it on the SRE-http home page). * If GoServe won't let you in (because it can't find a filter), you can add "FILTER SREFILTR.80 " (without the quotes) to the GoServe WPS object (the icon's) "parameters" option. * SRE-http will NOT run under Object Rexx. There is a (ever aging) version of ver 1.2g that will run under Object Rexx (see the SRE-http home page for details). * WARP 4.0 users: If response time is very slow (more then a few seconds for simple documents) you might need to upgrade your version of TCP/IP (to at least 4.02t). * If your needs are not very complicated, you might find sreLite, a smaller-faster-less_feature_rich version of SRE-http, to be worth investigating; look for it at http://www.srehttp.org/server/ * If you have relatively simple demands, the simple mode configurator may be adequate for all your needs. Conversely, if you want to optimize SRE-http's performance, you will probably want to use the intermediate, or expert, mode. * INTRO.DOC contains a 1 page summary of SRE-http's capabilites. * Upgraders from prior versions of SRE-http should read HISTORY.TXT . * SREhttp.FAQ contains answers to some frequently asked questions. * The SRE-http "web-accessible manual" is SREhttp.HTM. * For optimization hints, and a complete description of the user configurable parameters, see INITFILT.DOC * The various .IN and .CTL files that come with SRE-http contain descriptons, and examples, of how to set up these "username, URL access control, etc." files. * SRE-http uses "OS/2 macro space" to store frequently used routines, and uses queues and semaphores for inter-thread communication. To do this, the REXXLIB library is used. Although you have free rights to use REXXLIB with SRE-http, if you intend to use REXXLIB for something other then SRE-http, you should obtain the REXXLIB package from http://www.quercus-sys.com/rexxlib.htm. * Several of the functions used by SRE-http are part of RxSock.DLL -- the Rexx Sockets Support library. It should be in your LIBPATH (it is usually in your \TCPIP\DLL directory). * Several other freely available dynamic link libraries are distributed with, and installed by, SRE-http. See the basic copyright at the bottom of this document for details. ************************ IV. Acknowledgements > Steve Ryckan and the people at SimsWare for providing great help, good suggestions, bug finds, and for hosting the SRE-http home page! > Don Meyer, author of the GoHTTP filter, was very gracious in allowing me to "build on his work". In particular, much of the source code for HTACCESS file access-controls, CGI-BIN script processing, and image map processing was adapted from his code. > Juho Risku for more great help, some nice graphics. > Derek Sims (author of the IntrFilt filter) for helpful advice regarding multi-host servers. > Charles Daney for providing the REXXLIB library at a very reasonable price. > Dave Briccetti for providing the "SMTP using socket calls" code. > Ariel L. Szczupak for advice on working with queues and semaphores. > Richard Hughes for useful thoughts on discussion group software > The people at the INFO-ZIP project, for providing the UNZIPAPI dynamic link library. > several individuals (mm, dr, et al) for good suggestions that are now realities > .... and (of course) Mike Cowlishaw for creating GoServe, and always finding time to try and answer. ************************ V. Basic copyright and it's never our fault disclaimer: Copyright 1996,1997,1998, 1999 by Daniel Hellerstein. Permission to use this program for any purpose is hereby granted without fee, provided that the author's name not be used in advertising or publicity pertaining to distribution of the software without specific written prior permision. With some provisos, this includes the right to subset and reuse the code, with proper attribution. The provisos are several fold: 1) Portions of the code are adapted from other authors' work (these are noted where appropriate); you'll need to contact these other authors for appropriate permissions. 2) SRE-http uses serveral 3rd party dynamic libraries: i) Quercus System's REXXLIB procedure library. The license for REXXLIB gives the author the right to distribute REXXLIB without charge. This right may NOT extend to redistributors. Please contact Quercus Systems for details. ii) Info-Zip's UNZIPAPI. Although this is freely available software, you may wish to contact Info-Zip for details. iii) Jeff Glatt's FILEREXX, which is freely available software (a 1995 address is 6 Sycamore Drive East, New Hartford, NY 13413, 315-735-5350). iv) Jean-loup Gailly OS/2 port of the GZIP file compression utility, which is free GNUware (see GZIP.TXT for details) 3) We, the authors of SRE-http and any potenially affiliated institutions, disclaim any and all liability for damages due to the use, misuse, or failure of the product or subsets of the product. Furthermore you may also charge a reasonable re-distribution fee for SRE-http; with the understanding that this does not remove the work from the public domain and that the above provisos remain in effect. THIS SOFTWARE PACKAGE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE PACKAGE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR (Daniel Hellerstein) OR ANY PERSON OR INSTITUTION ASSOCIATED WITH THIS PRODUCT BE LIABLE FOR ANY SPECIAL,INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE PACKAGE. SRE-http was developed on the personal time of Daniel Hellerstein, and is not supported, approved, or in any way an official product of my employer (USDA/ERS).