Personal tools
You are here: Home Documentation How-tos Building mapserver its main dependencies from scratches under Linux

Building mapserver its main dependencies from scratches under Linux

Document Actions
This is just a small script to download, configure and build mapserver and its main dependencies from sources under Linux. This HowTo assumes a basic knowledge of bash commands and the ability to edit the scripts itself and change a few configuration prameters.

The goal is to have latest versions of mapserver and its main dependencies.

The script will build:

  • GDAL
  • PROJ
  • GEOS
  • MAPSERVER

How it works

Fisrst, all the libraries and mapserver will be downloaded from their official websites, then tey will be uncompressed and extracted on your disk, then they will be configured, built and installed one by one.

Note that you don't have to run the script as root, run it as a normal user, you will be prompted for a password when needed. If your distribution doesn't use the "sudo" system, just change all "sudo" commands in the script into "su -c ".

Prerequisites

Building from sources means you already have installed the compiler, its tools and the header files of all the main shared libraries (zlib etc.) and have a working toolchain for compilation from sources.

This was tested on Linux KUbuntu, Ubuntu server and Debian.

Configuration

After copying the script on the disk and making it executable, you should open it with an editor and change some configuration variables.

More detailed instructions are in the script comments.

If something goes wrong

First uncomment WGET in the code if you don't want to download all files again, then check your paths and those configured or hardcoded in the script.

Chek also the parameters passed to the "configure" commands in the script, maybe you don't need all those options.

Code



# Where to install: usually /usr or /usr/local
PREFIX=/usr

# Directory of PHP binary libs, in my case, was /usr/lib/php5/20051025/
PHPLIBDIR=/usr/lib/php5/20051025/

# Uncomment for a debug build of gdal library
#DEBUG_GDAL=1

# Activate download (deactivate if you have still downloaded)
WGET=1

# Libraries to fetch, configure, build and install
# Adjust versions according to your needs
GEOS="geos-3.0.0rc4"
GDAL="gdal-1.4.1"
PROJ="proj-4.5.0"
MAPSERVER="mapserver-4.10.1"
# Uncomment if you still have postgresql installed and want
# to build postgis, adjust paths in the last code block of this file
#POSTGIS="postgis-1.2.1"




if [ $GEOS ]; then
        if [ $WGET = 1 && ! -f "$GEOS.tar.bz2" ]; then
                wget http://geos.refractions.net/$GEOS.tar.bz2
                tar -xjf $GEOS.tar.bz2
        fi

        cd $GEOS
        ./configure --prefix=$PREFIX
        make clean
        make
        sudo make install

        cd ..
fi

if [ $GDAL ]; then
        if [ $WGET = 1 ]; then
                wget http://download.osgeo.org/gdal/$GDAL.tar.gz
                tar -xzf $GDAL.tar.gz
        fi

        cd $GDAL
        if [ $DEBUG_GDAL ]; then
                export CFG=debug
        fi
        ./configure --prefix=$PREFIX --with-mysql
        make clean
        make
        sudo make install
        cd ..
fi


if [ $PROJ ]; then
        if [ $WGET = 1 ]; then
                wget ftp://ftp.remotesensing.org/proj/$PROJ.tar.gz
                tar -xzf $PROJ.tar.gz
        fi

        cd $PROJ
        ./configure --prefix=$PREFIX
        make clean
        make
        sudo make install
        sudo cp $PREFIX/include/proj_api.h $PREFIX/lib
        cd ..
fi


if [ $MAPSERVER ]; then
        if [ $WGET = 1 ]; then
                wget http://cvs.gis.umn.edu/dist/$MAPSERVER.tar.gz
                tar -xzf $MAPSERVER.tar.gz
        fi

        cd $MAPSERVER
        ./configure \
         --with-wfs \
         --with-wfsclient \
         --with-wmsclient \
         --with-proj=$PREFIX/lib \
         --with-geos=$PREFIX/bin/geos-config \
         --with-gdal=$PREFIX/bin/gdal-config \
         --with-ogr=$PREFIX/bin/gdal-config \
         --with-php=/usr/include/php5 \
         --with-mygis=yes \
         --with-postgis \
         --with-httpd=/usr/sbin/apache2 \
         --prefix=$PREFIX
        make clean
        make
        sudo cp mapserv /usr/lib/cgi-bin/
        sudo cp shp2img $PREFIX
        sudo cp shptree $PREFIX
        sudo cp tile4ms $PREFIX
        sudo cp mapscript/php3/php_mapscript.so $PHPLIBDIR
        cd ..
fi



if [ $POSTGIS ]; then
        if [ $WGET = 1 && ! -f "$POSTGIS.tar.gz" ]; then
                wget http://www.postgis.org/download/$POSTGIS.tar.gz
                tar -xzf $POSTGIS.tar.gz
        fi

        cd $POSTGIS
        ./configure --prefix=$PREFIX/lib/postgresql/8.1/
        make clean
        make
        sudo make install
        cd ..
fi

Originally published on my blog at: ItOpen - Open Web Solutions

This How-to applies to: MapServer 4.10

by alessandro pasotti last modified 2007-06-20 04:42
 

Powered by Plone