mirror of
https://github.com/apache/httpd.git
synced 2025-05-17 15:21:13 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87505 13f79535-47bb-0310-9956-ffa450edef68
343 lines
17 KiB
HTML
343 lines
17 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>Installing Apache on TPF</TITLE>
|
|
</HEAD>
|
|
|
|
<BODY>
|
|
|
|
<blockquote><strong>Warning:</strong>
|
|
This document has not been updated to take into account changes
|
|
made in the 2.0 version of the Apache HTTP Server. Some of the
|
|
information may still be relevant, but please use it
|
|
with care.
|
|
</blockquote>
|
|
|
|
<H1 ALIGN="center">
|
|
<A NAME="top">Installing the Apache 1.3 HTTP Server on TPF</A>
|
|
</H1>
|
|
<HR>
|
|
<CENTER>[ <A HREF="#download">Download</A>
|
|
| <A HREF="#compilation">Compilation</A>
|
|
| <A HREF="#installation">Installation</A>
|
|
| <A HREF="#visualage">VisualAge</A> ]
|
|
</CENTER>
|
|
<HR>
|
|
<BR>
|
|
|
|
<P>
|
|
This document outlines the steps needed to install Apache onto a TPF system.
|
|
</P>
|
|
<P>
|
|
You should first read
|
|
htdocs/manual/<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 functions & modules.
|
|
</P>
|
|
<H2 align=center><A NAME="download">Download</A></H2>
|
|
Releases of the Apache server are compressed into a "tarball" file and stored on the Apache web site.
|
|
You will need to choose a version and download the corresponding tarball to your PC.
|
|
Additionally the source code from the tarball will need to be copied onto an MVS OS/390 Open Edition machine
|
|
(later referred to simply as "Open Edition") for compiling.
|
|
So here are all the details on how to get Apache and how to get it where it needs to be:
|
|
<ol>
|
|
<li><A HREF="http://www.apache.org/dist/">Download</A>
|
|
the gzipped Apache files (the "tarball") to your PC.
|
|
The file name on the web site will be something like <i>apache_1.3.x.tar.gz</i>.
|
|
<br><font color=red size=4>TIP: </font>Be sure to keep the <i>.tar.gz</i> extension
|
|
when choosing the name of the PC file.
|
|
<br><br>
|
|
<li>Decompress the tarball on your PC using WinZip or some other PC decompression tool.
|
|
<br><font color=red size=4>TIP: </font>If you are using WinZip verify that the
|
|
<EM>"TAR File Smart CR/LF Conversion"</EM> 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>you will be told that the archive contains one file (such as <i>apache_1.3.x.tar</i>) -
|
|
allow WinZip to decompress it to a temporary folder
|
|
<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
|
|
</ul>
|
|
<br>
|
|
<li>FTP the tarball to your Open Edition machine using binary mode:
|
|
<ul>
|
|
<li>activate FTP in an MSDOS window: <tt><b>ftp <i>your.open.edition.machine.com</i></b></tt>
|
|
<li>sign in
|
|
<li>set mode to binary: <tt><b>binary</b></tt>
|
|
<li>send the file to Open Edition:<br>
|
|
<tt><b> send <i>c:\downloaded_filename.tar.gz open_edition_filename.tar.gz</i></b></tt>
|
|
<li>exit FTP: <tt><b>bye</b></tt>
|
|
</ul>
|
|
<br><font color=red size=4>TIP: </font>
|
|
Open Edition and UNIX file names are case sensitive. If you use an NFS client to transfer files
|
|
from your PC to Open Edition (instead of using FTP as described above) verify that the NFS drive will transfer the
|
|
file names with upper/lower case preserved.<br>
|
|
<br>
|
|
<li>Decompress the gzipped file on Open Edition: <tt><b>gunzip <i>open_edition_filename.tar.gz</i></b></tt>
|
|
<br>Note that the <i>.tar.gz</i> file will be replaced by the gunzipped <i>.tar</i> archive file.
|
|
<br><br>
|
|
<li>Extract the archived files necessary for compiling Apache:
|
|
<ul>
|
|
<li><tt><b>pax -rvkf <i>open_edition_filename.tar</i> -o from=ISO8859-1,to=IBM-1047 "*/src"</b></tt>
|
|
<li>switch to the source code subdirectory of the newly extracted apache directory: <tt><b>cd <i>apache-1.3</i>/src</b></tt>
|
|
<li>remove unnecessary subdirectories:
|
|
<tt><b>rm -r os/bs2000 os/mpeix os/netware os/os2 os/os390 os/win32</b></tt>
|
|
</ul>
|
|
</ol>
|
|
<br>
|
|
<H2 align=center><A NAME="compilation">Compilation</A></H2>
|
|
<P>
|
|
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>
|
|
<P>
|
|
The provided scripts assume a c89 compiler and have only been tested on an
|
|
Open Edition environment. If you are using a platform other that
|
|
Open Edition you may need to modify src/os/tpf/TPFExport and src/Configure
|
|
to match your environment.
|
|
</P>
|
|
<font color=red size=4>TIP: </font>
|
|
Editing files on your PC prior to moving them to Open Edition 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 Open Edition,
|
|
edit them in a UNIX editor such as vi or emacs.<br>
|
|
<P>
|
|
Note that Open Edition commands in this section are shown in
|
|
<TT><STRONG>bold</STRONG></TT>,
|
|
are case sensitive, and must be made from the "src" directory.
|
|
</P>
|
|
<OL>
|
|
<LI>Overlay src/Configuration with src/Configuration.tmpl:
|
|
<TT><STRONG>cp Configuration.tmpl Configuration</STRONG></TT>
|
|
<BR><BR>
|
|
<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><BR>
|
|
<UL>
|
|
<LI>Adjust the Rules and <TT>EXTRA_CFLAGS|LIBS|LDFLAGS|INCLUDES</TT>
|
|
if you feel so inclined.
|
|
<BR><BR>
|
|
<LI>Comment out (by preceding the line with a "#") lines corresponding
|
|
to those modules you DO NOT wish to include.
|
|
<BR><BR>
|
|
<LI>Uncomment (by removing the initial "#", if present) lines
|
|
corresponding to those optional modules you wish
|
|
to include or add new lines corresponding to any custom modules
|
|
you have written.
|
|
The htdocs/manual/<A HREF="readme-tpf.html">readme-tpf.html</A>
|
|
document lists the modules that have been tested on TPF.
|
|
</UL>
|
|
<br>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://www.apache.org/dist/contrib/modules/">http://www.apache.org/dist/contrib/modules/</A>.
|
|
There are instructions on that page for linking these modules into the core Apache
|
|
code.
|
|
<BR><BR>
|
|
<LI>Set the TPF environment variables:
|
|
<TT><STRONG>. os/tpf/TPFExport</STRONG></TT>
|
|
<BR>
|
|
(The initial period and blank on the command are required to ensure
|
|
the environment variables exist beyond the scope of the shell script.)
|
|
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 Open Edition 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><BR>
|
|
<LI>Run the "Configure" script:
|
|
<TT><STRONG>Configure</STRONG></TT>
|
|
<BR>
|
|
This generates modules.c, include/ap_config_auto.h, and necessary Makefiles:
|
|
<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, <EM>e.g.</EM>,
|
|
<BR>
|
|
<TT><STRONG>Configure -file Configuration.ai</STRONG></TT>
|
|
<BR>
|
|
<PRE>
|
|
Using config file: Configuration.ai
|
|
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...
|
|
<BR><BR><PRE>
|
|
pull up the flagged file: <STRONG>vi Configure</STRONG>
|
|
turn on punctuation: <STRONG>:set list</STRONG>
|
|
go to the line in question: <STRONG>146G</STRONG>
|
|
or find a line with a "\": <STRONG>/\\</STRONG></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.
|
|
<BR><PRE> close the file: <STRONG>:q </STRONG>(or <STRONG>:quit!</STRONG>)</PRE>
|
|
|
|
<LI>Edit include/ap_config.h if you would like the scoreboard kept in shared
|
|
memory instead of file or system heap.<br>
|
|
The default behavior for Apache on all platforms <i>except</i> 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 system heap. Available with
|
|
PUT10 is the use of shared memory for the scoreboard in place of the file system.
|
|
This reduces file activity for the parent Apache ECB and improves performance.
|
|
To activate shared memory, uncomment or <em>add</em> the directive
|
|
<tt><b>#define USE_SHMGET_SCOREBOARD</b></tt>
|
|
and comment out or <em>remove</em> the directive <tt><b>#define USE_TPF_SCOREBOARD</b></tt>
|
|
both of which are in the TPF section in ap_config.h.
|
|
This change will only take effect after Apache is (re)compiled.
|
|
<br><br>
|
|
If you prefer to use the file system instead of system heap or shared memory, ensure that both
|
|
<tt>USE_TPF_SCOREBOARD</tt> and <tt>USE_SHMGET_SCOREBOARD</tt> are commented out or removed.
|
|
This change will only take effect after Apache is (re)compiled.
|
|
|
|
<A NAME="daemon"></A><br> <br>
|
|
<LI>Edit include/ap_config.h if you plan on using the ZINET DAEMON model instead of the NOLISTEN model.<br>
|
|
The default behavior is to let Apache check the server status (active/inactive) with ZINET
|
|
and shut itself down when appropriate. The default behavior also includes checking Apache's activation number.
|
|
Available with PUT11 (PJ25761) ZINET can perform these functions instead of Apache by using the DAEMON model.
|
|
This model offers increased reliability and is preferred over the NOLISTEN model.
|
|
If Apache goes down while running under the NOLISTEN model ZINET will not reactivate it nor alert the operator.
|
|
To use the DAEMON model you must modify the default behavior of Apache by uncommenting or adding the directive
|
|
<tt><b>#define USE_TPF_DAEMON</b></tt> within the TPF section in ap_config.h.
|
|
This directive is also recommend when starting Apache from the command line (APAR PJ26515).
|
|
This change will only take effect after Apache is (re)compiled.
|
|
<br><br>
|
|
|
|
|
|
<LI>Now compile the programs: <TT><STRONG>make</STRONG></TT><BR>
|
|
Besides compiling, <tt>make</tt> also runs main/gen_test_char.c and main/gen_uri_delims.c
|
|
in order to create main/test_char.h and main/uri_delims.h respectively<BR><BR>
|
|
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
|
|
<TT><STRONG>Configure</STRONG></TT> step.
|
|
</OL>
|
|
|
|
<A NAME="installation"> </A>
|
|
<H2 align=center>Installation</H2>
|
|
<OL>
|
|
<LI>Link the compiled object files into a DLL.
|
|
Sample link JCL has been included as src/os/tpf/samples/linkdll.jcl.
|
|
You will need to modify this JCL:
|
|
<ul>
|
|
<li>Change the IDs, data set names, and libraries for your particular site.
|
|
<li>Add/remove <TT>mod_<EM>xxx</EM>.o</TT> files so they correspond to the
|
|
<TT>mod_<EM>xxx</EM>.o</TT> lines in your src/Configuration file.
|
|
</ul>
|
|
<br><font color=red size=4>TIP: </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>
|
|
<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>
|
|
<LI>Load (<tt>ZOLDR LOAD</tt>) and activate (<tt>ZOLDR ACT</tt>) the loadset on your test system.
|
|
<br><br>
|
|
<LI>Ensure that the program name you are using for Apache has <tt>RESTRICT</tt> and <tt>KEY0</tt> authorization.
|
|
<tt><b>zdpat <i>pppp</i> </b>(<b>c-c</b>)</tt> will display allocation information.
|
|
You can use <tt><b>zapat <i>pppp</i> restrict key0 </b>(<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
|
|
INVALID PROGRAM NAME from the <tt>zdpat/zapat</tt> entries.
|
|
<br><br>
|
|
<LI>
|
|
Apache 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.
|
|
<BR><BR>
|
|
General documentation for Apache is located at
|
|
<A HREF="http://www.apache.org/docs/">http://www.apache.org/docs/</A>
|
|
and in the HTML pages included with the distribution (tarball) under the
|
|
/htdocs/manual directory.
|
|
<BR><BR>
|
|
<LI>On TPF activate ZCLAW and update INETD using ZINET entries, the common case:
|
|
<BR><BR>
|
|
<PRE>
|
|
ZINET ADD S-TFTP PGM-CTFT PORT-69 PROTOCOL-UDP MODEL-NOWAIT
|
|
|
|
ZINET ADD S-APACHE PGM-<EM>pppp</EM> MODEL-NOLISTEN
|
|
or ZINET ADD S-APACHE PGM-<EM>pppp</EM> MODEL-DAEMON USER-root <A HREF="#daemon">(see notes above regarding the DAEMON model)</A></PRE>
|
|
Please refer to <EM>IBM Transaction Processing Facility Transmission Control
|
|
Protocol/Internet Protocol Version 4 Release 1</EM> for more information
|
|
on ZCLAW, INETD, and TFTP.
|
|
<BR><BR>
|
|
<LI>Prior to sending a request to your Apache server from a browser,
|
|
TFTP the configuration file, log, icons and web pages to your TPF system.
|
|
A typical directory structure for Apache is as follows:
|
|
<PRE> /usr/local/apache/conf
|
|
/usr/local/apache/logs
|
|
/usr/local/apache/icons
|
|
/usr/local/apache/htdocs</PRE>
|
|
All gif, jpg, and zip files should be TFTP'd as binary; conf files and html pages should be TFTP'd as text.
|
|
<br>The logs directory must exist in order to avoid an <CODE>fopen</CODE> error while running Apache.
|
|
If you're running a PUT10 or higher version of TPF make the directory using the
|
|
<tt><b>zfile mkdir /usr/local/apache/logs</b></tt> functional entry.
|
|
If you're running TPF version PUT09 TFTP an empty file into the logs subdirectory to create it.
|
|
<br><br>
|
|
<LI>Start the server using the <tt><b>ZINET START S-APACHE</b></tt> command.
|
|
</OL>
|
|
<A NAME="visualage"> </A>
|
|
<H2 align=center>Compiling with VisualAge TPF</H2>
|
|
<P>
|
|
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.
|
|
<BR><BR>
|
|
The following VisualAge compile settings are required:
|
|
</P>
|
|
<UL>
|
|
<LI><EM>"DEFINE - Define preprocessor macro name(s)"</EM> must include
|
|
<TT><STRONG>TPF, CHARSET_EBCDIC, _POSIX_SOURCE,</STRONG></TT> and
|
|
<TT><STRONG>USE_HSREGEX</STRONG></TT>
|
|
<BR><BR>
|
|
<LI><EM>"LSEARCH - Path for user include files"</EM> must include
|
|
<TT><STRONG>../src/include</STRONG></TT> and <TT><STRONG>../src/os/tpf</STRONG></TT>
|
|
<BR><BR>
|
|
<LI><EM>"DLL - Generate DLL code"</EM> must be checked
|
|
<BR><BR>
|
|
<LI><EM>"LONGNAME - Support long names"</EM> must be checked
|
|
</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>
|