This document outlines the steps needed to install Apache onto a TPF system.
You should first read readme-tpf.html for basic
information on the port of Apache to TPF including required PUT
level and supported modules.
TIP: UNIX file names are case sensitive. If you use an NFS client to transfer files from your PC to OS/390 UNIX (instead of using FTP as described above) verify that the NFS drive will transfer the file names with upper/lower case preserved.
The provided instructions assume a c89 compiler and have
been tested on an OS/390 UNIX machine running at version 2.6
that contained both OS/390 UNIX and TPF C header files. If you
are using a platform other that OS/390 UNIX you may need to
modify src/os/tpf/TPFExport and src/Configure to match your
environment.
TIP:
Editing files on your PC prior to moving them to OS/390 UNIX
may result in the loss/addition of unprintable characters.
Files of concern include shell scripts and src/Configuration.
The most common problems are with tab characters and CR/LF
characters. Most editors will handle the CR/LF problem
correctly but none seem to handle tab characters. If you need
to edit files prior to moving them to OS/390 UNIX, edit them in
a UNIX editor such as vi or emacs.
Note that OS/390 UNIX commands in this section are shown in bold, are case sensitive, and must be made from the "src" directory.
The modules placed in the Apache distribution are the ones that have been tested and are used regularly by various members of the Apache development group. Additional modules contributed by members or third parties with specific needs or functions are available at http://modules.apache.org/. There are instructions on that page for linking these modules into the core Apache code.
If you are on a PUT12 or higher system, or have PJ26895
installed, then you probably support
non_socket_select.
You can verify this by looking for the
non_socket_select prototype in your system header
files (specifically i$pwbl.h).
If your TPF system supports non_socket_select
do one of the following:
Otherwise:
Without non_socket_select CGI output is buffered and only sent to the browser when the CGI program finishes.
If you are on a PUT10 or higher system, or have
PJ27387/PJ26188 installed, then you probably support
tpf_sawnc.
You can verify this by looking for the tpf_sawnc
prototype in your system header files (either
tpfapi.h or i$fsdd.h).
If your TPF system supports tpf_sawnc do
one of the following:
Otherwise:
The use of tpf_sawnc allows for a cleaner shutdown of Apache.
This generates modules.c, include/ap_config_auto.h, and necessary Makefiles:
Using config file: Configuration Creating Makefile + configured for TPF platform + setting C compiler to c89 + setting C pre-processor to c89 -E + checking for system header files + adding selected modules + checking sizeof various data types Creating Makefile in support Creating Makefile in regex Creating Makefile in os/tpf Creating Makefile in ap Creating Makefile in main Creating Makefile in lib/expat-lite Creating Makefile in modules/standard $ _If you want to maintain multiple configurations, you can say, for example,
Using config file: Configuration.2nd Creating Makefile + configured for <whatever> platform + setting C compiler to <whatever> et ceteraIf you receive an error such as "Configure 146: FSUM7351 not found" the most likely explanation is that one or more of the make related files were edited on a non-UNIX platform, corrupting the end-of-line marks. Verify that lines ending with "\" in the flagged file do not have trailing spaces. Using the vi editor and the sample error above as an example...
pull up the flagged file: vi Configure turn on punctuation: :set list go to the line in question: 146G or find a line with a "\": /\\
close the file: :q (or :quit!)
The default behavior for Apache on all platforms except TPF is to use the file system for maintaining the scoreboard (which holds current Apache children status). The default behavior for Apache on TPF is to use shared memory. This reduces file activity for the parent Apache ECB and improves performance. If you are on a pre-PUT10 system you must change ap_config.h to use either system heap or the file system.
To use system heap for the scoreboard replace #define USE_SHMGET_SCOREBOARD with #define USE_TPF_SCOREBOARD in the TPF section of ap_config.h.Besides compiling, make also runs src/main/gen_test_char.c and src/main/gen_uri_delims.c in order to create src/main/test_char.h and src/main/uri_delims.h respectively
At a minimum you must change every occurrence of "@@ServerRoot@@" to your document server root (for example "/usr/local/apache")
General documentation for Apache is located at http://httpd.apache.org/docs/ and in the HTML pages included with the distribution (tarball) under the /htdocs/manual directory.
Refer to the TCP/IP Offload Support section of the TPF TCP/IP publication for more information: http://www.ibm.com/tpf/pubs/tpfpubs.htm.
Note: Apache does not currently work with Native Stack.
/usr/local/apache/conf /usr/local/apache/logs /usr/local/apache/icons /usr/local/apache/htdocsAll gif, jpg, and zip files should be transferred as binary; the configuration file and html pages should be transferred as text.
Refer to the TFTP and FTP sections of the TPF TCP/IP publication for more information: http://www.ibm.com/tpf/pubs/tpfpubs.htm.
The following VisualAge compile settings are required: