These are instructions for installing NeoWebScript, an extension of the fabulously popular Apache webserver. The current release is 2.1, and is delivered along with Apache-1.1.3. The next release will be 2.2, and will work with Apache-1.2. Release 2.2 is currently in beta test.
After you have unpacked this release, execute the install.sh script which resides in this directory. Install.sh (doc the new version)
Install.sh prompts the user for several pieces of information relevant webserver to installing the webserver and creates runtime directories and configuration files from their templates. Install.sh configures assuming that SERVER_ROOT is the httpd directory just below this one.
Note install.sh WILL NOT OVERWRITE previously existing files, so if you repeat the install script, you must remove the files to be changed (probably httpd/conf/*.conf).
You may set DOCUMENT_ROOT to another location if you wish.
Below this directory are the following directories, whose purposes are:
./doc ./doc/rfc rfc1876.txt: MIME upload documentation. ./httpd Server root. ./httpd/conf Server configuration directory. Also contains most of the Tcl source which makes it go. ./httpd/htdocs ./httpd/htdocs/gifs A couple of NeoWebScript gifs. ./httpd/htdocs/neowebscript NeoWebScript documentation, demos, tests, etc. ./httpd/logs A logs directory. Must be writable by the server daemon. You must create this diretory. ./httpd/icons Icons, for directories, folders stuff like that. Copied in by install.sh. ./src/webunpack Source for the webunpack tool. ./httpd/bin Where the webunpack binary goes. ./httpd/neoscript-data/users The tree in which support files for user databases will be created. ./httpd/neoscript-data/system Where some system-wide db files exist, for hit counters and various other things. ./httpd/neoscript-tcl Library of Tcl code which can be autoloaded into the user's safe interpreter while executing NeoWebScript Tcl. ./apache* This is Apache tree, with NeoWebScript modules integrated.To build this release you need the following (copies of which can be found on our web/ftp site):
Tcl7.5 or later, and corresponding versions of TclX and Neo7.6.0, all of which you should be able to find from the same site you found this package (www.neosoft.com/neowebscript).
You probably will also want Gd1.2 (www.boutell.com/gd), maybe Postgres95 (www.postgresql.org), Otcl (you'll need our interpreter-safe version), and/or Itcl. (Itcl is not particularly designed to work with with safe interpreters as it has its own model for restricting access to commands). Basically, get all of the Tcl extensions you want. If you already have Tcl built on your system, then great, the NeoWebScript module will work right in.
Step by step instructions:
--with-db=system
Note we discourage using --exec-prefix in your configure commands.
Find the line that contains PREFIX and point it to your Tcl install prefix, eg. /usr/local or what you used with the --prefix configure option.
Mod_neoscript.c contains conditional compiling code to optionally support the several additional Tcl packages. Add or delete -DPackageName to/from CFLAGS as appropiate for your installation to include initialization code for your Tcl packages.
PackageName/Description
If you want to use another package, you will need to modify the C function "init_neoscript" in mod_neoscript.c, to add a call to the init function, and to perform the Tcl_StaticPackage function so that Tcl knows the package is bound into the program.
We have tended towards linking all packages we think we'll need into the server. This way when it comes time to load a package into a slave, the static package can be referenced instead of a pathname providing faster initialization. However, loading rarely used packages via the Tcl "Load" command is a viable option.
After you have built httpd, use ldd to make sure the correct shared libraries are being accessed. We have spent many hours chasing segmentation violation errors which turned out to be due to the webserver being restarted with an incorrect LD_LIBRARY_PATH, resulting in execution with incompatable libraries.
Move the binary into your server root httpd. Note there are two httpd directories; the one under apache* subdirectory is a copy.
Check httpd.conf, especially for Port and ServerName settings. To experiment, use port 8080 or whatever. If this is your first webserver, go ahead and set Port to 80.
Check access.conf. Note that server-side includes will not happen unless "Options Includes" applies. We strongly recommend using "Options Includes IncludesNOEXEC", which allows includes, but disallows shell scripts.
Note that httpd.conf, access.conf and srm.conf all have legacy pathnames for DocumentRoot and ServerRoot.
Apache-2.* or adding neoscript to your existing Apache Web Server:
This release should pretty much drop into an existing Apache-1.1.3 tree with relatively minor effort. You will need:
Also, you may wish to
And we request that you