Requirements

To install a GeoMapFish application you need to have the following components installed on your system:

  • Git (preferably to other revision control systems)
  • Python 2.7 (2.5 or 3.x do not work, 2.6 should work but is not supported) with development files (python-dev)
  • VirtualEnv >= 1.7
  • Oracle Java SE Development Kit 6 or 7
  • Tomcat >= 6.0
  • Apache >= 2.2
  • PostgreSQL >= 9.1/PostGIS >= 2.1, with library (libpq-dev)
  • MapServer 7.0 or QGIS-mapserver 2.2 and upper
  • MapCache >= 1.0.0 with memcached support
  • TinyOWS >= 1.1.0
  • ImageMagick
  • GCC GNU Compiler Collection >= 4.6
  • Deploy >= 0.4
  • libproj >= 4.7
  • gettext >= 0.18

For ngeo

  • node >= 6.0
  • npm >= 3.0

Required Apache modules

  • mod_expires
  • mod_headers
  • mod_proxy
  • mod_proxy_http
  • mod_rewrite
  • mod_wsgi
  • mod_mapcache

Conflicting Apache modules

  • mod_php*

Print

The print requires a Tomcat server listening by default on port 8080. To change it you should overwrite the print_url vars in config.yaml.in, default is: http://localhost:8080/print-c2cgeoportal-{instanceid}/pdf/.

And by default the ‘webapps’ folder is /srv/tomcat/tomcat1/webapps, to change it set the PRINT_OUTPUT value in the makefile.

For MapFish Print to function properly it is recommended to increase the default Java Heap Size for Tomcat (parameter -Xmx and -Xms). On servers managed by Camptocamp check the size in the file /srv/tomcat/tomcat1/bin/setenv-local.sh:

export JAVA_XMX="1G"
export ADD_JAVA_OPTS="-Xms1G"

The above settings set the minimum and maximum heap size to 1GB.

Additional notes for Windows users

GeoMapFish can be used under Windows, but you will need to install Cygwin and some additional stuff for Python.

We assume that Python 2.7 is used.

Once Python is installed, you should add two folders to your path environment variable:

  • C:\path_to_python\Python27
  • C:\path_to_python\Python27\Scripts

Python

  • Install Microsoft Visual C++ Compiler for Python 2.7 (http://aka.ms/vcpython27)
  • Be sure to have at least pip >= 9.x in your project . Using virtualenv >= 15 should resolve that.

Cygwin

  • Go to https://cygwin.com/
  • In the download section, download the installer corresponding to your system
  • Run the downloaded installer
  • Choose an install folder not containing any space or weird characters (like parentheses)

When installing Cygwin, please make sure to install the following non-default packages:

  • make from the devel folder
  • gettext-devel from the devel folder
  • wget from the web folder

Cygwin should always be run in administrator mode. To configure that:

  • Go to the Windows start menu
  • Right-click the Cygwin Terminal program icon
  • Open its properties
  • Under the Compatibility tab, check the Run this program as an administrator

To avoid file permission problems between Windows and Cygwin, edit Cygwin’s /etc/fstab file to disable ACLs like this:

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

Configure Git

Cygwin comes with its own git package. It might be a really good idea to configure Cygwin’s git for Windows. To do so:

  • Open a Cygwin bash
  • Run git config core.autocrlf true

Print

If using MapFish Print v3 (thus defining PRINT_VERSION ?= 3 in your makefile), then you should define the service name of your Tomcat server. In your makefile, define the following variables:

PRINT_TMP = tmp
TOMCAT_START_COMMAND = net START Tomcat7
TOMCAT_STOP_COMMAND = net STOP Tomcat7

The first line disables the tmp folder, which is not working on Windows. The next two lines define the commands to start and stop your Tomcat service (here it would be Tomcat7). On Windows, these commands differ from the one used on Linux.