805 lines
22 KiB
Plaintext
805 lines
22 KiB
Plaintext
|
Apache+DSO+mod_ssl+mod_perl+php+mod_auth_nds+mod_auth_mysql+mod_fastcgi
|
|||
|
Ray Van Dolson, rayvd@firetail.org
|
|||
|
v0.91, 5 April 2000
|
|||
|
|
|||
|
Details the installation of an Apache based webserver suite configured
|
|||
|
to handle DSO, and various useful modules including mod_perl, mod_ssl
|
|||
|
and php.
|
|||
|
______________________________________________________________________
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
|
|||
|
1. Legal Stuff
|
|||
|
|
|||
|
2. Introduction
|
|||
|
|
|||
|
2.1 Description of the Components
|
|||
|
2.2 History
|
|||
|
|
|||
|
3. Component Installation
|
|||
|
|
|||
|
3.1 Preparations
|
|||
|
3.2 mod_ssl
|
|||
|
3.2.1 Installing and Compiling OpenSSL
|
|||
|
3.2.2 Installing and Compiling RSAREF 2.0
|
|||
|
3.2.3 Installing and Compiling MM
|
|||
|
3.2.4 Installing and Compiling mod_ssl (at last!)
|
|||
|
3.3 Apache
|
|||
|
3.4 MySQL
|
|||
|
3.5 PHP 3.0.15
|
|||
|
3.5.1 GD
|
|||
|
3.5.2 IMAP
|
|||
|
3.5.3 OpenLDAP
|
|||
|
3.5.4 Installing and Compiling PHP 3.0.15
|
|||
|
3.6 mod_perl
|
|||
|
3.6.1 Required Perl Modules
|
|||
|
3.6.2 Installing and Compiling mod_perl 1.2x
|
|||
|
3.7 mod_auth_mysql
|
|||
|
3.8 mod_auth_nds
|
|||
|
3.8.1 ncpfs
|
|||
|
3.8.2 Compiling and Installing mod_auth_nds
|
|||
|
3.9 mod_fastcgi
|
|||
|
|
|||
|
4. Final Words
|
|||
|
|
|||
|
4.1 Credits
|
|||
|
4.2 Contact Information
|
|||
|
4.3 Anything Else
|
|||
|
|
|||
|
|
|||
|
______________________________________________________________________
|
|||
|
|
|||
|
1. Legal Stuff
|
|||
|
|
|||
|
Apache+mods mini-HOWTO for Linux Systems
|
|||
|
|
|||
|
Copyright (C)2000 Ray Van Dolson.
|
|||
|
|
|||
|
This document is free; you can redistribute it and/or modify it under
|
|||
|
the terms of the GNU General Public License as published by the Free
|
|||
|
Software Foundation; either version 2 of the License, or (at your
|
|||
|
option) any later version.
|
|||
|
|
|||
|
This document is distributed in the hope that it will be useful, but
|
|||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|||
|
General Public License for more details.
|
|||
|
|
|||
|
You can get a copy of the GNU GPL at at
|
|||
|
http://www.gnu.org/copyleft/gpl.html
|
|||
|
<http://www.gnu.org/copyleft/gpl.html>.
|
|||
|
|
|||
|
2. Introduction
|
|||
|
|
|||
|
This document outlines the process used to install Apache & modules
|
|||
|
onto the web-server at Walla Walla College (www.wwc.edu). While it
|
|||
|
will be, for the most part, system specific--hopefully it can serve as
|
|||
|
a useful reference for performing other installations.
|
|||
|
|
|||
|
This document will attempt to outline the exact process used to
|
|||
|
install the server. Notes will be made when things should have been
|
|||
|
gone about differently, but the original steps will be given (assuming
|
|||
|
they worked).
|
|||
|
|
|||
|
2.1. Description of the Components
|
|||
|
|
|||
|
The platform on which the web-server was set up is a Red Hat 6.1 based
|
|||
|
system. Linux kernel 2.2.14 (compiled from scratch) running on a Dual
|
|||
|
PIII 600 based system with RAID5 and lots of other goodies.
|
|||
|
|
|||
|
The web-server software is Apache 1.3.12. The following modules were
|
|||
|
added to the server:
|
|||
|
|
|||
|
|
|||
|
<20> mod_fastcgi SNAP (also mod_rewrite), for use with Zope.
|
|||
|
|
|||
|
<20> Auth-MySQL 2.20
|
|||
|
|
|||
|
<20> mod_ssl 2.6.2 (Open-SSL 0.9.5)
|
|||
|
|
|||
|
<20> mod_perl 1.21
|
|||
|
|
|||
|
<20> PHP 3.0.15
|
|||
|
|
|||
|
<20> mod_auth_nds 0.3a
|
|||
|
|
|||
|
2.2. History
|
|||
|
|
|||
|
v0.91 (April 5, 2000)
|
|||
|
|
|||
|
<20> Updated mod_fastcgi to correct version.
|
|||
|
|
|||
|
v0.9 (April 4, 2000)
|
|||
|
|
|||
|
<20> Completed first draft
|
|||
|
|
|||
|
<20> Spelling/Grammar errors
|
|||
|
|
|||
|
v0.1 (March 2000)
|
|||
|
|
|||
|
<20> Initial draft
|
|||
|
|
|||
|
3. Component Installation
|
|||
|
|
|||
|
3.1. Preparations
|
|||
|
|
|||
|
You will need the following software:
|
|||
|
|
|||
|
<20> Apache 1.3.12 <http://www.apache.org/dist/apache_1.3.12.tar.gz>
|
|||
|
|
|||
|
<20> PHP 3.0.15 <http://www.php.net/distributions/php-3.0.15.tar.gz>
|
|||
|
|
|||
|
<20> GD 1.3 (to make use of GIF files)
|
|||
|
|
|||
|
<20> Source <http://www.boutell.com/gd/http/gd-1.3.tar.gz>
|
|||
|
|
|||
|
<20> RPM
|
|||
|
<ftp://rpmfind.net/linux/redhat/redhat-6.0/i386/RedHat/RPMS/gd-1.3-5.i386.rpm>
|
|||
|
|
|||
|
<20> RPM-devel
|
|||
|
<ftp://rpmfind.net/linux/redhat/redhat-6.0/i386/RedHat/RPMS/gd-
|
|||
|
devel-1.3-5.i386.rpm>
|
|||
|
|
|||
|
<20> GD 1.8.1 (to make use of PNG files)
|
|||
|
|
|||
|
<20> Source <http://www.boutell.com/gd/http/gd-1.8.1.tar.gz>
|
|||
|
|
|||
|
<20> RPM
|
|||
|
<ftp://rpmfind.net/linux/contrib/libc6/i386/gd-1.8.1-1.i386.rpm>
|
|||
|
|
|||
|
<20> RPM-devel <ftp://rpmfind.net/linux/contrib/libc6/i386/gd-
|
|||
|
devel-1.8.1-1.i386.rpm>
|
|||
|
|
|||
|
<20> IMAP 4.5+
|
|||
|
|
|||
|
<20> Source <ftp://ftp.cac.washington.edu/imap/imap-4.7b.tar.Z>
|
|||
|
|
|||
|
<20> RPM
|
|||
|
<ftp://rpmfind.net/linux/redhat/redhat-6.1/i386/RedHat/RPMS/imap-4.5-4.i386.rpm>
|
|||
|
|
|||
|
<20> OpenLDAP 1.2.9+
|
|||
|
|
|||
|
<20> Source <ftp://ftp.openldap.org/pub/OpenLDAP/openldap-
|
|||
|
release/openldap-1.2.9.tgz>
|
|||
|
|
|||
|
<20> RPM
|
|||
|
<ftp://rpmfind.net/linux/rawhide/1.0/i386/RedHat/RPMS/openldap-1.2.9-5.i386.rpm>
|
|||
|
|
|||
|
<20> RPM-devel
|
|||
|
<ftp://rpmfind.net/linux/rawhide/1.0/i386/RedHat/RPMS/openldap-
|
|||
|
devel-1.2.9-5.i386.rpm>
|
|||
|
|
|||
|
<20> mod_perl 1.22+ <http://perl.apache.org/dist/mod_perl-1.22.tar.gz>
|
|||
|
|
|||
|
<20> Perl5 Modules Required
|
|||
|
|
|||
|
<20> MIME::Base64 <http://amaunet.informatik.uni-dortmund.de/cgi-
|
|||
|
bin/CPAN/authors/id/GAAS/MIME-Base64-2.11.tar.gz>
|
|||
|
|
|||
|
<20> URI <http://www.perl.com/CPAN-local/modules/by-
|
|||
|
module/URI/URI-1.05.tar.gz>
|
|||
|
|
|||
|
<20> HTML-Parser <http://www.perl.com/CPAN-local/modules/by-
|
|||
|
module/HTML/HTML-Parser-3.07.tar.gz>
|
|||
|
|
|||
|
<20> Digest-MD5 <http://www.perl.com/CPAN-local/modules/by-
|
|||
|
module/Digest/Digest-MD5-2.09.tar.gz>
|
|||
|
|
|||
|
<20> libnet <http://www.perl.com/CPAN-local/modules/by-
|
|||
|
module/Net/libnet-1.0703.tar.gz>
|
|||
|
|
|||
|
<20> libwww <http://www.perl.com/CPAN-local/modules/by-
|
|||
|
module/WWW/libwww-perl-5.47.tar.gz>
|
|||
|
|
|||
|
<20> mod_ssl 2.6.2+
|
|||
|
<http://www.modssl.org/source/mod_ssl-2.6.2-1.3.12.tar.gz>
|
|||
|
|
|||
|
|
|||
|
<20> OpenSSL 0.9.5
|
|||
|
|
|||
|
<20> Source <http://www.openssl.org/source/openssl-0.9.5.tar.gz>
|
|||
|
|
|||
|
<20> RPM
|
|||
|
<ftp://rpmfind.net/linux/contrib/libc6/i386/openssl-0.9.5-1.i386.rpm>
|
|||
|
|
|||
|
<20> RPM-devel <ftp://rpmfind.net/linux/contrib/libc6/i386/openssl-
|
|||
|
devel-0.9.5-1.i386.rpm>
|
|||
|
|
|||
|
<20> RSAREF 2.0
|
|||
|
<ftp://ftp.wwc.edu/pub/apache/modules/mod_ssl/depend/rsaref20.1996.tar.Z>
|
|||
|
|
|||
|
<20> MM 1.0.12 <http://www.engelschall.com/sw/mm/mm-1.0.12.tar.gz>
|
|||
|
|
|||
|
<20> MySQL 3.22.32
|
|||
|
<http://www.mysql.com/Downloads/MySQL-3.22/mysql-3.22.32.tar.gz>
|
|||
|
|
|||
|
<20> mod_auth_nds 0.4
|
|||
|
<ftp://vrooom.at.drew.edu/pub/mod_auth_nds/mod_auth_nds-0.4.tar.gz>
|
|||
|
|
|||
|
<20> ncpfs 2.2.0.17
|
|||
|
<ftp://vrooom.at.drew.edu/pub/mod_auth_nds/ncpfs/ncpfs-2.2.0.17.tgz>
|
|||
|
Note: the kernel must also be compiled with IPX support.
|
|||
|
|
|||
|
<20> mod_auth_mysql 2.20
|
|||
|
<http://bourbon.netvision.net.il/mysql/mod_auth_mysql/mod_auth_mysql-2.20.tar.gz>
|
|||
|
|
|||
|
<20> mod_fastcgi SNAP Oct06
|
|||
|
<http://www.FastCGI.com/dist/mod_fastcgi_SNAP_Oct06.tar.gz>
|
|||
|
|
|||
|
This is the directory layout scheme I use and recommend:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
+ /usr/src
|
|||
|
|
|
|||
|
+-+ apache
|
|||
|
|
|
|||
|
+-+ apache-1.3.12
|
|||
|
|
|
|||
|
+-+ modules
|
|||
|
| |
|
|||
|
| +-+ mod_perl
|
|||
|
| | |
|
|||
|
| | +- mod_perl-1.21
|
|||
|
| | |
|
|||
|
| | +-+ depend
|
|||
|
| | |
|
|||
|
| | +- <perl modules here>
|
|||
|
| |
|
|||
|
| +-+ mod_ssl
|
|||
|
| | |
|
|||
|
| | +- mod_ssl-2.6.2-1.3.12
|
|||
|
| | |
|
|||
|
| | +-+ depend
|
|||
|
| | |
|
|||
|
| | +- openssl-0.9.5
|
|||
|
| | |
|
|||
|
| | +- rsaref-2.0
|
|||
|
| | |
|
|||
|
| | +- mm-1.0.12
|
|||
|
| |
|
|||
|
| +-+ mod_fastcgi_SNAP
|
|||
|
| |
|
|||
|
| +-+ php
|
|||
|
| | |
|
|||
|
| | +- php-3.0.15
|
|||
|
| | |
|
|||
|
| | +-+ depend
|
|||
|
| | |
|
|||
|
| | +- gd-1.3
|
|||
|
| | |
|
|||
|
| | +- imap-4.5
|
|||
|
| | |
|
|||
|
| | +- openldap-1.2.9
|
|||
|
| |
|
|||
|
| +-+ mod_auth_nds
|
|||
|
| | |
|
|||
|
| | +- mod_auth_nds-0.4
|
|||
|
| | |
|
|||
|
| | +-+ depend
|
|||
|
| | |
|
|||
|
| | +- ncpfs-2.2.0.17
|
|||
|
| |
|
|||
|
| +-+ mod_auth_mysql
|
|||
|
|
|
|||
|
+-+ mysql
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Check to see if some of the above modules/software packages are
|
|||
|
already installed on your system. It usually doesn't hurt, however,
|
|||
|
to download everything and install it just in case. You might have an
|
|||
|
older version installed on your system.
|
|||
|
|
|||
|
3.2. mod_ssl
|
|||
|
|
|||
|
|
|||
|
|
|||
|
3.2.1. Installing and Compiling OpenSSL
|
|||
|
|
|||
|
mod_ssl requires some sort of SSL engine be installed. OpenSSL is the
|
|||
|
natural choice for the Linux environment. You can either install it
|
|||
|
via RPM (as I did), or compile it from source. Since I did not
|
|||
|
compile it from source, you're on your own, although I would think it
|
|||
|
pretty straightforward. Most likely you'll either install it on the
|
|||
|
system (into /usr/local or something) or leave it in its directory and
|
|||
|
simply point whichever applications need OpenSSL to its directory.
|
|||
|
|
|||
|
RPM will install OpenSSL into system directories.
|
|||
|
|
|||
|
3.2.2. Installing and Compiling RSAREF 2.0
|
|||
|
|
|||
|
Create the rsaref-2.0 directory wherever you like. For me this is in
|
|||
|
/usr/src/apache/modules/mod_ssl-blah/depend/. Change to this
|
|||
|
directory.
|
|||
|
|
|||
|
|
|||
|
cd rsaref-2.0
|
|||
|
cp -rp install/unix local
|
|||
|
cd local
|
|||
|
make
|
|||
|
mv rsaref librsaref.a
|
|||
|
|
|||
|
|
|||
|
|
|||
|
These commands should build you the rsaref library! Just leave the
|
|||
|
stuff here and when you need to link against it, just point the
|
|||
|
appropriate configure script to this location.
|
|||
|
|
|||
|
3.2.3. Installing and Compiling MM
|
|||
|
|
|||
|
Extract mm-1.0.12 (or whichever version is most current) to the depend
|
|||
|
directory of the mod_ssl-blah subdirectory. Perform the following
|
|||
|
steps:
|
|||
|
|
|||
|
|
|||
|
cd mm-1.0.12
|
|||
|
./configure --disable-shared
|
|||
|
make
|
|||
|
|
|||
|
|
|||
|
|
|||
|
This should build your mm libraries. As above, reference this path
|
|||
|
when needed. You're on your own if you want to install this library
|
|||
|
to the system.
|
|||
|
|
|||
|
3.2.4. Installing and Compiling mod_ssl (at last!)
|
|||
|
|
|||
|
The normal procedure with apxs is to compile Apache first, and then,
|
|||
|
using apxs, compile the modules you want to use and insert them into
|
|||
|
the server. However, mod_ssl needs to be compiled into the server the
|
|||
|
normal way before you can use it via apxs. Once mod_ssl is in the
|
|||
|
server for the first time, you can then upgrade it via apxs without
|
|||
|
having to completely recompile Apache.
|
|||
|
|
|||
|
Enter the directory where you are compiling mod_ssl and execute the
|
|||
|
following configuration directive (here is the file I use) for the
|
|||
|
initial compile:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#!/bin/sh
|
|||
|
|
|||
|
./configure \
|
|||
|
--with-apache=/usr/src/apache/apache_1.3.12 \
|
|||
|
--with-ssl \
|
|||
|
--with-rsa=../depend/rsaref-2.0/local \
|
|||
|
--with-mm=../depend/mm-1.0.12 \
|
|||
|
--enable-shared=ssl
|
|||
|
|
|||
|
|
|||
|
|
|||
|
You don't need to run 'make' or anything here. When we compile
|
|||
|
Apache, it will do it all for us.
|
|||
|
|
|||
|
This configuration line gives two examples of how your system could be
|
|||
|
set up. In my case, OpenSSL was already installed somewhere in the
|
|||
|
system (probably in /usr/lib, /usr/include). Therefore, I didn't need
|
|||
|
to pass it any location parameters. However, rsa and mm were -not- on
|
|||
|
the system, and I compiled them myself and left them within their
|
|||
|
source trees (didn't run make install, et al). In that case, you need
|
|||
|
to point configure to the appropriate directory so it can find the
|
|||
|
headers/libraries.
|
|||
|
|
|||
|
From this point on, unless you upgrade Apache (in which case you'd
|
|||
|
need to perform the above step again for the new version of Apache),
|
|||
|
you can use apxs to upgrade and recompile mod_ssl. Here is the
|
|||
|
configure script I use for this:
|
|||
|
|
|||
|
|
|||
|
./configure \
|
|||
|
--with-apxs=/apps/apache-1.3.12/bin/apxs \
|
|||
|
--with-ssl=../depend/openssl-0.9.4 \
|
|||
|
--with-rsa=../depend/rsaref-2.0/local \
|
|||
|
--with-mm=../depend/mm-1.0.12
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Or some combination of the above. Then run:
|
|||
|
|
|||
|
|
|||
|
make
|
|||
|
make install
|
|||
|
make distclean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
to complete the installation.
|
|||
|
|
|||
|
Notes: MM is -not- required to compile mod_ssl. If you're having
|
|||
|
problems getting it to work, simply omit compiling it and also from
|
|||
|
the ./configure line(s).
|
|||
|
|
|||
|
When I compiled mod_ssl, I had errors regarding DBM. To fix this, I
|
|||
|
had to add -lndbm to the Makefile:
|
|||
|
|
|||
|
|
|||
|
<20> Run the above configure script.
|
|||
|
|
|||
|
<20> cd to pkg.sslmod
|
|||
|
|
|||
|
<20> Edit the makefile and add -lndbm to LIBS_SHLIB. It should look
|
|||
|
like:
|
|||
|
|
|||
|
<20> LIBS_SHLIB=-lm -lcrypt -lndbdm
|
|||
|
|
|||
|
|
|||
|
Hopefully that will save you some grief.
|
|||
|
|
|||
|
3.3. Apache
|
|||
|
|
|||
|
Extract apache-1.3.12.tar.gz to /usr/src/apache or wherever. Next we
|
|||
|
want to compile Apache enabling the following options:
|
|||
|
|
|||
|
|
|||
|
<20> mod_ssl (In order to compile mod_ssl as a DSO, it has to be first
|
|||
|
compiled into the server normally. After doing this, the module
|
|||
|
can then be upgraded via apxs.)
|
|||
|
|
|||
|
<20> mod_proxy
|
|||
|
|
|||
|
<20> mod_so
|
|||
|
|
|||
|
<20> mod_rewrite (For use with Zope)
|
|||
|
|
|||
|
Here is the configuration file I used to initially compile Apache:
|
|||
|
|
|||
|
|
|||
|
#!/bin/sh
|
|||
|
|
|||
|
SSL_BASE=../depend/openssl-0.9.4 \
|
|||
|
RSA_BASE=../depend/rsaref-2.0/local \
|
|||
|
EAPI_MM=../depend/mm-1.0.12 \
|
|||
|
./configure \
|
|||
|
--enable-module=ssl \
|
|||
|
--enable-module=proxy\
|
|||
|
--enable-shared=proxy\
|
|||
|
--enable-module=rewrite \
|
|||
|
--enable-shared=rewrite \
|
|||
|
--prefix=/apps/apache-1.3.12 \
|
|||
|
--enable-shared=ssl \
|
|||
|
--enable-rule=SHARED_CORE \
|
|||
|
--enable-rule=SHARED_CHAIN \
|
|||
|
--enable-module=so
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Then run
|
|||
|
|
|||
|
|
|||
|
make
|
|||
|
make certificate
|
|||
|
make install
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Apache should now be compiled and installed into whicever directory
|
|||
|
you specified with --prefix. Test it out and make sure it starts up.
|
|||
|
|
|||
|
/path/to/apache/bin/apachectl start
|
|||
|
|
|||
|
or
|
|||
|
|
|||
|
/path/to/apache/bin/apachectl startssl
|
|||
|
|
|||
|
Hopefully it all runs smoothly. If not, trace back over your steps
|
|||
|
and ensure you didn't forget anything.
|
|||
|
|
|||
|
3.4. MySQL
|
|||
|
|
|||
|
php as well as mod_auth_mysql and possibly mod_perl will require that
|
|||
|
MySQL be installed and running on your system. It is beyond the scope
|
|||
|
of this document to go into the details of installing MySQL, but
|
|||
|
download the archive and follow the directions in the INSTALL file(s).
|
|||
|
It is a fairly straight-forward procedure to get MySQL up and running.
|
|||
|
Something like:
|
|||
|
|
|||
|
|
|||
|
./configure
|
|||
|
make
|
|||
|
make install
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Should get everything installed so that you can compile the other
|
|||
|
Apache modules.
|
|||
|
|
|||
|
3.5. PHP 3.0.15
|
|||
|
|
|||
|
We will compile php-3.0.15 as a DSO which means that it is a separate
|
|||
|
module that can be loaded and unloaded from the server. This makes it
|
|||
|
easy to upgrade php without having to recompile everything (which can
|
|||
|
be a pain if you use a lot of modules with Apache).
|
|||
|
|
|||
|
3.5.1. GD
|
|||
|
|
|||
|
In our installation of Apache, php uses gd to create images, and such.
|
|||
|
I used an older version of gd (installed via RPM) to link php against.
|
|||
|
This way we can use output GIF files. This probably isn't too
|
|||
|
desirable do to copyright issues, and thus you may wish to use a
|
|||
|
version later than 1.3 which only supports PNG files.
|
|||
|
|
|||
|
Either install via RPM (rpm -i gd*.rpm) or compile from source and
|
|||
|
install to the system.
|
|||
|
|
|||
|
3.5.2. IMAP
|
|||
|
|
|||
|
If you want IMAP support, the procedure is similar to that of gd. I
|
|||
|
used the RPM since I'm on a Red Hat system, but installing from source
|
|||
|
should be a relatively simple procedure of ./configure;make;make
|
|||
|
install.
|
|||
|
|
|||
|
3.5.3. OpenLDAP
|
|||
|
|
|||
|
Once again you can install OpenLDAP either via RPM or source. I chose
|
|||
|
to do it via source since the latest version was not yet available via
|
|||
|
RPM at the time we were setting things up.
|
|||
|
|
|||
|
|
|||
|
./configure
|
|||
|
make
|
|||
|
make install
|
|||
|
|
|||
|
|
|||
|
|
|||
|
should do the trick! (Or rpm -i openldap*.rpm)
|
|||
|
|
|||
|
3.5.4. Installing and Compiling PHP 3.0.15
|
|||
|
|
|||
|
Once the above items are installed and working, we can go ahead and
|
|||
|
compile PHP as a DSO. The process is very straightforward and simple.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cd /usr/src/apache/modules/php/php-3.0.15
|
|||
|
|
|||
|
./configure \
|
|||
|
--with-apxs=/apps/apache/bin/apxs \
|
|||
|
--with-config-file-path=/apps/etc \
|
|||
|
--with-gd \
|
|||
|
--with-imap \
|
|||
|
--with-mysql=/apps/mysql \
|
|||
|
--with-ldap=/apps \
|
|||
|
--with-zlib \
|
|||
|
--enable-track-vars
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Make sure that if any of your --with libraries are not installed in
|
|||
|
/usr/local or /usr, that you tack on an =/location/ line so that
|
|||
|
configure can find the stuff it needs!
|
|||
|
|
|||
|
|
|||
|
make
|
|||
|
make install
|
|||
|
|
|||
|
|
|||
|
|
|||
|
If everything completes properly, 'make install' will use apxs to
|
|||
|
install libphp3.so to /apache/libexec/libphp3.so and add the proper
|
|||
|
entries into httpd.conf and activate php3. Pretty slick.
|
|||
|
|
|||
|
3.6. mod_perl
|
|||
|
|
|||
|
This section documents the installation of mod_perl as a DSO for
|
|||
|
Apache. There are a number of perl modules (in addition, of course,
|
|||
|
to perl5, which I will assume you already have installed) that must be
|
|||
|
added before mod_perl will compile without complaining. If you don't
|
|||
|
install these modules, mod_perl should complain and tell you which
|
|||
|
ones you are missing.
|
|||
|
|
|||
|
There is a certain order in which the modules must be installed. Some
|
|||
|
depend on others and thus I've listed the install order that I used
|
|||
|
without any problems.
|
|||
|
|
|||
|
3.6.1. Required Perl Modules
|
|||
|
|
|||
|
The perl modules can be obtained from locations detailed further up in
|
|||
|
this document. Download them and put them wherever you like or in the
|
|||
|
location I used as depicted in the directory map (also above).
|
|||
|
Installing a module is fairly simple. After extracting the module to
|
|||
|
a directory (usually with tar xvfz), you simply change to that
|
|||
|
directory and execute the following commands:
|
|||
|
|
|||
|
|
|||
|
perl Makefile.PL
|
|||
|
make
|
|||
|
make install
|
|||
|
|
|||
|
|
|||
|
|
|||
|
If everything goes as it should, this will configure, build and
|
|||
|
install the perl module for you. Of course, check the README for each
|
|||
|
module if things don't work quite as expected.
|
|||
|
|
|||
|
Here is the order I used to install the modules necessary for
|
|||
|
mod_perl:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1. MIME::Base64
|
|||
|
|
|||
|
2. URI
|
|||
|
|
|||
|
3. HTML::Parser
|
|||
|
|
|||
|
4. Digest-MD5
|
|||
|
|
|||
|
5. libnet
|
|||
|
|
|||
|
6. libwww
|
|||
|
|
|||
|
3.6.2. Installing and Compiling mod_perl 1.2x
|
|||
|
|
|||
|
After installing the perl modules, we're ready to compile and install
|
|||
|
mod_perl into Apache. Change to the directory where you extracted
|
|||
|
mod_perl to, and run the following script:
|
|||
|
|
|||
|
|
|||
|
perl Makefile.PL \
|
|||
|
USE_APXS=1 \
|
|||
|
WITH_APXS=/path/to/apache/bin/apxs \
|
|||
|
EVERYTHING=1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
This will set up your Makefile and tell mod_perl to compile itself as
|
|||
|
a DSO using apxs (the location of which you must specify). After this
|
|||
|
step, simply run
|
|||
|
|
|||
|
|
|||
|
make
|
|||
|
make install
|
|||
|
|
|||
|
|
|||
|
|
|||
|
And mod_perl will be moved to the appropriate directory and lines
|
|||
|
added to your httpd.conf file.
|
|||
|
|
|||
|
3.7. mod_auth_mysql
|
|||
|
|
|||
|
mod_auth_mysql lets the Apache web-server authorize against a MySQL
|
|||
|
user database. Installation of the module as a DSO isn't exactly
|
|||
|
documented in the README file, but it can be done.
|
|||
|
|
|||
|
First, change to the directory you extracted mod_auth_mysql to. I
|
|||
|
assume that you have MySQL installed somewhere (along with the
|
|||
|
headers, etc). Make sure you know the location of the MySQL libraries
|
|||
|
and header files. If in doubt, check /usr/lib/mysql and
|
|||
|
/usr/include/mysql.
|
|||
|
|
|||
|
In order to compile mod_auth_mysql, we'll first have to rename the
|
|||
|
'config.h' file to 'auth_mysql_config.h'. I'm not sure why this file
|
|||
|
wasn't named correctly, but simply execute the following command:
|
|||
|
|
|||
|
|
|||
|
cp config.h auth_mysql_config.h
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Now for the final step:
|
|||
|
|
|||
|
|
|||
|
/path/to/apache/bin/apxs -i -a -I/usr/include/mysql -L/usr/lib/mysql \
|
|||
|
-lmysqlclient -c mod_auth_mysql.c
|
|||
|
|
|||
|
You may need to run as root if you do not have read/write access to
|
|||
|
the Apache directory.
|
|||
|
|
|||
|
3.8. mod_auth_nds
|
|||
|
|
|||
|
At my school, the Windows network of choice is Netware. It's been in
|
|||
|
place for a long time, and although hopefully someday it will be
|
|||
|
retired, for now it is still the main network on campus for
|
|||
|
filesharing and email. Every student has a Netware account on which
|
|||
|
their personal files--including their webpages are stored. We mount
|
|||
|
these directories on our linux server and it's nice to be able to
|
|||
|
password protect certain ones with the Netware username and password
|
|||
|
information. With this module, Apache can authenticate straight to
|
|||
|
the Netware server itself.
|
|||
|
|
|||
|
3.8.1. ncpfs
|
|||
|
|
|||
|
In order to compile mod_auth_nds, we need to have ncpfs installed
|
|||
|
(along with its headers of course). Before compiling ncpfs, you must
|
|||
|
ensure that your kernel has IPX support compiled in. If this is the
|
|||
|
case, simply running
|
|||
|
|
|||
|
|
|||
|
./configure
|
|||
|
make
|
|||
|
make install (optional)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
will compile (and install) the libraries.
|
|||
|
|
|||
|
3.8.2. Compiling and Installing mod_auth_nds
|
|||
|
|
|||
|
With ncpfs installed, running the following command should compile
|
|||
|
mod_auth_nds as a DSO:
|
|||
|
|
|||
|
|
|||
|
/path/to/apache/bin/apxs -c -lncp -L/usr/lib -I/usr/include mod_auth_nds.c
|
|||
|
/path/to/apache/bin/apxs -i mod_auth_nds.so
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Then add the following lines to your httpd.conf (by hand):
|
|||
|
|
|||
|
|
|||
|
LoadModule nds_auth_module libexec/mod_auth_nds.so
|
|||
|
AddModule mod_auth_nds.c
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Then, restart Apache!
|
|||
|
|
|||
|
3.9. mod_fastcgi
|
|||
|
|
|||
|
Installing mod_fastcgi is necessary if you want to allow access to
|
|||
|
your Zope server through Apache. This might be useful simply because
|
|||
|
Apache is inherently more secure and much more configurable than the
|
|||
|
Zope server itself.
|
|||
|
|
|||
|
The current stable version of mod_fastcgi is 2.2.2, however, this
|
|||
|
version does not work properly with Zope. You must get the SNAP
|
|||
|
release which is dated Oct 06. The link is provided above.
|
|||
|
|
|||
|
Change to the mod_fastcgi directory and run the following commands:
|
|||
|
|
|||
|
|
|||
|
/path/to/apache/bin/apxs -o mod_fastcgi.so -c *.c
|
|||
|
/path/to/apache/bin/apxs -i -a -n fastcgi mod_fastcgi.so
|
|||
|
|
|||
|
|
|||
|
|
|||
|
See the mod_fastcgi documentation for a description of its use.
|
|||
|
|
|||
|
4. Final Words
|
|||
|
|
|||
|
Much of this information can be obtained by reading the README and
|
|||
|
INSTALL files included with the various modules. However, this
|
|||
|
document is useful in the cases which didn't work as expected for me,
|
|||
|
or else for which the installation procedure was not as well defined
|
|||
|
as I would have liked. It also has the added benefit of being one,
|
|||
|
sequential document, which should hopefully be easier to follow and
|
|||
|
understand than a slew of README files.
|
|||
|
|
|||
|
4.1. Credits
|
|||
|
|
|||
|
|
|||
|
Phillip R. Wilson <pwilson@drew.edu>, author of mod_auth_nds, for helping me get
|
|||
|
mod_auth_nds to compile and install with apxs.
|
|||
|
|
|||
|
John Ash <jash@wwc.edu>, my boss, for all sorts of help and of course, a job.
|
|||
|
|
|||
|
Marcus Faure <marcus@faure.de>, author of the Apache SSL PHP/FI frontpage mini-
|
|||
|
HOWTO, whose document this one is loosely based on.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
4.2. Contact Information
|
|||
|
|
|||
|
If you find any blatant errors in this document, spelling,
|
|||
|
grammatical, content or otherwise, please don't hesitate to drop me an
|
|||
|
email. You can get ahold of me via a number of means.
|
|||
|
|
|||
|
|
|||
|
Ray Van Dolson
|
|||
|
Email: <url url="mailto:rayvd@firetail.org" name="rayvd@firetail.org">
|
|||
|
IRC: DALnet, #Bludgeon (nick Variant)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
4.3. Anything Else
|
|||
|
|
|||
|
Everything mentioned in this document will eventually be available for
|
|||
|
ftp from ftp.wwc.edu/pub/apache. I will have everything laid out as
|
|||
|
described above, and hopefully installation scripts to install
|
|||
|
everything from scratch. (A very dumb script mind you).
|
|||
|
|
|||
|
|
|||
|
|