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.
If you are on a PUT13 or higher system, or have PJ27214 installed,
you can use syslog for Apache's ErrorLog.
To have the option of using syslog you must do one of the following:
You also need to add "INCLUDE OBJLIB(CSYLOG40)" to your link JCL.
See TPF Transmission Control Protocol/Internet Protocol for more information about the Syslog Daemon: http://www.ibm.com/tpf/pubs/tpfpubs.htm.
If you are on a PUT16 or higher system, or have PJ28195 installed,
you can use the TCP/IP network services database.
To do so, you must do one of the following:
See TPF Transmission Control Protocol/Internet Protocol for more information about the TCP/IP network services database: http://www.ibm.com/tpf/pubs/tpfpubs.htm.
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 + using "tr [a-z] [A-Z]" to uppercase + 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 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 "\": /\\The end of line should display as "\$". If it is displayed as "\ $" (with a blank between \ and $) then you should revert to the distributed version of the file and make the site-specific changes again using a UNIX compatible editor such as vi or emacs. Then try the Configure command again.
close the file: :q (or :quit!)
The sigaction() function supersedes the signal() interface and should be used in preference. This function was implemented with APAR PJ26188 which shipped with PUT10.
To use sigaction() remove #define NO_USE_SIGACTION in the TPF section of ap_config.h.
The change will only take effect after Apache is (re)compiled.
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, or for some reason you do not want to use shared memory for the scoreboard, you must remove "#define USE_SHMGET_SCOREBOARD" from the TPF section of ap_config.h
The change will only take effect after Apache is (re)compiled.
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
inetd_getServer
and/or inetd_getServerStatus
functions
from failing.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 TPF TCP/IP publication for more information: http://www.ibm.com/tpf/pubs/tpfpubs.htm.
/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.