Installing MapServer on Ubuntu

Posted by on January 10, 2008

With this post I will show hot to install MapServer 4.10.3 in Ubuntu 7.10 (but this procedure should work also for previous Ubuntu versions) from repositories.

1) set Ubuntu sources needed for this software

Add universe ( http://archive.ubuntu.com/gutsy/universe ) and multiverse repositories to your sources (by default are not in Ubuntu)

sudo gedit /etc/apt/sources.list

and uncomment this two lines:

deb http://archive.ubuntu.com/ubuntu/ gutsy-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ gutsy-security main restricted universe multiverse

save the sources.list file and then then update your sources:

sudo apt-get update

2) Install MapServer

now download and install MapServer:

sudo apt-get install cgi-mapserver mapserver-bin mapserver-doc php5-mapscript python-mapscript

MapServer 4.10.3 will be installed (latest of MapServer 4.x serie, the actual MapServer is at 5.0.0), as indicated by typing:

/usr/lib/cgi-bin/mapserv -v
MapServer version 4.10.3 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=THREADS SUPPORTS=GEOS INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG

This is where packages have been installed:

  • mapserv is installed from cgi-mapserver package in /usr/lib/cgi-bin
  • command line utilities (like shp2img) are installed by the mapserver-bin package in /usr/bin
  • some documentations is installed by the mapserver-cod package in /usr/share/doc/mapserver-doc

Test mapserv for cgi by typing (it should work as far you have left the default web site in Apache 2.2): http://localhost/cgi-bin/mapserv

3) Download MapServer Demo

Download the Mapserver 4.x Demo Application from the MapServer web site: http://maps.dnr.state.mn.us/mapserver_demos/workshop.zip

extract the zip file wherever you like, for example i have extracted it here: /home/corti/public_html/mapserverdemo

4) Configure Apache httpd

Configure an httpd virtual host for MapServer. For example we will create a mapserverdemo virtual host editing the default file

sudo gedit /etc/apache2/sites-available/default

this is how I created this virtual host (you may need to change path according to where you have extracted the demo zip file):

<VirtualHost *:80>
	ServerName mapserverdemo
	DocumentRoot /home/corti/public_html/mapserverdemo
 
	<Directory />
		Options FollowSymLinks
		AllowOverride All
	</Directory>
 
	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>
 
	ErrorLog /var/log/apache2/mapserverdemo_error.log.
	LogLevel warn
	CustomLog /var/log/apache2/mapserver_access.log combined
	ServerSignature On
</VirtualHost>

now let’s add a mapserverdemo host:

sudo gedit /etc/hosts

and add this line:
127.0.0.1 mapserverdemo

save the file and restart Apache:

sudo /etc/init.d/apache2 restart

create a tmp directory in your mapserverdemo root, with writing permissions for the Apache user

Now if you go to http://mapserverdemo/workshop/ you will see a form, but after that it will not work as far we need to add the html form settings to our settings.
If you go at: http://mapserverdemo/cgi-bin/mapserv you should get this response:

No query information to decode. QUERY_STRING is set, but empty.

5) Configure the MapServerDemo

Now let’s configure the demo with our settings.
Edit this section in index.html file (wherever you have extracted the demo), according to your settings:

    <!-- EDIT THE FORM ACTION -->
    <form name="demo" method="GET" action="/cgi-bin/mapserv" onSubmit="submit_form()">
 
   .......
 
      <!-- EDIT THESE HIDDEN VARIABLES -->
      <input type="hidden" name="map" value="/home/corti/public_html/mapserverdemo/workshop/itasca.map">
      <input type="hidden" name="program" value="/cgi-bin/mapserv">
      <input type="hidden" name="root" value="/mapserver_demos/workshop">
      <input type="hidden" name="map_web_imagepath" value="/home/corti/public_html/mapserverdemo/tmp/">
      <input type="hidden" name="map_web_imageurl" value="/tmp/">

go to: http://mapserverdemo/workshop/ and the demo should work. Enjoy!

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • LinkedIn
  • Reddit
  • StumbleUpon
10 Comments on Installing MapServer on Ubuntu

Closed

  1. Kristian says:

    If you want MapServer 5 on Ubuntu 7.10, instructions can be found here: http://quovadis.dk/index.cgi/i_can_has_gis%3A2007-10-20%3Ageo%2Clinux%2Cserver%2Cubuntu

  2. Paolo Corti says:

    Thanks!
    I wanted to keep simple the thing here, allowing people to install it without compiling it from sources

  3. [...] post sviluppa un argomento a me caro: l’installazione di MapServer su Ubuntu. E’ scritto con [...]

  4. Frits says:

    http://localhost/cgi-bin/mapserv
    I just get a popup, it ask for if i want to download my mapserv.exe, how can i do so it executes mapserv instead of sending the actual file???

    I have downloaded an followed this
    http://old-mapserver.gis.umn.edu/win32binaries.html
    ms441pg.zip

    And i have got the itasca demo.

    but the only thing that work, is that the server is running (i can se that localhost respons with the default site.)
    And if I write a url I got the itasca demo viewer site, but nothing is rendered.

    What can I do futher?

  5. [...] Installing MapServer on Ubuntu [...]

  6. Joe Larson says:

    I get the following error when creating the virtual host and adding the mapserverdemo host:

    [Tue Feb 05 09:43:11 2008] [error] VirtualHost *:80 — mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

    The error above is after restarting the Apache server.

    Obrigado - Joe

  7. Johnny says:

    hey
    paolo podrias mandarme o alguien enviarme el archivo de ejemplo workshop el link no funciona!!

    el tutorial esta increible!!

    gracias

    Johnny

  8. Luke says:

    Hey Joe I removed the :80 and the error msg disappeared. Not to sure what this has done though. I assume it now listens on all ports. I’m just playing behind a firewall so assume this doesn’t matter???

  9. Zaay says:

    Hello!

    Do you have some expirience with the CArtoweb ?