mod_perl in 30 minutes
by Stas BekmanMarch 22, 2002
Introduction
In the previous article, I've shown quite amazing Web performance reports from companies that have deployed mod_perl heavily. You might be surprised but you can quite easily get similarly amazing results if you move your service to mod_perl as well. In fact, getting started with mod_perl shouldn't take you more than 30 minutes -- the time it takes to compile and configure the server on a decent machine and get it running.
In this article I'll show step-by-step installation and configuration scenarios, and chances are you will be able to run the basic statically compiled mod_perl setup without reading any other documents. Of course, you will want and need to read the documentation later, but I think you will agree with me that it's ultimately cool to be able to get your feet wet without knowing much about the new technology up-front.
The mod_perl installation was tested on many mainstream Unix platforms, so unless you have a nonstandard system, you shouldn't have any problems building the basic mod_perl server.
If you are a Windows user, then the easiest way is to use the binary package available from http://perl.apache.org/distributions.html. From the same location, you can download the Linux RPM version and CVS snapshots. However, I always recommend to build the mod_perl from the source, and as you will see in a moment, it's an easy thing to do.
Installing mod_perl Is Easy
So let's start with the installation process. If you are an experienced Unix user, then you need no explanation for the following commands. Just copy and paste them and you will get the server installed.
I'll use a % sign as the shell program's prompt.
% cd /usr/src % lwp-download http://www.apache.org/dist/httpd/apache_1.3.20.tar.gz % lwp-download http://perl.apache.org/dist/mod_perl-1.26.tar.gz % tar -zvxf apache_1.3.20.tar.gz % tar -zvxf mod_perl-1.26.tar.gz % cd mod_perl-1.26 % perl Makefile.PL APACHE_SRC=../apache_1.3.20/src \ DO_HTTPD=1 USE_APACI=1 EVERYTHING=1 % make && make test && make install % cd ../apache_1.3.20 % make install
That's all!
What's left is to add a few configuration lines to httpd.conf, an Apache configuration file, start the server and enjoy mod_perl.
If you have stumbled upon a problem at any of the above steps, then don't despair -- the next section will explain in detail each step.
Installing mod_perl Detailed
If you didn't have the courage to try the steps in the previous section or you simply want to understand more before you try, then let's go through the fine details of the installation process. If you have successfully installed mod_perl following the short scenario in the previous section, then you can skip this section and move on to the next one.
Before we proceed, I should note that you have to become a root user in order to install the files in a protected area. If you don't have root access, then you can install all the files under your home directory. We will talk about the nuances of this approach in a future articles. I'll also assume that you have perl and gcc or an equivalent C compiler installed.
I assume that all builds are being done in the /home/stas/src directory. So we go into this directory.
% cd /home/stas/src
Now we download the latest source distributions of Apache and
mod_perl. If you have the LWP module installed (also known as
libwww and available from CPAN), then you should have the
lwp-download utility that partly imitates your favorite browser by
allowing you to download files from the Internet. You can use any
other method to retrieve these files. Just make sure that you save
both files in the /home/stas/src directory, as this will make it
easier for you to follow the example installation process. Of course,
you can install both packages anywhere on your file system.
% lwp-download http://www.apache.org/dist/httpd/apache_1.3.20.tar.gz % lwp-download http://perl.apache.org/dist/mod_perl-1.26.tar.gz
You can make sure that you're downloading the latest stable versions by visiting the following distribution directories: http://www.apache.org/dist/httpd/ and http://perl.apache.org/dist/. As you have guessed already, the former URL is the main Apache distribution directory, the latter is the same thing for mod_perl.
Untar both sources. You have to uncompress and untar the files. In
addition to its main usage for tarring and untarring files, the GNU
tar utility is able to uncompress files compressed by the gzip
utility, when the -z option is used.
% tar -zvxf apache_1.3.20.tar.gz % tar -zvxf mod_perl-1.26.tar.gz
If you have a non-GNU tar utility, then chances are that it will be
unable to decompress, so you need to do it in two steps. First,
uncompress the packages with:
% gzip -d apache_1.3.20.tar.gz % gzip -d mod_perl-1.26.tar.gz
Then untar them with:
% tar -xvf apache_1.3.20.tar % tar -xvf mod_perl-1.26.tar
If you don't have tar or gzip utilities available, then install them or use their equivalents.
Now go into the mod_perl source distribution directory.
% cd mod_perl-1.26
The next step is to create the Makefile.
% perl Makefile.PL APACHE_SRC=../apache_1.3.20/src \ DO_HTTPD=1 USE_APACI=1 EVERYTHING=1
mod_perl accepts a variety of parameters, in this scenario we are going to use those that will allow you to do almost everything with mod_perl. Once you learn more about mod_perl, you will be able to fine-tune the list of parameters passed to Makefile.PL. In future articles, I'll go through all the available options.
perl Makefile.PL ... execution will check for prerequisites and
tell you which required software packages are missing from your
system. If you don't have some of the Perl packages installed, then you
will have to install these before you proceed. They all are available
from CPAN and can be easily downloaded and installed.
If you choose to install mod_perl with help of the CPAN.pm module,
then it will install all the missing modules for you. To do so, tell
CPAN.pm to install the Bundle::Apache bundle.
This step also executes the ./configure script from Apache's source
distribution directory (absolutely transparently for you), which
prepares the Apache build configuration files. If you need to pass
parameters to Apache's ./configure script, then pass them as
options to perl Makefile.PL .... In future articles we will talk
about all the available options.
Now you should build the httpd executable by using the make
utility.
% make
This command prepares mod_perl extension files, installs them in the
Apache source tree and builds the httpd executable (the Web server
itself) by compiling all the required files. Upon completion of the
make process, you get returned to the mod_perl source distribution
directory.
make test executes various mod_perl tests on the freshly built
httpd executable.
% make test
This command starts the server on a nonstandard port (8529) and tests whether all parts of the built server function correctly. If something goes wrong, then the process will report it to you.
make install completes the installation process of mod_perl by
installing all the Perl files required for mod_perl to run and, of
course, the server documentation (man pages).
% make install
You can use the following commands concatenation style:
% make && make test && make install
It simplifies the installation, since you don't have to wait for each command to complete before starting the next one. When installing mod_perl for the first time, it's better to do it step by step.
If you choose the all-in-one approach, then you should know that if make
fails, then neither make test nor make install will be executed. If
make test fails, then make install will not be executed.
Finally, change to the Apache source distribution directory, run make install to create the Apache directory tree and install Apache header files (*.h), default configuration files (*.conf), the httpd executable and a few other programs.
% cd ../apache_1.3.20 % make install
Note that, as with a plain Apache installation, any configuration files left from a previous installation won't be overwritten by this process. You don't need to back up your previously working configuration files before the installation.
When the make install process completes, it will tell you how to
start a freshly built Web server (the path to the apachectl utility
that is being used to control the server) and where the installed
configuration files are. Remember or, even better, write down both of
them, since you will need this information. On my machine
the two important paths are:
/usr/local/apache/bin/apachectl /usr/local/apache/conf/httpd.conf
So far, we have completed the building and installation of the mod_perl enabled Apache. The next steps are to configure httpd.conf, write a little test script, start the server and check that the test script is working.
Pages: 1, 2 |


