| =head1 NAME |
| |
| INSTALL.win32 - Apache mod_perl installation instructions for Win32 |
| |
| =head1 DESCRIPTION |
| |
| How to build, test, configure and install mod_perl under Win32 |
| |
| =head1 PREREQUISITES |
| |
| =over 3 |
| |
| patience - mod_perl is considered alpha under NT and Windows9x. |
| |
| MSVC++ 5.0+, Apache version 1.3-dev or higher and Perl 5.004_02 or higher. |
| |
| As of version 1.24_01, mod_perl will build on Win32 ActivePerls |
| based on Perl-5.6.1 (builds 6xx). Versions 1.28_01 will build on |
| ActivePerls 8xx, based on Perl-5.8.0. |
| |
| =back |
| |
| =head1 BINARIES |
| |
| See http://perl.apache.org/distributions.html for Win32 binaries, |
| including ActivePerl ppms of mod_perl and some Apache::* packages. |
| |
| =head1 CHANGES |
| |
| Beginning with version 1.3.15, Apache has changed the convention |
| for naming Win32 modules in order to follow that for Unix systems. |
| Consequently, the name of the mod_perl module built here has |
| been changed from ApacheModulePerl.dll to mod_perl.so. This |
| is just a change in convention; if you are building mod_perl |
| against pre-1.3.15 Apache sources, and wish to follow the old |
| convention, simply copy mod_perl.so to your Apache modules directory |
| as ApacheModulePerl.dll. |
| |
| =head1 BUILDING |
| |
| There are two ways to build mod_perl - with MS Developer Studio, |
| and through command-line arguments to 'perl Makefile.PL'. |
| |
| =head2 Building with MS Developer Studio |
| |
| =over 3 |
| |
| =item Setup the Perl side |
| |
| Run |
| |
| perl Makefile.PL |
| nmake install |
| |
| This will install the Perl side of mod_perl and setup files for the |
| library build. |
| |
| =item Build mod_perl.so |
| |
| Using MS developer studio, |
| |
| select "File -> Open Workspace ...", |
| select "Files of type [Projects (*.dsp)]" |
| open mod_perl-x.xx/src/modules/win32/mod_perl.dsp |
| |
| =item Settings |
| |
| select "Tools -> Options -> [Directories]" |
| |
| select "Show directories for: [Include files]" |
| |
| You'll need to add the following paths: |
| |
| C:\apache_x.xx\src\include |
| . (should expand to C:\...\mod_perl-x.xx\src\modules\perl) |
| C:\perl\lib\Core |
| |
| select "Project -> Add to Project -> Files" adding: |
| |
| perl.lib (or perl56.lib) (e.g. C:\perl\lib\Core\perl.lib) |
| ApacheCore.lib (e.g. C:\Apache\ApacheCore.lib) |
| |
| select "Build -> Set Active Configuration... -> |
| [mod_perl - Win32 Release]" |
| |
| select "Build -> Build mod_perl.so" |
| |
| You may see some harmless warnings, which can be reduced (along with |
| the size of the DLL), by setting: |
| |
| "Project -> Settings -> [C/C++] -> Category: [Code Generation] -> |
| Use runtime library: [Multithreaded DLL] |
| |
| =item Testing |
| |
| Once mod_perl.so is built and apache.exe is installed you may |
| test mod_perl with: |
| |
| nmake test |
| |
| =item Apache setup |
| |
| You do not need to rebuild apache, just copy mod_perl.so to |
| $SERVER_ROOT/modules |
| |
| =back |
| |
| =head2 Building with arguments to 'perl Makefile.PL' |
| |
| Generating the Makefile as, for example, |
| |
| perl Makefile.PL APACHE_SRC=\Apache |
| |
| will build mod_perl (including mod_perl.so) entirely from |
| the command line. The arguments accepted include |
| |
| =over 3 |
| |
| =item APACHE_SRC |
| |
| This can be one of two values: either the path to the Apache build |
| directory (eg, ..\apache_1.3.xx), or to the installed Apache location |
| (eg, \Apache). This is used to set the locations of ApacheCore.lib |
| and the Apache header files. Also, mod_perl.so will be installed |
| to APACHE_SRC\modules, if such a directory exists and if an |
| INSTALL_DLL argument isn't used. |
| |
| =item INSTALL_DLL |
| |
| This gives the location of where to install mod_perl.so |
| (eg, \Apache\modules). If not given, a value of APACHE_SRC\modules |
| will be used, if this directory exists. |
| |
| =item INSTALL_LIB |
| |
| This gives the location of where to install mod_perl.lib |
| (eg, \Apache\libexec). If not given, a value of APACHE_SRC\libexec |
| will be used, if this directory exists. |
| |
| =item DEBUG |
| |
| If true (DEBUG=1), a Debug version will be built (this assumes |
| that a Debug Apache has been built). If false, or not given, |
| a Release version will be built. |
| |
| =item EAPI |
| |
| If true (EAPI=1), EAPI (Extended API) will be defined when |
| compiling. This is useful when building mod_perl against mod_ssl |
| patched Apache sources. If false, or not given, EAPI will |
| not be defined. |
| |
| =back |
| |
| After this, running |
| |
| nmake |
| nmake test |
| nmake install |
| |
| will complete the installation. |
| |
| This latter method of building mod_perl will also install the |
| Apache and mod_perl header files, which can then be accessed |
| through the Apache::src module. |
| |
| =head1 CONFIGURATION |
| |
| Add this line to httpd.conf: |
| |
| LoadModule perl_module modules/mod_perl.so |
| |
| Be sure that 'C:\perl\bin' is in your path so apache can find perl.dll. |
| You may also want to use the directive |
| |
| LoadFile "C:/Perl/bin/perl56.dll" |
| |
| (before loading mod_perl.so) to load your perl dll. |
| |
| See the cgi_to_mod_perl.pod and mod_perl.pod documents for general |
| configuration. |
| |
| =head1 NOTES |
| |
| mod_perl-win32 is considered alpha, at the time of this writing, |
| and Apache 1.xx is not as well developed for Win32 as the |
| Unix counterpart. |
| |
| CGI::Switch does not work with apache_1.3a1 because basic_http_header() |
| is not exported by the ApacheCore.dll. For now, just change: |
| |
| use CGI::Switch (); |
| my $q = CGI::Switch->new; |
| |
| - to - |
| |
| use CGI (); |
| my $q = CGI->new; |
| |
| There are basic multi-threading limitations of mod_perl 1 on |
| Win32. See the Win32 documentation at http://perl.apache.org/ |
| for a discussion, and also for details of the use of mod_perl 2 |
| (with Apache 2) which overcomes this limitation. |
| |