3
mod_perl 2.0 Win32 Installation Instructions
7
This document deals with installation specifics on Win32 platforms.
11
As described in the discussion of issues in L<multithreaded
12
win32|docs::1.0::os::win32::multithread>, a mod_perl 1.0 enabled server
13
based on Apache 1.3 on Win32 is limited to a single thread serving a
14
request at a time. This effectively prevents concurrent processing,
15
which can have serious implications for busy sites. This problem is
16
addressed in the multi-thread/multi-process approach of mod_perl
19
There are some threading issues in perl-5.6
20
(upon which ActivePerl builds 6xx are based) which cause
21
problems with mod_perl 2.0 on Win32. Consequently, the minimum
22
required perl version is 5.8 (ActivePerl builds 8xx)
23
for use with mod_perl 2.0 on Win32.
25
Note that, at the present time, mod_perl 2 is in a development
26
stage, with a version number C<1.99_xx>.
30
Unless you are using an all-in-one package, you should
31
first install Perl and Apache, either from the sources or as binaries.
32
The Perl sources are available from L<http://www.cpan.org/src/>,
33
with directions for building contained in F<README.win32>.
34
ActiveState also makes the sources available for their binary
35
builds at L<ftp://ftp.activestate.com/ActivePerl/src/>,
36
which may contain, in particular, Win32-specific fixes not in the
37
CPAN Perl sources. As a binary, at present, an ActivePerl-compatible
38
Perl, compiled with Visual C++, is the most common one used in the Win32
39
mod_perl/Apache environment; you can obtain such a prebuilt Perl
40
binary from L<http://www.activestate.com/>.
42
The Apache sources and binaries are available at
43
L<http://httpd.apache.org/>.
45
As of this writing, mod_perl 2.0 is known to compile and work
46
with an ActivePerl-compatible perl-5.8.0 (ActivePerl build 8xx).
47
See the section on Apache/mod_perl binaries
48
below for details on a suitable repository containing mod_perl
49
ppm packages, and also how to obtain other Win32 binary packages.
51
When installing Perl or other related binaries, subtleties may arise
52
in using path names that have spaces in them - you may, for example,
53
have to specify F<C:\Program Files\> by the DOS 8.3 path name
54
F<C:\Progra~1\> in certain Apache directives. If you want to avoid
55
this, install, if possible, these packages to locations without spaces
56
in their names (eg, F<C:\Perl> for Perl and F<C:\Apache2> for Apache 2.0).
58
In the following, it may be necessary to invoke certain commands
59
through a DOS prompt. A DOS window may be opened either through
60
a I<Command Prompt> option of the I<Start> menu, or by choosing
61
to run, from the Start menu, C<command> or C<cmd>, as appropriate.
63
=head2 Building from sources
65
If you are building mod_perl 2.0 from sources, it is probably also
66
best to do the same for Apache 2.0. The Apache 2.0 sources can be
67
obtained from L<http://httpd.apache.org/>, which when unpacked will
68
contain at the top-level a Visual Studio project file
69
(make sure to obtain the I<win32-src.zip> archive). Choose the
70
C<InstallBin - Win32 Release> target to build and install Apache 2.0,
71
which by default will be placed in F</Apache2>. At the present
72
time you must have version 2.0.47 or greater of Apache2 in
73
order to build mod_perl.
75
Having built and installed Apache 2.0, next obtain the mod_perl 2.0
76
sources. First obtain the L<mod_perl 2.0
77
sources|download::source/Development_mod_perl_2_0_Source_Distribution>
78
as a C<tar.gz> file - when unpacked, using Winzip or similar tools, a
79
subdirectory F<mod_perl-x.xx> will be created. Next, run the command
81
C:\modperl_src> perl Makefile.PL MP_AP_PREFIX=\Path\to\Apache2
86
C:\modperl_src> nmake test
88
will build and test mod_perl 2.0. mod_perl 2.0 on Win32 is considered
89
at an alpha stage of development, so not all the tests may pass.
93
C:\modperl_src> nmake install
95
will install the necessary mod_perl 2.0 files into your Perl directory
96
tree, and also copy F<src/modules/perl/mod_perl.so> into
97
your F</Path/to/Apache2/modules/> directory. If you are installing
98
mod_perl 2.0 on a system that also contains mod_perl 1.0, then some
99
mod_perl 1.0 files will be overwritten by this procedure. This can be
100
avoided by preparing the build as
102
C:\modperl_src> perl Makefile.PL MP_AP_PREFIX=\Path\to\Apache2 MP_INST_APACHE2=1
104
which will subsequently lead to the mod_perl 2.0 files being installed
105
under an F<Apache2> subdirectory in your Perl tree. You will then
106
have to employ either a C<use Apache2;> line in your scripts/packages
107
or else a C<PerlModule Apache2> directive in Apache's F<httpd.conf>.
109
If this build fails, or you want features not present in the official
110
releases, you may want to try the sources obtained from cvs - see the
111
discussion on the L<2.0 Development Source
112
Distribution|download::source/Development_mod_perl_2_0_Source_Distribution>
113
for details. Be aware, though, that as well as providing bug fixes,
114
there may be new features being added and tested in the cvs versions,
115
so at any given time there are no guarantees that these packages will
116
build and test successfully.
120
The following assumes you already have ActivePerl 8xx (I<not> 6xx)
121
from L<http://www.activestate.com/> and a Win32 Apache 2.0 binary from
122
L<http://httpd.apache.org/>. In installing this, you might avoid
123
some future problems by choosing installation directories that do
124
not have spaces in their names (eg, F<C:/Apache2>). At this time
125
you must have version 2.0.47 or greater of Apache2 in order to
126
install the mod_perl 2 ppm package.
128
After installing Perl and Apache 2.0, you can then install mod_perl
129
via the C<PPM> utility. ActiveState does not maintain mod_perl in
130
their ppm repository, so you must get it from a different location
131
other than ActiveState's site. A quick way to do this is to download
132
the script F<mpinstall> and save it as, for example, I<mpinstall>.
133
Invoking this as C<perl mpinstall> on a command line
134
will take you through a dialogue, based on your configuration,
135
which will determine and install, via C<ppm>, the desired
136
mod_perl ppm package.
138
The direct way to install mod_perl via ppm is simply as (broken over two
139
lines for readability)
142
http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
144
Another way, which will be useful if you plan on installing
145
additional Apache modules, is to set the repository
146
within the C<ppm> shell utility to
148
http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58
150
using the C<repository add alias location> for I<ppm3> (the
151
default with ActivePerl 8xx), and using C<set repository alias location>
152
for C<ppm2>; see the help utility within the C<ppm> shell for
153
details. mod_perl 2.0 can then be installed as C<install mod_perl>
154
within the ppm shell, which
155
will install the necessary modules under an F<Apache2>
156
subdirectory in your Perl tree, so as not to disturb a possible existing
157
F<Apache> directory from mod_perl 1.0. See the section below on
158
configuring mod_perl to add this directory to the C<@INC> path for
159
searching for modules.
161
The mod_perl PPM package also includes the necessary Apache DLL
162
F<mod_perl.so>; a post-installation script should be run which will
163
offer to copy this file to your Apache2 modules directory (eg,
164
F<C:/Apache2/modules/>). If this fails, you can get
165
F<mod_perl.so> from L<http://theoryx5.uwinnipeg.ca/ppms/x86/>
166
and install it to your Apache2 modules directory by hand.
168
Note that, because of binary incompatibilities, one should
169
I<not> install packages for ActivePerl 8xx from a repository
170
containing packages for ActivePerl 6xx, and vice-versa, particularly
171
if these packages contain XS-based modules.
173
The mod_perl package available from this site will always
174
use the latest mod_perl sources compiled against the latest official
175
Apache release; depending on changes made in Apache, you may or may
176
not be able to use an earlier Apache binary. However, in the Apache
177
Win32 world it is particularly a good idea to use the latest version,
178
for bug and security fixes. If you encounter problems loading
179
F<mod_perl.so>, ensure that the mod_perl version you are using matches
180
that of Apache, make certain C<Perl> is in your C<PATH> environment
181
variable, or try adding the Apache directive
183
LoadFile "C:/Path/to/your/Perl/bin/perlxx.dll"
185
before loading F<mod_perl.so>. If all else fails, a reboot may help.
187
If the I<theoryx5.uwinnipeg.ca> repository is down, you can
188
access these packages at
189
L<http://www.apache.org/dyn/closer.cgi/perl/win32-bin/ppms/>,
191
L<http://www.apache.org/dyn/closer.cgi/perl/win32-bin/ppmpackages/>,
194
=head2 All in one packages
196
There is an IndigoPerl Perl/Apache 2 binary package available from
197
L<http://www.indigostar.com/> containing mod_perl 2. As well,
198
at L<http://www.apache.org/dyn/closer.cgi/perl/win32-bin/>
199
there is a self-extracting
200
archive F<Perl-5.8-win32-bin.exe> containing a binary version
201
of perl-5.8 (compatible with ActivePerl 8xx), together with Apache 2.0
202
and mod_perl 2.0. See the file F<Perl-5.8-win32-bin.readme> for
203
a description. If you have trouble
204
fetching the whole file at once, the directory
205
L<http://www.apache.org/dyn/closer.cgi/perl/win32-bin/Perl-5.8-win32-bin/>
206
contains this distribution split across multiple files -
207
see F<README.join> for instructions on how to join them. Alternatively,
208
if you have Perl already, you can get the script
209
F<distinstall> which, when invoked as
210
C<perl distinstall>, will fetch and join
215
The directions for L<configuring mod_perl 2.0 on
216
Win32|docs::2.0::os::win32::config>, the L<mod_perl
217
documentation|docs::index>, L<http://take23.org/>,
218
L<http://httpd.apache.org/>, L<http://www.activestate.com/>,
220
L<FAQs for mod_perl on Win32|docs::general::os::win32::faq>.
221
Help is also available through the archives of and subscribing to
222
the L<mod_perl mailing list|maillist::modperl>.
226
Maintainer is the person(s) you should contact with updates,
227
corrections and patches.
233
Randy Kobes E<lt>randy@theoryx5.uwinnipeg.caE<gt>
244
Randy Kobes E<lt>randy@theoryx5.uwinnipeg.caE<gt>
248
Only the major authors are listed above. For contributors see the