Mailing List Archive

cvs commit: httpd-docs-1.3/htdocs/manual install-tpf.html readme-tpf.html
gregames 00/09/27 10:37:32

Modified: htdocs/manual install-tpf.html readme-tpf.html
Log:
Update TPF platform-specific documents to reflect:
* changes to IBM's TPF operating system made this year, and
* suggestions from customers who are using these files.

Submitted by: David McCreedy <McCreedy@us.ibm.com>
Reviewed by: Greg Ames <gregames@raleigh.ibm.com>

Revision Changes Path
1.10 +60 -24 httpd-docs-1.3/htdocs/manual/install-tpf.html

Index: install-tpf.html
===================================================================
RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/install-tpf.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- install-tpf.html 1999/12/21 20:43:48 1.9
+++ install-tpf.html 2000/09/27 17:37:30 1.10
@@ -71,7 +71,8 @@
<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><tt><b>pax -rvkf <i>open_edition_filename.tar</i> -o from=ISO8859-1,to=IBM-1047 "*/src"</b></tt><br>
+ (any errors extracting files outside of the "src" directory can be ignored)
<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>
@@ -117,7 +118,7 @@
if you feel so inclined.
<BR><BR>
<LI>Comment out (by preceding the line with a "#") lines corresponding
- to those modules you DO&nbsp;NOT wish to include.
+ to those modules you do&nbsp;not wish to include.
<BR><BR>
<LI>Uncomment (by removing the initial "#", if present) lines
corresponding to those optional modules you wish
@@ -135,20 +136,24 @@
There are instructions on that page for linking these modules into the core Apache
code.
<BR><BR>
-<LI>Set the TPF environment variables:
+<LI><A NAME="export"></A>Set the TPF environment variables:
<TT><STRONG>.&nbsp;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.)
+ <br><font color=red size=4>TIP:</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 Open Edition system in the
appropriate file structure similar to /usr/include and /usr/include/sys.
- DO&nbsp;NOT modify the <TT>TPF=YES</TT> export variable. If this is
+ If your system header files contain line numbers in columns 72-80, you must truncate them.
+ <BR><BR>
+ Do&nbsp;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:
+<LI><A NAME="configure"></A>Run the "Configure" script:
<TT><STRONG>Configure</STRONG></TT>
<BR>
This generates modules.c, include/ap_config_auto.h, and necessary Makefiles:
@@ -166,16 +171,17 @@
Creating Makefile in os/tpf
Creating Makefile in ap
Creating Makefile in main
+ Creating Makefile in lib/expat-lite
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>
+ <TT><STRONG>Configure -file Configuration.2nd</STRONG></TT>
<BR>
<PRE>
- Using config file: Configuration.ai
+ Using config file: Configuration.2nd
Creating Makefile
+ configured for &lt;whatever&gt; platform
+ setting C compiler to &lt;whatever&gt;
@@ -216,25 +222,48 @@
This change will only take effect after Apache is (re)compiled.

<A NAME="daemon"></A><br>&nbsp;<br>
-<LI>Edit include/ap_config.h if you plan on using the ZINET DAEMON model instead of the NOLISTEN model.<br>
+<LI>Determine if you will use the ZINET DAEMON model instead of the default 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.
+ and shut itself down when appropriate. This default behavior also includes checking the activation number.
+ ZINET can now perform these functions instead of Apache by using the DAEMON model
+ <i>(PUT12 with APARs PJ25761 &amp; PJ27363 required).</i>
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&nbsp;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>
+ If Apache goes down while running under the NOLISTEN model, ZINET will not reactivate it nor alert
+ the operator.<br><br>
+ To use the DAEMON model you must do the following:<br><br>
+ <ul>
+ <li>Modify the default behavior of Apache by uncommenting or adding the directive
+ <code><b>#define&nbsp;USE_TPF_DAEMON</b></code> within the TPF section of include/ap_config.h.
+ This change will only take effect after Apache is (re)compiled.<br><br>
+ <li>Insert these four lines of code immediately prior to the <code>#endif</code> line in the
+ <code>os_check_server</code> function in os/tpf/os.c (if they are not already there):<br><br><code><ul>
+ #else<br>
+ if (getppid() == 1) {<br>
+ <ul>return 1;<br></ul>
+ }<br><br></ul></code>
+ </ul>


<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.
+ <A HREF="#configure"><TT><STRONG>Configure</STRONG></TT></A> step.<br><br>
+
+ If you get a <tt>'Duplicate&nbsp;type&nbsp;specifier&nbsp;"long"&nbsp;ignored'</tt> error,
+ append the following line to the os/tpf/TPFExport file and start back at the
+ <A HREF="#export"><TT><STRONG>export</STRONG></TT></A> step:<br><br>
+ <ul><tt>export _C89_OPTIONS="-W 0,langlvl(extended)"</tt></ul><br>
+
+ The following compilation warnings are expected and can be ignored:<br><br>
+ <ul>
+ <li>util_uri.c:&nbsp;&nbsp;&nbsp;<tt>Function argument assignment between types "unsigned char*" and "const unsigned char*" is not allowed.</tt>
+ <li>mod_put.c:&nbsp;&nbsp;&nbsp;<tt>#include file "ap_vercompat.h" not found</tt>
+ <li>mod_tpf_shm_static.c:&nbsp;&nbsp;&nbsp;<tt>#include file &lt;sys/mman.h&gt; not found</tt>
+ <li>mod_usertrack.c:&nbsp;&nbsp;&nbsp;<tt>#include file &lt;sys/time.h&gt; not found</tt>
+
</OL>

<A NAME="installation">&nbsp;</A>
@@ -248,13 +277,15 @@
<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
+ <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>
+ A JCL condition code of 4 is expected since the C load module will contain no link map data.
+ <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.
@@ -293,12 +324,17 @@
/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.
+ All gif, jpg, and zip files should be TFTP'd as binary; conf files and html pages should be TFTP'd as text.<br>
+ <br>The logs directory must exist in order to avoid an <CODE>fopen</CODE> error while running Apache:<br><br>
+ <ul>
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>
+ If you're running TPF version PUT09, TFTP an empty file into the logs subdirectory to create it.
+ <br><br>
+ Regardless of your TPF version, make sure Apache can write into the logs subdirectory by doing a
+ <tt><b>zfile chmod</b></tt> on it with the appropriate permission settings.
+ </ul><br>
<LI>Start the server using the <tt><b>ZINET START S-APACHE</b></tt> command.
</OL>
<A NAME="visualage">&nbsp;</A>



1.9 +66 -1 httpd-docs-1.3/htdocs/manual/readme-tpf.html

Index: readme-tpf.html
===================================================================
RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/readme-tpf.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- readme-tpf.html 2000/09/12 02:29:09 1.8
+++ readme-tpf.html 2000/09/27 17:37:30 1.9
@@ -9,6 +9,7 @@
<HR>
<CENTER>[.&nbsp;<A HREF="#configuration_files">Configuration Files</A>
&nbsp;|&nbsp;<A HREF="#whats_available">What's Available</A>
+ &nbsp;|&nbsp;<A HREF="#cgi">CGI Scripts</A>
&nbsp;|&nbsp;<A HREF="#porting_notes">Porting Notes</A>&nbsp;]
</CENTER>
<HR>
@@ -129,7 +130,7 @@
</UL></MULTICOL>
<A NAME="notes"></A><b>Notes:</b>
<ol>
- <li>Use of mod_access directives &quot;<tt>Allow from</tt>&quot; &amp; &quot;<tt>Deny from</tt>&quot;
+ <li>Use of mod_access directives &quot;<tt>allow from</tt>&quot; &amp; &quot;<tt>deny from</tt>&quot;
with host <i>names</i> (verses ip addresses) requires TPF version 4.1 PUT10
<li>CGI execution requires TPF version 4.1 PUT10
</ol>
@@ -157,6 +158,69 @@
<LI>suexec.c
</UL></MULTICOL>

+<A NAME="cgi">&nbsp;</A>
+<H2 align=center>How to Use CGI Scripts</H2>
+<P>
+ The following is a very simple example of a CGI script ("Hello World") and the necessary steps to run it.<BR>
+ Refer to the <A HREF="http://www.apache.org/docs/mod/mod_cgi.html">mod_cgi module</A> for
+ additional information.<BR>
+
+ <H3>Add necessary directives to httpd.conf:</H3>
+ <UL>
+ Example:
+ <tt><BR><UL>
+ ScriptLog logs/script_log<BR>
+ ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
+ </tt></UL><BR>
+ A request for <tt>http://myserver/cgi-bin/filename.cgi</tt> would cause the server to run the script
+ <tt>/usr/local/apache/cgi-bin/filename.cgi</tt>
+ </UL>
+
+ <H3>Create the CGI script:</H3>
+ <UL>
+ For this example <tt>QZZ1</tt> is the name of the TPF program that will be executed by the CGI script.<BR>
+ The directory path must match what is in the httpd.conf file for <tt>ScriptAlias</tt> directive.<BR><BR>
+ <UL>
+ <tt>zfile echo "#!QZZ1" > /usr/local/apache/cgi-bin/filename.cgi <BR><BR>
+ zfile cat /usr/local/apache/cgi-bin/filename.cgi&nbsp;&nbsp;&nbsp;&nbsp;</tt>
+ (this should display<tt>#!QZZ1</tt>)<BR><BR>
+ </UL>
+ </UL>
+
+ <H3>Mark the script as executable:</H3>
+ <UL>
+ <tt>zfile chmod 755 /usr/local/apache/cgi-bin/filename.cgi<BR><BR></tt>
+ </UL>
+
+ <H3>Create, load, and activate a loadset containing the CGI program (QZZ1xx):</H3>
+ <UL>
+ <code>
+ /** QZZ1-- simple "Hello world" program to demonstrate basic CGI output **/<BR><BR>
+ #include &LT;stdio.h&GT<BR><BR>
+ void main() {<BR><BR>
+ <UL>
+ /** Print the CGI response header, required for all HTML output. **/<BR>
+ /** Note the extra \n, to send the blank line. **/<BR><BR>
+
+ printf("Content-type: text/html\n\n");<BR><BR>
+
+ /** Print the HTML response page to stdout. **/<BR>
+ printf("&LT;html&GT\n");<BR>
+ printf("&LT;head&GT&LT;title&GT CGI Output &LT;/title&GT&LT;/head&GT\n");<BR>
+ printf("&LT;body&GT\n");<BR>
+ printf("&LT;h1&GT Hello world &LT;/h1&GT \n");<BR>
+ printf("&LT/body&GT\n");<BR>
+ printf("&LT/html&GT\n");<BR><BR>
+ </UL>
+ }<BR>
+ </code>
+ </UL>
+
+ <H3>Request the CGI script from a browser:</H3>
+ <UL>
+ <tt>http://myserver/cgi-bin/filename.cgi</tt><BR>
+ </UL>
+
<A NAME="porting_notes">&nbsp;</A>
<H2 align=center>Porting Notes</H2>
<P>
@@ -201,6 +265,7 @@
<CENTER>[.&nbsp;<A HREF="#top">top</A>
&nbsp;|&nbsp;<A HREF="#configuration_files">Configuration Files</A>
&nbsp;|&nbsp;<A HREF="#whats_available">What's Available</A>
+ &nbsp;|&nbsp;<A HREF="#cgi">CGI Scripts</A>
&nbsp;|&nbsp;<A HREF="#porting_notes">Porting Notes</A>&nbsp;]
</CENTER>