[mapserver-users] Apache + PHP3 + MS3.5 + PHPMapScript

Stephen Woodbridge woodbri at swoodbridge.com
Wed Jan 16 18:20:41 PST 2002


Hi all,

I finally have this all working after a long ordeal. But before I go
into the details, I want to give public THANKS to Daniel Morissette of
DM Solutions Group. He provided significant support and advice that
enabled me to work through many issues. I seems straight forward after
the fact, but it was not intuitive and I seemed to have turn down every
dead end that exsisted. So Daniel, Thanks!, your assistance is greatly
apreaciated.

Now the details before they escape my seive of brain.

My configuration:
RedHat 6.2, Linux 2.2.18
apache_1.3.22.tar.gz
php-3.0.18.tar.gz
mapServer 3.5 Released

I made scripts with all the configure parameters so I could have some
repeatability and to verify what I actually ran last. I also did a "make
clean" and "rm config.cache" in the scripts so when I made changes I was
sure they were used. 

Here are a few of the problems that I ran into:

1) building things as DSO is very different than build things as static
or CGI. After I got PHP3 built for debugging and found out that my
multiple version of regex was causing memory structures to be
miss-aligned, it still took me another half a day to get a working
version to build. And worst of all the interdependance between
apache/php3/mapscript is pathological at best.

2) TOO many versions of regex! There is one bundled with apache, another
one bundled with php3, a system version (regex.h) and an rx lib version.
Everybody needs to use the SAME version. I could ONLY get things to work
when I forced everyone to use the system-regex. First off if you read
the WMS documentation it talks about rx lib, just forget about this (IE:
Dont down load it! I did and had to uninstall it to get mapserver to
build in the first place). This required finding and setting
--disable-rule=WANTHSREGEX=no in apache so it does not use its bundled
version.

For PHP3, if you are building the CGI version then you can specify
--with-system-regex and your home free, BUT if your building a DSO with
--with-apxs=/usr/sbin/apxs then it will look at the /usr/sbin/apxs to
see if apache was built with its bundled regex and if it was then it
will ignore the --with-system-regex. Also when you configure mapserver,
it will look at the php's config.h file to determine if it should use
the php bundled version of regex or not.

3) Build PHP3 as a DSO. There is a nasty problem that apxs is broken.
This is easily fixed if you edit /usr/sbin/apxs and search for "-shared"
and insert before it "-export-dynamic " before you run make on php3.
Also be aware that if you rebuild and install apache it you will need to
fix apxs again.

4) Open Issues:

a) I never got the CGI version of PHP3 to work with my build of apache.
b) When I build apache using the config below php4 broke and I have not
gone back to look into that issue.

So like I said, it seems pretty simple in hindsight, but I had spent the
better part of 5 days over the last 2 weeks working on this. It was
easier to set up my Linux firewall :)

My scripts for apache, php3 and mapserver follow:

[woodbri at linus linux]$ cat doit-apache
make clean
rm config.cache
./configure --enable-module=all --enable-shared=max --with-layout=RedHat
--disable-rule=WANTHSREGEX=no
make

[woodbri at linus linux]$ cat doit-php3
make clean
rm config.cache
./configure \
--prefix=/usr \
--with-config-file-path=/etc/httpd \
--enable-safe-mode \
--enable-versioning \
--with-apxs=/usr/sbin/apxs \
--enable-force-cgi-redirect \
--enable-discard-path \
--with-exec-dir=/usr/bin \
--with-system-regex \
--with-zlib \
--with-gdbm \
--disable-debug \
--enable-debugger \
--enable-magic-quotes \
--enable-track-vars \
--enable-sysvsem \
--enable-sysvshm \
--enable-track-vars \
--with-xml \
--with-ftp \
--with-jpeg \
--without-ttf \
--with-gd \
--with-mysql=/usr
make

[woodbri at linus mapserver]$ cat doit-3.5
make clean
rm config.cache
./configure \
--with-perl-options=PREFIX=/usr \
--with-ogr --with-gdal \
--with-wmsclient \
--with-proj \
--with-php=/home/woodbri/linux/php-3.0.18 \
--with-apxs=/usr/sbin/apxs
make



More information about the MapServer-users mailing list