blob: 4078573dfaf4152a158ee9dd76da454dd62afcfb [file] [log] [blame]
=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.