Return-Path: Delivered-To: apmail-apache-docs-archive@apache.org Received: (qmail 93162 invoked by uid 500); 11 Jul 2001 21:50:51 -0000 Mailing-List: contact apache-docs-help@apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: apache-docs@apache.org Delivered-To: mailing list apache-docs@apache.org Received: (qmail 93109 invoked by uid 500); 11 Jul 2001 21:50:44 -0000 Delivered-To: apmail-httpd-docs-1.3-cvs@apache.org Date: 11 Jul 2001 21:50:36 -0000 Message-ID: <20010711215036.93079.qmail@apache.org> From: pepper@apache.org To: httpd-docs-1.3-cvs@apache.org Subject: cvs commit: httpd-docs-1.3/htdocs/manual cygwin.html pepper 01/07/11 14:50:35 Modified: htdocs/manual cygwin.html Log: Bunch o' typos, some HTML fixes, and some clarifications. Revision Changes Path 1.2 +83 -83 httpd-docs-1.3/htdocs/manual/cygwin.html Index: cygwin.html =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/cygwin.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- cygwin.html 2001/07/11 14:41:41 1.1 +++ cygwin.html 2001/07/11 21:50:32 1.2 @@ -17,53 +17,53 @@

Using Apache With Cygwin

This document explains how to install, configure and run Apache 1.3 under - the Cygwin platform for Microsoft - Windows. Cygwin is a POSIX.1 emulation layer for Microsoft Windows 32-bit + the Cygwin layer for Microsoft + Windows. Cygwin is a POSIX.1 emulation layer for 32-bit Microsoft Windows operating systems.

The Apache Group does not guarantee that this software will work as documented, or even at all. If you find any bugs, please document them on our bug reporting page. -

Latest development news, pre-compiled distribution binaries and third-party - modules as DLLs may be found at +

Latest development news, pre-compiled distribution binaries, and third-party + modules as DLLs, may be found at http://apache.dev.wapme.net/. Contributions are highly welcome (please see - TODO list), please + TODO list); please submit your code or suggestions to the bug report page, or join the new-httpd@apache.org mailing list.

The Win32 port of Apache is built on its own, - custom code within Apache to assure interoperability with the Windows + custom code within Apache to assure interoperability with Windows operating systems. While it is considered release quality, it is slower and less thoroughly tested than the Unix ports. The Cygwin alternative - uses the well tested unix code by using the Cygwin portability layer for + uses the well tested Unix code by using the Cygwin portability layer for Unix emulation. The Cygwin port may suffer from gaps in security or - reliability due to the interaction of the Cygwin compatibility layer to + reliability due to the interaction of the Cygwin compatibility layer with the native Windows API.

The Win32 port will be more familiar to most - Windows users. The Cygwin port will be more familiar to Unix admins and - developers, including the Apache/Unix build environment. Due to these + Windows users. The Cygwin port (including the build environment) will be + more familiar to Unix admins and developers. Due to these two different code bases, the security and reliability of the two ports are unrelated to each other. The Win32 port should be considered the more secure of the two at this time. The Win32 port is recommended for most Windows users, however the Cygwin port offers an extra layer of compatibility for Unix developers.

-

Apache still performs best, and is most reliable on Unix platforms. First +

Apache still performs best, and is most reliable, on Unix platforms. First benchmarks have shown that the same Apache setup on Cygwin performs about 30% slower than the corresponding native Windows version.

Most of this document assumes that you have a working Cygwin installation - and want to compile Apache yourself from the orginal distribution + and want to compile Apache yourself from the original distribution sources.


  • History of Apache for Cygwin -
  • Differences to Apache for Windows (native) +
  • Differences from Apache for Windows (native)
  • Requirements
  • Downloading Apache for Cygwin
  • Configuring and installing Apache for Cygwin @@ -76,57 +76,58 @@

    History of Apache for Cygwin

    -

    Cygwin support for Apache has been developed since Apache 1.2.6 and - Cygwin b18. +

    Cygwin support for Apache began with Apache 1.2.6 and Cygwin b18.

    Due to licensing issues there has not been an official binary distribution - until Red Hat Inc. (former Cygnus Solutions Inc.) changed their Cygwin license - to ensure compiled executables do not fall under GPL license if the distributed - software is considered as open source. + until Red Hat Inc. (who merged with Cygnus Solutions Inc.) changed their + Cygwin license to ensure compiled executables do not fall under GPL + license if the distributed software is considered as open source.

    Cygwin is supported in the official source distributions from Apache 1.3.20 - and on. Pre-compiled binaries for the Cygwin platform (without the + and later. Pre-compiled binaries for the Cygwin platform (without the cygwin1.dll) will be supplied at http://www.apache.org/httpd for each released version. -

    Differences to Apache for Windows (native)

    -

    Both versions, Apache for Windows and Apache for Cygwin are designed to run +

    Differences from Apache for Windows (native)

    +

    Both versions, Apache for Windows and Apache for Cygwin, are designed to run on the same operating systems, the Windows NT and Windows 2000 family. But - there are considerable differences for those. -

    While Apache for Windows is a native Windows port, Apache for Cywin relies on + there are considerable differences between the two flavors. +

    While Apache for Windows is a native Windows port, Apache for Cygwin relies on the Cygwin POSIX.1 emulation layer provided by the cygwin1.dll - dynamic library to fake a Unix compliant enviroment. Therefore we consider - Apache for Cygwin more closer to the Unix side then to the Windows side, even + dynamic library to create a Unix compatible environment. Therefore we consider + Apache for Cygwin closer to the Unix side then to the Windows side, even while it runs on Windows. -

    Most significant differences are the ammount of changes to the source code +

    Most significant differences are the amount of changes to the source code needed to compile and run Apache on the Cygwin platform. While the native - Windows port needs huge changes and platform specific additions, the Cygwin - based port changes are very small and most of the present source code can + Windows port needs major changes and platform specific additions, the Cygwin + based port changes are very small and most of the Unix source code can be used without major changes on the Cygwin platform. -

    When to use Apache for Cygwin and/or Apache for Windows?
    - Apache for Cygwin is considered to be very useful if you want a seamless - transition from Unix sytems to Windows systems for your HTTP services. +

    When to use Apache for Cygwin and/or Apache versus Windows?
    + Apache for Cygwin is intended to be most useful if you want a seamless + transition from Unix systems to Windows systems for your HTTP services.

    If you are using Windows NT or Windows 2000 for development and office - purposes, but your productive HTTP server environments are Unix based systems - you may use Apache for Cygwin to develop on Windows and simply copy the whole - Apache configurations (i.e. httpd.conf) and Perl + purposes, but your productive HTTP server environments are Unix based systems, + you may use Apache for Cygwin to develop on Windows and simply copy whole + Apache configurations (i.e., httpd.conf) and Perl (mod_perl), PHP (mod_php) or Python (mod_snake) applications to your productive Unix systems.

    What about modules (mod_foo) for Apache for Cygwin?
    - Apache for Cygwin can be build with most of the available Apache modules with - no or very few effort in changes. Most popular modules have been compiled and - tested with Apache for Cygwin, including mod_dav, mod_ssl, mod_php, mod_perl, - mod_gzip, mod_jserv. -

    While there are developers that support the Windows native port of Apache, very - fiew module developers do. That is why it is usually very hard to make a Unix - based Apache installation with different modules work the same way on the - Windows side using the native port. Apache for Cygwin makes it possible. - -

    What are the differences for the configuration files?
    - While the Apache for Windows port uses Windows native path names to refer a - specific file or directory, like + Apache for Cygwin can be built with most of the available Apache modules with + no or minimal changes. Many popular modules have been compiled and + tested with Apache for Cygwin, including mod_dav, + mod_ssl, mod_php, mod_perl, + mod_gzip, and mod_jserv. +

    While there are developers who directly support the Windows native port of + Apache, very few module developers do. That is why it is can be + difficult to make a Unix-based Apache installation with third-party + modules work the same way on the Windows side using the native port. + Apache for Cygwin makes this much easier. + +

    What are the differences in the configuration files?
    + While the Apache for Windows port uses Windows native path names to refer + files and directorys, like

         # httpd.conf (for Windows)
         DocumentRoot "c:/apache/htdocs"
      @@ -139,31 +140,30 @@
       

    What about performance?
    - Apache for Cygwin is and should be considered not as performative as Apache - for Windows on the same hardware architecture. -

    This is trivial, because Cygwin emulates a Unix enviroment on a - "foreign" operating system, while Apache for Windows runs in its own native - environment. First benchmark results have shown that Apache for Cygwin is - about 30% slower then his native Apache for Windows counterpart. + Apache for Cygwin is not as high-performance as Apache + for Windows on the same hardware. +

    This is to be expected, because Cygwin emulates a Unix environment on a + "foreign" operating system, while Apache for Windows uses Windows code + in its own native environment. First benchmark results have shown + that Apache for Cygwin is about 30% slower than native Apache for + Windows counterpart.

    - -

    Requirements

    This Apache 1.3 port for Cygwin is designed to run on Windows NT 4.0 and - Windows 2000, NOT on Windows 95 and 98. Windows NT 4.0 + Windows 2000, NOT on Windows 95 or 98. Windows NT 4.0 and Windows 2000 have both been successfully tested and approved. In all cases TCP/IP networking must be installed.

    Cygwin 1.x is required to compile and run this version. Cygwin 1.1.8 - and 1.3.2 have been tested and approved on both supported OS. + and 1.3.2 have been tested and approved on both supported OSes.

    Note:If you want to compile shared DLL modules using apxs you will need a patched version of ld.exe with --auto-import - support which can be found - here.

    + support, which can be found at http://sourceforge.net/projects/kde-cygwin/.

    Downloading Apache for Cygwin

    @@ -191,18 +191,18 @@
  • Static linked version

    To build a static linked version of httpd including additional modules you will have to give the following statements to - the shell: + the shell:

         $ cd apache_1.3.x
         $ ./configure [--enable-module=module|--add-module=/path/to/module]
         $ make
       
    - This will produce the required extra libaries or object files for +

    This will produce the required extra libraries or object files for module and link everything to src/httpd.exe.

  • Shared core DLL linked version (one for all version)

    To build a DLL version of httpd including additional - modules you have to give the following statements to the shell: + modules you have to give the following statements to the shell:

         $ cd apache_1.3.x
         $ ./configure --enable-rule=SHARED_CORE \
      @@ -211,7 +211,7 @@
         $ make install
       
    - This will produce the required extra libraries or object files which hold all +

    This will produce the required extra libraries or object files which hold all static linked code. Then dllwrap and dlltool will export all of those (including any added extra module code) to the shared libhttpd.dll and create the libhttpd.a import @@ -228,7 +228,7 @@

    • First build Apache's shared core giving the following statements - to the shell: + to the shell:

           $ cd apache_1.3.x
           $ ./configure --enable-rule=SHARED_CORE --enable-module=so \
        @@ -237,7 +237,7 @@
           $ make
           $ make install
         
      - Now the make process will break when trying to compile the +

      Now the make process will break when trying to compile the shared module defined using --enable-shared. You will have to use a work-around, due to the fact that currently there is no src/libhttpd.dll build that is required to link against the @@ -250,7 +250,7 @@ $ make $ make install - This will build the core dynamic library libhttpd.dll as +

      This will build the core dynamic library libhttpd.dll as described in the previous build alternative.

    • Now we have to link the shared module against that library: @@ -258,7 +258,7 @@ $ cd /path/to/module $ gcc --shared -o module.dll module.lo /path/to/libhttpd.dll - The build shared DLL module has to be placed to Apache's installation +

      The build shared DLL module has to be placed to Apache's installation bindirectory where libhttpd.dll goes too.

    • Add configuration directives to conf/httpd.conf to load @@ -273,7 +273,7 @@
    - The above steps have to be repeated for each shared DLL module you want +

    The above steps have to be repeated for each shared DLL module you want to create.

  • Using apxs to create shared DLL modules @@ -285,7 +285,7 @@ apxs to include the --shared directive and the path to the shared code DLL libhttpd.dll. -

    Now you shoud be able to create a shared DLL module from a mod_foo.c +

    Now you should be able to create a shared DLL module from a mod_foo.c source code file with:

         $ apxs -c mod_foo.c -o mod_foo.dll
      @@ -299,26 +299,26 @@
       
       

    Running Apache for Cygwin

    -

    Apache on Cygwin can be started and stoped in the same manner +

    Apache on Cygwin can be started and stopped in the same manner as on Unix systems. You may also use the apachectl tool for - starting and stoping Apache. + starting and stopping Apache.

    • Starting Apache

      If installed to the default Apache layout directory you can start - httpd as follows: + httpd as follows:

           $ /usr/local/apache/bin/httpd
         
      - An explicit background & indicator is not required. The +

      An explicit background & indicator is not required. The resulting parent process is detached from the current terminal. Check the global error_log to see if Apache has started cleanly without any major problems.

    • Stopping Apache -

      To stop Apache send at least a SIGTERM sginal to the +

      To stop Apache send at least a SIGTERM signal to the parent httpd process:

           $ kill -TERM `cat /usr/local/apache/logs/httpd.pid`
        @@ -345,12 +345,12 @@
         
      • Installing Apache as a new Service

        Use the following statement to install the httpd.exe as a new - service: + service:

             $ cygrunsrv -I service_name-p /usr/local/apache/bin/httpd.exe [-a arguments] \
                 [-e VAR=VALUE] [-t auto|manual] [-u user] [-w passwd]
           
        - Where -a is used to pass command line arguments to +

        Where -a is used to pass command line arguments to httpd.exe, like -DFOO defines and -e is used to pass environment variables to the starting environment. If necessary you may use the -t options to set the starting type of the service. @@ -359,28 +359,28 @@

      • Starting Apache as a Service

        After the new service is installed it can be started using the following - command: + command:

             $ cygrunsrv -S service_name
           
        - Check your process table and global error_log file to ensure Apache +

        Check your process table and global error_log file to ensure Apache has started without any major problems.

        -
      • Stoping Apache Service -

        A running Apache service may be stopped using the following comand: +

      • Stopping Apache Service +

        A running Apache service may be stopped using the following command:

             $ cygrunsrv -E service_name
           
        - This will stop all running httpd.exe processes and shutdown the HTTP +

        This will stop all running httpd.exe processes and shutdown the HTTP service for the machine.

      • Removing Apache Service -

        An installed Apache service may be removed from the internal service invokation - table of Windows NT or Windows 2000 using the following comand: +

        An installed Apache service may be removed from the internal service invocation + table of Windows NT or Windows 2000 using the following command:

             $ cygrunsrv -R service_name
           
        - This will remove your previously defined and installed service from the machine.

        +

        This will remove your previously defined and installed service from the machine.

      --------------------------------------------------------------------- To unsubscribe, e-mail: apache-docs-unsubscribe@apache.org For additional commands, e-mail: apache-docs-help@apache.org