This is what I did to make it work:

First, I cleaned out all existing source code tarballs and all existing
installations of apache in my target area (/usr/local/apache).  On my
system, that looked like:

---

/bin/rm -rf /usr/local/apache

cd /usr/local/src

/bin/rm -rf apache_1.3.23 mod_perl-1.26 httpd-apreq
/bin/rm -rf apache.tar.gz mod_perl-1.26.tar.gz apreq.tar.gz

---

Next, I downloaded all the source code.  Note that I'm using Joe Schaefer's
"special" versions of apache and libapreq.

---

wget -q 
ftp://ftp-mirror.internap.com/pub/CPAN/authors/id/D/DO/DOUGM/mod_perl-1.26.t
ar.gz
wget -q http://www.apache.org/~joes/apreq.tar.gz
wget -q http://www.apache.org/~joes/apache.tar.gz

tar -xzf mod_perl-1.26.tar.gz
tar -xzf apreq.tar.gz
tar -xzf apache.tar.gz

---

Then I built and installed mod_perl:

---

cd mod_perl-1.26
perl Makefile.PL APACHE_SRC=../apache_1.3.23/src
APACHE_PREFIX=/usr/local/apache PREP_HTTPD=1 USE_APACI=1 EVERYTHING=1
# I answered "y" to this, although I'm not sure why it even asked...
# Configure mod_perl with ../apache_1.3.23/src ? [y] y
make
make install

---

Then I built and installed the "special" apache:

---

cd ../apache_1.3.23
../configure \
  --prefix=/usr/local/apache  \
  --with-layout=Apache \
  --activate-module=src/modules/perl/libperl.a

make
make install

---

Then I *manually copied* the httpd binary out of the source directory and
into the install location.  Yes, I know I just ran "make install", but the
installed version is actually different than the one sitting in the source
directory!

---

# I have no idea why this is necessary, but it is
/bin/cp src/httpd /usr/local/apache/bin

---

Then I built and installed the special libapreq:

---

cd ../httpd-apreq
perl Makefile.PL
make
make install

---

Finally, I configured apache to load both Apache::Request and Apache::Cookie
and started it up:

---

cd /usr/local/apache
echo 'PerlRequire "conf/startup.pl"' >> conf/httpd.conf
echo 'use Apache::Request;' > conf/startup.pl
echo 'use Apache::Cookie;' >> conf/startup.pl
echo '1;' >> conf/startup.pl

bin/httpd -d /usr/local/apache -f conf/httpd.conf

---

And it works!  I even made a simple PerlHandler that gets and sets cookies
and reads and sets parameters using Apache::Request and Apache::Cookie, and
that worked too.

Obviously, this build process is not ideal, but at least it's working!  I
hope future builds will be more "normal" :)  Thanks to Joe and Rick and all
the other people who provided help and tips.

I compiled all of the commands above into a shell script and ran it as root
on my system.  The output produced by that script is attached to this
message.  I didn't attach the script itself because I don't want someone to
run it and end up recursively deleting something they wanted to keep :)  But
the shell script is just the concatenation of all the little bits between
"---"s above (plus "date" and "perl -V" at the very start).

Oh, and finally, this is OS X 10.1.2, build 5P48:

% uname -a
Darwin localhost 5.2 Darwin Kernel Version 5.2: Fri Dec  7 21:39:35 PST
2001; root:xnu/xnu-201.14.obj~1/RELEASE_PPC  Power Macintosh powerpc

with the latest dev tools installed.

-John

Attachment: run.txt.gz
Description: Binary data

Reply via email to