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 parameters.

The goal is to have latest versions of mapserver and its main dependencies. The script will build:
  • GDAL
  • PROJ
  • GEOS
  • MAPSERVER

How it works

First, 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. Important note: after copying and pasting the script from this page to your PC, you will have to change “ and ″ in ” in the script. 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

3 Responses to “A script to build the latest mapserver webgis from sources”

  • ubai

    Hai, i am beginner with web mapping application and linux. I use Kubuntu. I don’t understand how to make the executable file from code that you give. What program should i use and how to run the code. Thanks

  • Alessandro Pasotti

    It’s just a script to be run in the shell.
    First make it executable whith chmod +x scriptname
    Note that for kubuntu pre-built binaries exists, search for mapserver with the application installer.

    Please note that compiling from source is not for beginners try to fetch pre-build packages first.

    See here for another repository

  • ubai

    Can you help me send step by step, how to install mapserver in KUbuntu. Because after browsing and reading the link that you give i still found problem. Thanks in advance