+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-
- <title>Installing Apache on TPF</title>
- </head>
-
- <body>
- <center>
- <h2><a id="top" name="top"></a>Installing the Apache 1.3 HTTP
- Server on TPF</h2>
- </center>
- <hr />
-
- <center>
- [ <a href="#download">Download</a> | <a
- href="#compilation">Compilation</a> | <a
- href="#installation">Installation</a> | <a
- href="#visualage">VisualAge</a> ]
- </center>
- <hr />
-
- <p>This document outlines the steps needed to install Apache
- onto a TPF system.</p>
-
- <p>You should first read <a
- href="readme-tpf.html">readme-tpf.html</a> for basic
- information on the port of Apache to TPF including required PUT
- level and supported modules.<br />
- <br />
- <br />
- </p>
-
- <center>
- <h2><a id="download" name="download"></a>Download</h2>
- </center>
- Releases of the Apache server are compressed into a "tarball"
- file which must be downloaded to your PC. Additionally the
- source code from the tarball will need to be copied onto an
- OS/390 UNIX System Services machine (later referred to simply
- as "OS/390 UNIX") for compiling. Here are all the details on
- how to get Apache and how to get it where it needs to be:
-
- <ol>
- <li>Download the compressed Apache files (the "tarball") to
- your PC. The file name on the web site will be something like
- <tt>apache_1.3.<i>xx</i>.tar.Z</tt>.<br />
- <font color="#FF0000"><font size="+1">TIP:</font></font> Be
- sure to keep the <tt>.tar.Z</tt> extension when choosing the
- name of the PC file. <br />
- </li>
-
- <li>
- Decompress the tarball on your PC using WinZip or some
- other PC decompression tool.<br />
- <font color="#FF0000"><font size="+1">TIP:</font></font>
- If you are using WinZip verify that the <i>"TAR File Smart
- CR/LF Conversion"</i> option (under Options, Configuration)
- is NOT checked.<br />
- This is what you can expect if you use WinZip:
-
- <ul>
- <li>open the tarball with WinZip (this can usually be
- done simply by double-clicking on the downloaded
- tarball) </li>
-
- <li>you will be told that the archive contains one file
- (such as apache_1.3.<i>xx</i>.tar) - allow WinZip to
- decompress it to a temporary folder </li>
-
- <li>extract the archived files onto your PC - you'll be
- using files from the <tt>conf, htdocs,</tt> and
- <tt>icons</tt> directories later in the install
- phase <br />
- <br />
- </li>
- </ul>
- </li>
-
- <li>FTP the tarball to your OS/390 UNIX machine using binary
- mode:
-
- <ul>
- <li>activate FTP in an MSDOS window:
- <b><tt>ftp <i>your.os390.unix.machine.com</i></tt></b> </li>
-
- <li>sign in </li>
-
- <li>set mode to binary: <b><tt>binary</tt></b> </li>
-
- <li>send the file to OS/390 UNIX:<br />
- <b><tt> send <i>c:\downloaded_filename</i>.tar.Z
- <i>os390_unix_filename</i>.tar.Z</tt></b></li>
-
- <li>exit FTP: <b><tt>bye</tt></b> </li>
- </ul>
-
- <p><font color="#FF0000"><font size="+1">TIP:</font></font>
- 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. </p>
- </li>
-
- <li>Decompress and extract the archived files necessary for compiling
- Apache:<br />
- <b><tt>pax -rvzkf <i>os390_unix_filename</i>.tar.Z -o from=ISO8859-1,to=IBM-1047 "*/src"</tt></b><br />
- </li>
-
- <li><a id="delete-expat" name="delete-expat"></a>
- Remove unnecessary subdirectories:
- <ul>
- <li><b><tt>cd apache_1.3.<em>xx</em>/src/lib</tt></b></li>
- <li><b><tt>rm -r expat-lite sdbm</tt></b></li>
- <li><b><tt>cd ../os</tt></b></li>
- <li><b><tt>rm -r bs2000 cygwin mpeix netware os2 os390 win32</tt></b></li>
- <li><b><tt>cd ..</tt></b></li>
- </ul>
-
- </li>
- </ol>
-
- <center>
- <h2><a id="compilation"
- name="compilation"></a>Compilation</h2>
- </center>
- Apache supports the notion of "optional modules". However, the
- server has to know which modules are compiled into it. In order
- for those modules to be effective, it is necessary to generate
- a short bit of code (modules.c) which simply has a list of
- them. If you are using the <tt>Configure</tt> utility and
- <tt>make</tt>, modules.c and other necessary files will be
- created for you automatically.
-
- <p>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.<br />
- <br />
- <font color="#FF0000"><font size="+1">TIP:</font></font>
- 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.</p>
-
- <p>Note that OS/390 UNIX commands in this section are shown in
- <b><tt>bold</tt></b>, are case sensitive, and must be made from
- the "src" directory.</p>
-
- <ol>
- <li>Switch to the source code subdirectory:
- <b><tt>cd apache_1.3.<em>xx</em>/src</tt></b><br />
- </li>
-
- <li>Overlay src/Configuration with src/Configuration.tmpl:
- <b><tt>cp Configuration.tmpl Configuration</tt></b><br />
- </li>
-
- <li>Edit src/Configuration. It contains the list and settings
- of various "Rules" and an additional section at the bottom
- that determines which modules to compile:<br />
-
-
- <ul>
- <li>comment out (by preceding the line with a "#") lines
- corresponding to those modules you DO NOT wish to
- include
- </li>
-
- <li>uncomment (by removing the initial "#", if present)
- lines corresponding to those modules you wish to include
- or add new lines corresponding to any custom modules you
- have written (the <a href="readme-tpf.html">readme-tpf.html</a> document lists
- the modules that have been tested on TPF) </li>
-
- <li>if you did not delete the src/lib/expat-lite directory
- as noted in the <a href="#delete-expat">download instructions</a>,
- add "<tt>Rule EXPAT=no</tt>" to the src/Configuration file</li>
-
- <li>adjust the other rules, <tt>EXTRA_CFLAGS</tt>, <tt>EXTRA_LIBS</tt>, <tt>EXTRA_LDFLAGS</tt>,
- and <tt>EXTRA_INCLUDES</tt> settings if you feel so inclined</li>
-
- </ul>
-
- <p>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 <a
- href="http://modules.apache.org/">http://modules.apache.org/</a>.
- There are instructions on that page for linking these
- modules into the core Apache code. </p>
- </li>
-
- <li>
- Indicate whether the <tt>non_socket_select</tt> function is
- implemented on your system.
-
- <p>If you are on a PUT12 or higher system, or have PJ26895
- installed, then you probably support
- <tt>non_socket_select</tt>.<br />
- You can verify this by looking for the
- <tt>non_socket_select</tt> prototype in your system header
- files (specifically <tt>i$pwbl.h</tt>).</p>
-
- <p>If your TPF system supports <tt>non_socket_select</tt>
- do <em>one</em> of the following:<br />
- </p>
-
- <ul>
- <li>add "<tt>#define TPF_HAVE_NONSOCKET_SELECT</tt>"
- to
- <tt>src/os/tpf/os.h</tt> <em>or</em></li>
-
- <li>add "<tt>-DTPF_HAVE_NONSOCKET_SELECT</tt>" to the
- <tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
- </ul>
- <br />
-
- <p>Otherwise:<br />
- </p>
-
- <ul>
- <li>add "<tt>#define TPF_NO_NONSOCKET_SELECT</tt>"
- to
- <tt>src/os/tpf/os.h</tt> <em>or</em></li>
-
- <li>add "<tt>-DTPF_NO_NONSOCKET_SELECT</tt>" to the
- <tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
- </ul>
- <br />
-
- <p>Without <tt>non_socket_select</tt> CGI output is
- buffered and only sent to the browser when the CGI program
- finishes.</p>
- </li>
-
- <li>
- Indicate whether the <tt>tpf_sawnc</tt> function is
- implemented on your system.
-
- <p>If you are on a PUT10 or higher system, or have
- PJ27387/PJ26188 installed, then you probably support
- <tt>tpf_sawnc</tt>.<br />
- You can verify this by looking for the <tt>tpf_sawnc</tt>
- prototype in your system header files (either
- <tt>tpfapi.h</tt> or <tt>i$fsdd.h</tt>).</p>
-
- <p>If your TPF system supports <tt>tpf_sawnc</tt> do
- <em>one</em> of the following:<br />
- </p>
-
- <ul>
- <li>add "<tt>#define TPF_HAVE_SAWNC</tt>" to
- <tt>src/os/tpf/os.h</tt> <em>or</em></li>
-
- <li>add "<tt>-DTPF_HAVE_SAWNC</tt>" to the
- <tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
- </ul>
- <br />
-
- <p>Otherwise:<br />
- </p>
-
- <ul>
- <li>add "<tt>#define TPF_NO_SAWNC</tt>" to
- <tt>src/os/tpf/os.h</tt> <em>or</em></li>
-
- <li>add "<tt>-DTPF_NO_SAWNC</tt>" to the
- <tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
- </ul>
- <br />
-
- <p>The use of <tt>tpf_sawnc</tt> allows for a cleaner
- shutdown of Apache.</p>
- </li>
-
- <li>
- Indicate if you would like to use the TCP/IP network services database.
- (This only applies if you are using TCP/IP native stack.)
-
- <p>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 <em>one</em> of the following:<br />
- </p>
-
- <ul>
- <li>add "<tt>#define TPF_HAVE_NSD</tt>" to
- <tt>src/os/tpf/os.h</tt> <em>or</em></li>
-
- <li>add "<tt>-DTPF_HAVE_NSD</tt>" to the
- <tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
-
- </ul>
- <br />
-
- <p>See <em>TPF Transmission Control Protocol/Internet Protocol</em> for more information
- about the TCP/IP network services database:
- <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">http://www.ibm.com/tpf/pubs/tpfpubs.htm</a>.</p>
- </li>
-
- <li><a id="export" name="export"></a>
- Set the TPF environment variables:
- <b><tt>. os/tpf/TPFExport</tt></b> <br />
- <br />
- <font color="#FF0000"><font size="+1">TIP:</font></font> The
- initial period and blank on the command are required to
- ensure the environment variables exist beyond the scope of
- the shell script.<br />
- <br />
- This script will set the environment variables required to
- compile the programs for TPF. Verify that the export
- variables are valid for your installation, in particular, the
- system include file directories. The system include files
- must reside on your OS/390 UNIX system in the appropriate
- file structure similar to /usr/include and /usr/include/sys.
- DO NOT modify the <tt>TPF=YES</tt> export variable. If this
- is changed, the "Configure" script will not recognize
- TPF. <br />
- </li>
-
- <li><a id="run-configure" name="run-configure"></a>
- Run the "Configure" script:
- <b><tt>Configure</tt></b> <br />
-
-
- <p>This generates modules.c, include/ap_config_auto.h, and
- necessary Makefiles:</p>
-<pre>
- 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 modules/standard
- $ _
-
-</pre>
- If you want to maintain multiple configurations, you can
- say, <i>for example</i>, <br />
- <b><tt>Configure -file Configuration.2nd</tt></b>
-
-<pre>
- Using config file: Configuration.2nd
- Creating Makefile
- + configured for <whatever> platform
- + setting C compiler to <whatever>
- et cetera
-</pre>
- If you receive an error such as "<tt>Configure 146:
- FSUM7351 not found</tt>" the most likely explanation is
- that one or more of the <tt>make</tt> 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...
-<pre>
- pull up the flagged file: <b>vi Configure
-</b> turn on punctuation: <b>:set list
-</b> go to the line in question: <b>146G
-</b> or find a line with a "\": <b>/\\</b>
-</pre>
-
- The end of line should display as "<tt>\$</tt>". If it is
- displayed as "<tt>\ $</tt>" (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.
-<pre>
- close the file: <b>:q</b> (or <b>:quit!</b>)
-</pre>
- </li>
-
- <li>
- Edit include/ap_config.h if you do <em>not</em> want the
- scoreboard kept in shared memory.<br />
-
-
- <p>The default behavior for Apache on all platforms
- <em>except</em> 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.</p>
- To use system heap for the scoreboard replace
- <tt>#define USE_SHMGET_SCOREBOARD</tt> with
- <tt>#define USE_TPF_SCOREBOARD</tt> in the TPF section
- of ap_config.h.<br />
- <br />
- If you prefer instead to use the file system, remove both
- <tt>#define USE_SHMGET_SCOREBOARD</tt> and
- <tt>#define USE_TPF_SCOREBOARD</tt> from the TPF
- section of ap_config.h<br />
- <br />
- The change will only take effect after Apache is
- (re)compiled.<br />
-
- </li>
-
- <li>
- Now compile the programs: <b><tt>make</tt></b><br />
-
-
- <p>Besides compiling, <tt>make</tt> 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</p>
-
- <ul>
- <li>
- The following compilation warning is expected and can
- be ignored:<br />
- <br />
-
-
- util_uri.c: <tt>Function argument
- assignment between types "unsigned char*" and "const
- unsigned char*" is not allowed.</tt>
- <br />
- <br />
- </li>
-
- <li>If during compilation you get a warning about a
- missing 'regex.h', set <tt>WANTHSREGEX=yes</tt> in the
- src/Configuration file and start back at the <a
- href="#configure"><tt><b>Configure</b></tt></a>
- step.<br />
- </li>
-
- <li>If you get a
- '<tt>Duplicate type specifier "long" ignored</tt>'
- error, add "<tt>-W 0,langlvl(extended)</tt>" to the
- <tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport and
- start back at the <a
- href="#export"><tt><b>export</b></tt></a> step</li>
- </ul>
- </li>
- </ol>
- <a id="installation" name="installation"></a>
-
- <center>
- <h2>Installation</h2>
- </center>
-
- <ol>
- <li>
- Link the compiled object files into a DLL. Sample link JCL
- has been included as src/os/tpf/samples/linkhttp.jcl. You
- will need to modify this JCL:<br />
-
- <ul>
- <li>Change the IDs, data set names, and libraries for
- your particular site. </li>
-
- <li>Add/remove <tt>mod_<i>xxx</i>.o</tt> files so they
- correspond to the <tt>mod_<i>xxx</i>.o</tt> lines in your
- src/Configuration file. </li>
- </ul>
- <br />
- <font color="#FF0000"><font size="+1">TIP:</font></font>
- Do NOT include gen_test_char.o or gen_uri_delims.o in the
- link JCL since these files are only used during the
- <tt>make</tt> step. <br /><br />
-
-
- If you receive an "Unresolved references" error for "<tt>XML_ErrorString</tt>"
- you probably need to <a href="#delete-expat">remove the expat-lite directory</a>
- and start back at the "<a href="#run-configure">Run the Configure script" step</a><br /><br />
-
-
- If you receive an "unable to open" error for <tt>lib/expat-lite/hashtable.o</tt>"
- you probably need to remove all of the expat-lite .o's from your link JCL<br />
-
-
- </li>
-
- <li>Create a loadset. Sample loadset JCL has been included as
- src/os/tpf/samples/loadset.jcl. You will need to modify this
- JCL for your particular site.<br />
- <br />
- A JCL condition code of 4 is expected since the C load
- module will contain no link map data.<br />
- </li>
-
- <li>Load (<tt>ZOLDR LOAD</tt>) and activate (<tt>ZOLDR
- ACT</tt>) the loadset on your test system.<br />
- </li>
-
- <li>Ensure that the program name you are using for Apache has
- <tt>RESTRICT</tt> and <tt>KEY0</tt> authorization.
- <b><tt>zdpat <i>chta</i> </tt> (</b>c-c) will
- display allocation information. You can use
- <b><tt>zapat <i>chta</i> restrict key0 </tt></b>
- <tt>(<b>c-c</b>)</tt> to alter the authorization. Note
- that if the program name is unallocated, you must have the
- loadset for it activated or you will receive <tt>INVALID
- PROGRAM NAME</tt> from the <tt>zdpat/zapat</tt>
- entries.<br />
- </li>
-
- <li>
- Create the Apache run-time configuration file. The server
- requires a configuration file to initialize itself during
- activation. (Previously three configuration files were
- used.) Copy the distribution version,
- /conf/httpd.conf-dist, to /conf/httpd.conf and then edit
- the /conf/httpd.conf copy with your site specific
- information.
-
- <p>At a minimum you must change every occurrence of
- "<tt>@@ServerRoot@@</tt>" to your document server root (for
- example "<tt>/usr/local/apache</tt>")</p>
- </li>
-
- <li>
- <p>General documentation for Apache is located at <a
- href="http://httpd.apache.org/docs/">http://httpd.apache.org/docs/</a>
- and in the HTML pages included with the distribution
- (tarball) under the <tt>/htdocs/manual</tt> directory.
- </p>
- </li>
-
- <li>
- On TPF activate your TCP/IP Offload (ZCLAW) or Native Stack communications device.
-
- <p>Refer to the <em>TPF TCP/IP</em> publication for more information: <a
- href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">http://www.ibm.com/tpf/pubs/tpfpubs.htm</a>.</p>
-
- </li>
-
- <li>
- Using either TFTP or FTP, transfer the configuration file,
- icons, and web pages to your TPF system. A typical
- directory structure for Apache is as follows:<br />
-<pre>
-<tt> /usr/local/apache/conf
- /usr/local/apache/logs
- /usr/local/apache/icons
- /usr/local/apache/htdocs
-</tt>
-</pre>
- All gif, jpg, and zip files should be transferred as
- binary; the configuration file and html pages should be
- transferred as text. <br />
- <br />
- The logs directory must exist in order to avoid an
- <tt>fopen</tt> error while running Apache:<br />
- <br />
-
- If you're running a PUT10 or higher version of TPF make
- the directory using the <b><tt>zfile
- mkdir /usr/local/apache/logs</tt></b> command.<br />
- <br />
- If you're running TPF version PUT09 TFTP an empty file
- into the logs subdirectory to create it. <br />
- <br />
-
- Make sure Apache can write into the logs subdirectory by
- doing a <tt>zfile chmod</tt> on it with the
- appropriate permission settings.
-
- <p>Refer to the TFTP and FTP sections of the <em>TPF
- TCP/IP</em> publication for more information: <a
- href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">http://www.ibm.com/tpf/pubs/tpfpubs.htm</a>.</p>
- </li>
-
- <li>
- On TPF add Apache to the Internet Daemon's tables using
- ZINET entries, the common case:<br />
- <br />
-
-
- <ul>
- <li>For PUT11 and later use the DAEMON model for
- Apache: <tt><b>ZINET ADD S-APACHE PGM-<em>chta</em> MODEL-DAEMON USER-root</b></tt></li>
-
- <li>On pre-PUT11 systems use the NOLISTEN model
- instead: <tt><b>ZINET ADD S-APACHE PGM-<em>chta</em> MODEL-NOLISTEN</b></tt></li>
- </ul>
- <br />
- <font color="red" size="4">TIP:</font> Logic changes
- implemented with PUT11 cause ZINET to <i>not</i> restart
- NOLISTEN servers after <tt>ZOLDR ACT</tt> and
- <tt>ZOLDR DEACT</tt> entries. This means that Apache
- running as NOLISTEN on a PUT11 or later system will exit
- whenever any <tt>ZOLDR ACT</tt> or
- <tt>ZOLDR DEACT</tt> entry is made. Therefore at PUT11
- you should switch to the DAEMON model and ensure that you
- have APARs PJ25761 and PJ27363 applied.<br />
- <br />
- Refer to the Internet Daemon section of the <em>TPF
- TCP/IP</em> publication for more information: <a
- href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">http://www.ibm.com/tpf/pubs/tpfpubs.htm</a>.<br />
- <br />
- </li>
-
- <li>Start the server using the
- <b><tt>ZINET START S-APACHE</tt></b> command.<br />
- <br />
- </li>
-
- <li>Request a page from your browser:
- <tt><b>http://<i>xx.xx.xx.xx</i></b></tt>
- (where <i>xx.xx.xx.xx</i> is your IP
- address)</li>
- </ol>
- <a id="visualage" name="visualage"></a>
-
- <center>
- <h2>Compiling with VisualAge TPF</h2>
- </center>
- It is not required that <tt>make</tt> be used to compile Apache
- for TPF: Individual programs may be compiled using IBM's
- VisualAge TPF product. This is particularly useful when
- compiling selected programs for the Debug Tool.
-
- <p>The following VisualAge compile settings are required:</p>
-
- <ul>
- <li><i>"DEFINE - Define preprocessor macro name(s)"</i> must
- include <b><tt>TPF, CHARSET_EBCDIC, _POSIX_SOURCE,</tt></b>
- and <b><tt>USE_HSREGEX</tt></b>
- </li>
-
- <li><i>"LSEARCH - Path for user include files"</i> must
- include <b><tt>../src/include</tt></b> and
- <b><tt>../src/os/tpf</tt></b>
- </li>
-
- <li><i>"DLL - Generate DLL code"</i> must be checked
- </li>
-
- <li><i>"LONGNAME - Support long names"</i> must be checked
- </li>
- </ul>
-
- <hr />
- <center>
- [ <a href="#top">top</a> | <a
- href="#download">Download</a> | <a
- href="#compilation">Compilation</a> | <a
- href="#installation">Installation</a> | <a
- href="#visualage">VisualAge</a> ]
- </center>
- </body>
-</html>
-