slive 01/09/12 08:06:51 Modified: htdocs/manual readme-tpf.html install-tpf.html Log: TPF doc updates Submitted by: David McCreedy Revision Changes Path 1.10 +470 -271 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.9 retrieving revision 1.10 diff -u -d -b -u -r1.9 -r1.10 --- readme-tpf.html 2000/09/27 17:37:30 1.9 +++ readme-tpf.html 2001/09/12 15:06:51 1.10 @@ -1,273 +1,472 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>The Apache TPF Port</TITLE> -</HEAD> -<BODY> -<A NAME="top"></A> -<H1 align="center">Overview of the Apache TPF Port</H1> -<HR> -<CENTER>[ <A HREF="#configuration_files">Configuration Files</A> - | <A HREF="#whats_available">What's Available</A> - | <A HREF="#cgi">CGI Scripts</A> - | <A HREF="#porting_notes">Porting Notes</A> ] -</CENTER> -<HR> -<BR> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>The Apache TPF Port</title> +</head> +<body> +<a name="top"></a> +<center> +<h1>Overview of the Apache TPF Port</h1> +</center> -<P> - This version of Apache includes changes allowing it to run on - IBM's EBCDIC-based - <A HREF="http://www.s390.ibm.com/products/tpf/tpfhp.html">TPF</A> - (Transaction Processing Facility) operating system. - Unless otherwise noted TPF version 4.1 PUT09 is required. - <BR><BR> - Refer to htdocs/manual/<A HREF="install-tpf.html">install-tpf.html</A> - for step-by-step installation instructions. - <BR><BR> - As this is the first cut at making Apache run on TPF, - performance tuning has not been done. - <BR><BR> - This port builds upon the <A HREF="ebcdic.html">EBCDIC changes</A> - previously made to Apache. - <BR> -</P> +<hr> +<center>[ <a href="#configuration_files">Configuration +Files</a> | <a href="#whats_available">What's +Available</a> | <a href="#cgi">CGI Scripts</a> + | <a href="#options">Options</a> + | <a href="#porting_notes">Porting Notes</a> +]</center> -<A NAME="configuration_files"> </A> -<H2 align=center>Apache Configuration Files</H2> -<P> - The distributed configuration files (httpd.conf-dist and - mime.types, both located in the conf subdirectory) - work on TPF. Performance considerations may dictate setting KeepAlive to "Off" - (the default is "On") or lowering the Timeout value from the default - 300 seconds (5 minutes) in order to reduce the number of active ECBs on your system. -</P> +<hr> +<p>This version of Apache includes changes allowing it to run on +IBM's EBCDIC-based <a href= +"http://www.ibm.com/software/ts/tpf/index.html">TPF</a> +(Transaction Processing Facility) operating system.<br> +Unless otherwise noted TPF version 4.1 PUT09 is required. </p> -<A NAME="whats_available"> </A> -<H2 align=center>What's Available in this Version</H2> +<p>Refer to <a href= +"install-tpf.html">install-tpf.html</a> for step-by-step installation +instructions. </p> - (The Apache organization provides - <A HREF="http://www.apache.org/docs/">online documentation</A> - describing the various modules and components of the server.) +<p>This port builds upon the <a href= +"http://httpd.apache.org/docs/ebcdic.html">EBCDIC changes</a> +previously made to Apache. <br> +<a name="configuration_files"></a></p> -<H3>Components/modules tested on TPF:</H3> +<center> +<h2>Apache Configuration Files</h2> +</center> - <multicol COLS=3><UL> - <LI>alloc.c - <LI>ap_base64.c - <LI>ap_checkpass.c - <LI>ap_cpystrn.c - <LI>ap_fnmatch.c - <LI>ap_md5c.c - <LI>ap_sha1.c - <LI>ap_signal.c - <LI>ap_slack.c - <LI>ap_snprintf.c - <LI>buff.c - <LI>buildmark.c - <LI>ebcdic.c - <LI>gen_test.char.c - <LI>gen_uri_delims.c - <LI>htpasswd.c <i><small>(requires PUT10)</small></i> - <LI>http_config.c - <LI>http_core.c - <LI>http_log.c - <LI>http_main.c - <LI>http_protocol.c - <LI>http_request.c - <LI>http_vhost.c - <LI>logresolve.c <i><small>(requires PUT10)</small></i> - <LI>mod_access.c <A HREF="#notes"> <i><small>(see note 1)</small></i></A> - <LI>mod_actions.c - <LI>mod_alias.c - <LI>mod_asis.c - <LI>mod_auth.c - <LI>mod_auth_anon.c - <LI>mod_autoindex.c - <LI>mod_cern_meta.c - <LI>mod_cgi.c <i><small>(requires PUT10)</small></i> - <LI>mod_digest.c - <LI>mod_dir.c - <LI>mod_env.c - <LI>mod_example.c - <LI>mod_expires.c - <LI>mod_headers.c - <LI>mod_imap.c - <LI>mod_include.c <A HREF="#notes"> <i><small>(see note 2)</small></i></A> - <LI>mod_info.c - <LI>mod_log_agent.c - <LI>mod_log_config.c - <LI>mod_log_referer.c - <LI>mod_mime.c - <LI>mod_mime_magic.c - <LI>mod_negotiation.c - <LI><A HREF="http://hpwww.ec-lyon.fr/~vincent/apache/mod_put.html">mod_put.c</A> - <i> <small>(third party module)</small></i> - <LI>mod_proxy.c - <LI>mod_setenvif.c - <LI>mod_speling.c - <LI>mod_status.c - <LI>mod_tpf_shm_static.c <i><small>(third party module, requires PUT10)</small></i> - <LI>mod_unique_id.c <i><small>(requires PUT10)</small></i> - <LI>mod_userdir.c - <LI>mod_usertrack.c - <LI>os.c - <LI>os-inline.c - <LI>proxy_cache.c - <LI>proxy_connect.c - <LI>proxy_ftp.c - <LI>proxy_http.c - <LI>proxy_util.c - <LI>regular expression parser - <LI>regular expression test tool <i><small>(requires PUT10)</small></i> - <LI>rfc1413.c - <LI>rotatelogs.c <i><small>(requires PUT10)</small></i> - <LI>util.c - <LI>util_date.c - <LI>util_md5.c - <LI>util_script.c - <LI>util_uri.c - </UL></MULTICOL> - <A NAME="notes"></A><b>Notes:</b> - <ol> - <li>Use of mod_access directives "<tt>allow from</tt>" & "<tt>deny from</tt>" - with host <i>names</i> (verses ip addresses) requires TPF version 4.1 PUT10 - <li>CGI execution requires TPF version 4.1 PUT10 - </ol> +The distributed configuration files (httpd.conf-dist and +mime.types, both located in the conf subdirectory) work on TPF. +Performance considerations may dictate setting KeepAlive to "Off" +(the default is "On") or lowering the Timeout value from the +default 300 seconds (5 minutes) in order to reduce the number of +active ECBs on your system.<br> +<a name="whats_available"></a> -<H3>Components/modules not yet supported on TPF:</H3> +<center> +<h2>What's Available in this Version</h2> +</center> - <multicol COLS=3><UL> - <LI>htdigest.c - <LI>lib/expat-lite - <LI>mod_auth_digest.c - <LI>mod_rewrite.c - <LI>mod_vhost_alias.c - </UL></MULTICOL> +The Apache organization provides <a href= +"http://httpd.apache.org/docs/">online documentation</a> describing +the various modules and components of the server. -<H3>Components/modules that don't apply or that probably won't ever be available on TPF:</H3> +<h3>Components/modules tested on TPF:</h3> - <multicol COLS=3><UL> - <LI>ab.c - <LI>ap_getpass.c - <LI>mod_auth_db.c - <LI>mod_auth_dbm.c - <LI>mod_auth_db.module - <LI>mod_mmap_static.c - <LI>mod_so.c - <LI>suexec.c - </UL></MULTICOL> +<ul> +<li>alloc.c </li> -<A NAME="cgi"> </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> +<li>ap_base64.c </li> - <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> +<li>ap_checkpass.c </li> - <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 </tt> - (this should display<tt>#!QZZ1</tt>)<BR><BR> - </UL> - </UL> +<li>ap_cpystrn.c </li> - <H3>Mark the script as executable:</H3> - <UL> - <tt>zfile chmod 755 /usr/local/apache/cgi-bin/filename.cgi<BR><BR></tt> - </UL> +<li>ap_ebcdic.c </li> - <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 <stdio.h><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> +<li>ap_fnmatch.c </li> - printf("Content-type: text/html\n\n");<BR><BR> +<li>ap_md5c.c </li> - /** Print the HTML response page to stdout. **/<BR> - printf("<html>\n");<BR> - printf("<head><title> CGI Output </title></head>\n");<BR> - printf("<body>\n");<BR> - printf("<h1> Hello world </h1> \n");<BR> - printf("</body>\n");<BR> - printf("</html>\n");<BR><BR> - </UL> - }<BR> - </code> - </UL> +<li>ap_sha1.c </li> - <H3>Request the CGI script from a browser:</H3> - <UL> - <tt>http://myserver/cgi-bin/filename.cgi</tt><BR> - </UL> +<li>ap_signal.c </li> -<A NAME="porting_notes"> </A> -<H2 align=center>Porting Notes</H2> -<P> - <H3>Changes made due to differences between UNIX and - TPF's process models:</H3> - <UL> - <LI><STRONG>Signals</STRONG>: On TPF a signal that is sent to a process - remains unhandled until the process explicitly requests that signals - be handled using the <CODE>tpf_process_signals()</CODE> function. - Additionally, the default action for an alarm on TPF is to take - an OPR-7777 dump and exit. (On UNIX the default is the equivalent - of <CODE>exit()</CODE> with no dump taken.) - These differences necessitated a few modifications: - <BR><BR> - <UL> - <LI>bypass the use of <CODE>ap_block_alarms()</CODE> & - <CODE>ap_unblock_alarms()</CODE> - <LI>add <CODE>tpf_process_signals()</CODE> calls - <LI>add <CODE>select()</CODE> calls to prevent blocking. - </UL> - <BR> - </UL> +<li>ap_slack.c </li> - <H3>Find that function...</H3> - <P>Some simple functions & definitions initially needed to be added - on TPF, such as <CODE>FD_SET()</CODE>. - We've put these in src/os/tpf/os.h for now. - </P> +<li>ap_snprintf.c </li> - <H3>EBCDIC changes:</H3> - <P>TPF-specific conversion tables between US-ASCII and - EBCDIC (character set IBM-1047 to be exact) were created - and put into ebcdic.c in the src/os/tpf directory. - </P> +<li>buff.c </li> - <H3>Miscellaneous, minor changes:</H3> - <P>Various minor changes (such as casting) were made due to - differences in how some functions are implemented on TPF. - </P> +<li>buildmark.c </li> -<HR> -<CENTER>[ <A HREF="#top">top</A> - | <A HREF="#configuration_files">Configuration Files</A> - | <A HREF="#whats_available">What's Available</A> - | <A HREF="#cgi">CGI Scripts</A> - | <A HREF="#porting_notes">Porting Notes</A> ] -</CENTER> +<li>gen_test.char.c </li> -</BODY> -</HTML> +<li>gen_uri_delims.c </li> + +<li>htpasswd.c <em>(requires PUT10) </em></li> + +<li>http_config.c </li> + +<li>http_core.c </li> + +<li>http_log.c </li> + +<li>http_main.c </li> + +<li>http_protocol.c </li> + +<li>http_request.c </li> + +<li>http_vhost.c </li> + +<li>logresolve.c <em>(requires PUT10) </em></li> + +<li>mod_access.c <em>(Use of mod_access directives +"<tt>allow from</tt>" & +"<tt>deny from</tt>" with host +<u>names</u> (verses ip addresses) +requires PUT10) </em></li> + +<li>mod_actions.c </li> + +<li>mod_alias.c </li> + +<li>mod_asis.c </li> + +<li>mod_auth.c </li> + +<li>mod_auth_anon.c </li> + +<li>mod_autoindex.c </li> + +<li>mod_cern_meta.c </li> + +<li>mod_cgi.c <em>(requires +PUT10)</font></em> </li> + +<li>mod_digest.c </li> + +<li>mod_dir.c </li> + +<li>mod_env.c </li> + +<li>mod_example.c </li> + +<li>mod_expires.c </li> + +<li>mod_headers.c </li> + +<li>mod_imap.c </li> + +<li>mod_include.c <em>(CGI execution +requires TPF version 4.1 PUT10) </em></li> + +<li>mod_info.c </li> + +<li>mod_log_agent.c </li> + +<li>mod_log_config.c </li> + +<li>mod_log_referer.c </li> + +<li>mod_mime.c </li> + +<li>mod_mime_magic.c </li> + +<li>mod_negotiation.c </li> + +<li><a href="http://hpwww.ec-lyon.fr/~vincent/apache/mod_put.html"> +mod_put.c</a> <em>(third party +module) </em></li> + +<li>mod_proxy.c </li> + +<li>mod_setenvif.c </li> + +<li>mod_speling.c </li> + +<li>mod_status.c </li> + +<li>mod_tpf_shm_static.c <em>(third party module, +requires PUT10) </em></li> + +<li>mod_unique_id.c <em>(requires +PUT10)</font> </em></li> + +<li>mod_userdir.c </li> + +<li>mod_usertrack.c </li> + +<li>os.c </li> + +<li>os-inline.c </li> + +<li>proxy_cache.c </li> + +<li>proxy_connect.c </li> + +<li>proxy_ftp.c </li> + +<li>proxy_http.c </li> + +<li>proxy_util.c </li> + +<li>regular expression parser </li> + +<li>regular expression test tool <em>(requires +PUT10) </em></li> + +<li>rfc1413.c </li> + +<li>rotatelogs.c <em>(requires +PUT10) </em></li> + +<li>util.c </li> + +<li>util_date.c </li> + +<li>util_md5.c </li> + +<li>util_script.c </li> + +<li>util_uri.c </li> +</ul> + +<h3>Components/modules not yet supported on TPF:</h3> + +<ul> +<li>htdigest.c </li> + +<li>lib/expat-lite </li> + +<li>mod_auth_digest.c </li> + +<li>mod_rewrite.c </li> + +<li>mod_vhost_alias.c </li> +</ul> + +<h3>Components/modules that don't apply or that probably won't ever +be available on TPF:</h3> + +<ul> +<li>ab.c </li> + +<li>ap_getpass.c </li> + +<li>mod_auth_db.c </li> + +<li>mod_auth_dbm.c </li> + +<li>mod_auth_db.module </li> + +<li>mod_mmap_static.c </li> + +<li>mod_so.c </li> + +<li>suexec.c </li> +</ul> + +<a name="cgi"></a> +<center> +<h2>How to Use CGI Scripts</h2> +</center> + +<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://httpd.apache.org/docs/mod/mod_cgi.html"> +mod_cgi module</a> for additional information.</p> + +<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> +<p>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.</p> +<ul> +<tt>zfile echo "#!QZZ1" > /usr/local/apache/cgi-bin/filename.cgi<br> +zfile cat /usr/local/apache/cgi-bin/filename.cgi </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 <stdio.h><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("<html>\n");<br> + printf("<head><title> CGI Output </title></head>\n");<br> + printf("<body>\n");<br> + printf("<h1> Hello world </h1> \n");<br> + printf("</body>\n");<br> + printf("</html>\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="options"></a> +<center> +<h2>How to Use Apache Command Line Options</h2> +</center> + +<p>You cannot run Apache from the command line on TPF. +However you can use those Apache command line options which don't actually +start the server. This requires PJ27277 which shipped on PUT13.</p> + +<h3>Supported Apache options:</h3> +<ul> + +<p>-d <i>directory</i><br> +Specify an alternate initial ServerRoot <i>directory</i>. +Default is <tt>/usr/local/apache</tt>.</p> + +<p>-f <i>file</i><br> +Specify an alternate server configuration <i>file</i>. +Default is <tt>conf/httpd.conf</tt>.</p> + +<p>-h<br> +List a short summary of available command line options. +(Note that this outputs all options, not just those supported on TPF.)</p> + +<p>-l<br> +List modules compiled into the server.</p> + +<p>-L<br> +List available configuration directives. +(Note that this outputs all configuration directives, not just those supported on TPF.)</p> + +<p>-S<br> +Show the settings as parsed from the configuration file. +Currently only shows the virtualhost settings.</p> + +<p>-t<br> +Run syntax tests for configuration files (with document root checks)</p> + +<p>-T<br> +Run syntax tests for configuration files (without document root checks)</p> + +<p>-v<br> +Show the version number.</p> + +<p>-V<br> +Show the version number and various compile settings.</p> + + +<p>See <a href="http://httpd.apache.org/docs/programs/httpd.html"> +http://httpd.apache.org/docs/programs/httpd.html</a> for more information +about these command line options.</p> + +<p>Note: On TPF Apache arguments are supported only on the command line, +not through the ZINET XPARM field.</p> +</ul> + +<h3>Setup</h3> +<ul> +<p>Ensure Apache (CHTA) is loaded</p> + +<p>Create the httpd script: + <ul> + <tt>zfile echo "#!CHTA" > /bin/httpd<br> + zfile cat /bin/httpd </tt>(this should display <tt>#!CHTA</tt>) + </ul></p> + +<p>Mark the script as executable:<br> + <ul><tt>zfile chmod 755 /bin/httpd</tt></ul></p> + +<p>(See "<em>ZFILE-Activate a TPF Segment or Script</em>" +in the <em>Operations</em> guide for more information: +<a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">http://www.ibm.com/tpf/pubs/tpfpubs.htm</a>.)</p> + +</ul> + +<h3>Example 1</h3> +<ul><tt> +<p>zfile httpd -v</p> + +<p>FILE0001I 11.43.09 START OF DISPLAY FROM httpd -v<br> +Server version: Apache/1.3.20 (TPF)<br> +Server built: May 23 2001 09:39:22<br> +END OF DISPLAY</p> + +</tt></ul> + +<h3>Example 2</h3> +<ul><tt> +<p>zfile httpd -t -f /usr/local/apache/conf/httpd.conf.new</p> + +<p>FILE0002I 11.47.26 START OF ERROR DISPLAY FROM httpd -t ...<br> +Syntax OK<br> +END OF DISPLAY</p> + +</tt></ul> + +<a name="porting_notes"></a> + +<center> +<h2>Porting Notes</h2> +</center> + +<h3>Changes made due to differences between UNIX and TPF's process +models:</h3> + +<ul> +<li><b>Signals</b>: On TPF a signal that is sent to a process +remains unhandled until the process explicitly requests that +signals be handled using the <tt>tpf_process_signals()</tt> +function. Additionally, the default action for an alarm on TPF is +to take an OPR-7777 dump and exit. (On UNIX the default is the +equivalent of <tt>exit()</tt> with no dump taken.) These +differences necessitated a few modifications: </li> + +<li style="list-style: none"><br> + + +<ul> +<li>bypass the use of <tt>ap_block_alarms()</tt> & <tt> +ap_unblock_alarms()</tt> </li> + +<li>add <tt>tpf_process_signals()</tt> calls </li> + +<li>add <tt>select()</tt> calls to prevent blocking. </li> +</ul> +</li> +</ul> + +<h3>Find that function...</h3> + +Some simple functions & definitions initially needed to be +added on TPF, such as <tt>FD_SET()</tt>. We've put these in +src/os/tpf/os.h for now. + +<h3>EBCDIC changes:</h3> + +TPF-specific conversion tables between US-ASCII and EBCDIC +(character set IBM-1047 to be exact) were created. + +<h3>Miscellaneous, minor changes:</h3> + +Various minor changes (such as casting) were made due to +differences in how some functions are implemented on TPF. <br> +<hr> +<center>[ <a href="#top">top</a> + | <a href="#configuration_files">Configuration Files</a> + | <a href="#whats_available">What's Available</a> + | <a href="#cgi">CGI Scripts</a> + | <a href="#options">Options</a> + | <a href="#porting_notes">Porting Notes</a> ]</center> + +</body></html> \ No newline at end of file 1.13 +529 -354 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.12 retrieving revision 1.13 diff -u -d -b -u -r1.12 -r1.13 --- install-tpf.html 2001/03/28 21:25:40 1.12 +++ install-tpf.html 2001/09/12 15:06:51 1.13 @@ -1,163 +1,285 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>Installing Apache on TPF</TITLE> -</HEAD> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Installing Apache on TPF</title> +</head> +<body> -<BODY> -<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> +<center> +<h1><a name="top"></a>Installing the Apache 1.3 HTTP Server on +TPF</h1> +</center> -<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: +<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 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><A HREF="http://www.apache.org/dist/httpd/">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><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> - </ul> +<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: </li> + +<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 the tarball on OS/390 UNIX: <b><tt> +gunzip <i>os390_unix_filename</i>.tar.Z</tt></b> <br> + +Note that the <i>.tar.Z</i> file will be replaced by the decompressed +<i>.tar</i> archive file. <br> + </li> + +<li>Extract the archived files necessary for compiling Apache: <b><tt> +pax -rvkf <i>os390_unix_filename</i>.tar -o from=ISO8859-1,to=IBM-1047 "*/src" +</tt></b><br> </li> + +<li>Remove unnecessary subdirectories: + <ul><b><tt> + <li>cd apache_1.3.<em>xx</em>/src/os</li> + <li>rm -r bs2000 cygwin mpeix netware os2 os390 win32</li><br> + </tt></b></ul> + </li> +</ul> +</li> </ol> + +<center> +<h2><a 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> -<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/httpd/contrib/modules/">http://www.apache.org/dist/httpd/contrib/modules/</A>. - There are instructions on that page for linking these modules into the core Apache - code. - <BR><BR> -<LI><A NAME="export"></A>Set the TPF environment variables: - <TT><STRONG>. os/tpf/TPFExport</STRONG></TT> - <BR> - <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. - If your system header files contain line numbers in columns 72-80, you must truncate them. - <BR><BR> - Do not modify the <TT>TPF=YES</TT> export variable. If this is - changed, the "Configure" script will not recognize TPF. - <BR><BR> -<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: - <PRE> +<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> </li> + +<ul> +<li>Adjust the Rules and <tt> +EXTRA_CFLAGS|LIBS|LDFLAGS|INCLUDES</tt> if you feel so +inclined.<br> </li> + +<li>Comment out (by preceding the line with a "#") lines +corresponding to those modules you DO NOT wish to +include.<br> </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> +</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> +<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> +</p> + +<p>Otherwise:<br> +<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></p> + +<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> +<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> +</p> + +<p>Otherwise:<br> +<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></p> + +<p>The use of <tt>tpf_sawnc</tt> allows for a +cleaner shutdown of Apache.</p> + +</li> + +<a name="export"></a> +<li>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>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 @@ -174,208 +296,261 @@ 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.2nd</STRONG></TT> - <BR> - <PRE> + +</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... - <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> +</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. +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... + -<A NAME="daemon"></A><br> <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. This default behavior also includes checking the activation number. - ZINET can now perform these functions instead of Apache by using the DAEMON model - <i>(PUT11 with APARs PJ25761 & 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.<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 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> +<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> +<ul> +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. +</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> +<pre> + close the file: <b>:q </b> (or <b>:quit!</b>) +</pre> +</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><STRONG>Configure</STRONG></TT></A> step.<br><br> +<li>Edit include/ap_config.h if you do <em>not</em> want the scoreboard kept +in shared memory.<br> - If you get a <tt>'Duplicate type specifier "long" 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> +<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> - The following compilation warnings are expected and can be ignored:<br><br> - <ul> - <li>util_uri.c: <tt>Function argument assignment between types "unsigned char*" and "const unsigned char*" is not allowed.</tt> - <li>mod_put.c: <tt>#include file "ap_vercompat.h" not found</tt> - <li>mod_tpf_shm_static.c: <tt>#include file <sys/mman.h> not found</tt> - <li>mod_usertrack.c: <tt>#include file <sys/time.h> not found</tt> +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> -</OL> +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> -<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> - 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. - <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 +<li>Now compile the programs: <b><tt>make</tt></b><br> - 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> +<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> - <font color=red size=4>TIP: </font>Logic changes implemented with - PUT11 cause ZINET to <em>not</em> 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> +<ul> - 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 +<li>The following compilation warning is expected and can be ignored:<br><br> +<ul>util_uri.c: <tt>Function argument assignment between types "unsigned char*" and + "const unsigned char*" is not allowed.</tt></ul><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> +</li> +</ul> +</ol> + +<a 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> + +</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> </b> (<b>c-c</b>)</tt> 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>") +</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 /htdocs/manual directory. + </p> +</li> + +<li>On TPF activate ZCLAW +<p>Refer to the TCP/IP Offload Support 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>.</p> + +<p>Note: Apache does not currently work with Native Stack.</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</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> - <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. - <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"> </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> + /usr/local/apache/htdocs +</tt></pre> -</BODY> -</HTML> +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> +<ul> +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> functional +entry.<br><br> +If you're running TPF version PUT09 TFTP an empty file into the logs +subdirectory to create it. <br><br> +</ul> +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>.</p> +</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 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><br> </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><br> </li> + +<li><i>"DLL - Generate DLL code"</i> must be checked<br> </li> + +<li><i>"LONGNAME - Support long names"</i> must be +checked<br> </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> \ No newline at end of file
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]