Installation¶
Table of Contents
To use EOxServer it must be installed first. Following this guide will give you a working software installation.
See also
- Installation on CentOS
- for specific installation on CentOS.
- Service Instance Creation and Configuration
- to configure an instance of EOxServer after successful installation.
- Recommendations for Operational Installation
- to configure an operational EOxServer installation.
Dependencies¶
EOxServer depends on some external software. Table: “EOxServer Dependencies” below shows the minimal required software to run EOxServer.
Software | Required Version | Description |
---|---|---|
Python | >= 2.5, < 3.0 (>=2.6.5 for Django 1.5) | Scripting language |
Django | >= 1.4 (1.5 for PostGIS 2.0 support) | Web development framework written in Python including the GeoDjango extension for geospatial database back-ends. |
GDAL | >= 1.7.0 (1.8.0 for rasdaman support) | Geospatial Data Abstraction Library providing common interfaces for accessing various kinds of raster and vector data formats and including a Python binding which is used by EOxServer |
GEOS | >= 3.0 | GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS). |
libxml2 | >= 2.7 | Libxml2 is the XML C parser and toolkit developed for the Gnome project. |
lxml | >= 2.2 | The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt. |
MapServer | >= 6.2 (works partly with 6.0) | Server software implementing various OGC Web Service interfaces including WCS and WMS. Includes a Python binding which is used by EOxServer. |
The Python bindings of the GDAL, MapServer (MapScript) and libxml2 libraries are required as well.
EOxServer is written in Python and uses the Django framework which requires a Python version from 2.5 to 2.7. Due to backwards incompatibilities in Python 3.0, Django and thus EOxServer does not currently work with Python 3.0.
EOxServer makes heavy usage of the OSGeo projects GDAL and MapServer.
EOxServer also requires a database to store its internal data objects. Since it is built on Django, EOxServer is mostly database agnostic, which means you can choose from various database systems. Since EOxServer requires the database to have geospatial enablement, the according extensions to that database have to be installed. We suggest you use one of the following:
- For testing environments or small amounts of data, the SQLite database provides a lightweight and easy-to-use system.
- However, if you’d like to work with a “large” database engine in an operational environment we recommend installing PostgreSQL.
For more and detailed information about database backends please refer to Django database notes and GeoDjango installation.
Backend | Required Version | Required extensions/software |
---|---|---|
SQLite | >= 3.6 | spatialite (>= 2.3), pysqlite2 (>= 2.5), GEOS (>= 3.0), PROJ.4 (>= 4.4) |
PostgreSQL | >= 8.1 | PostGIS (>= 1.3), GEOS (>= 3.0), PROJ.4 (>= 4.4), psycopg2 (== 2.4.1) |
Installing EOxServer¶
There are several easy options to install EOxServer:
Install an official release of EOxServer, the best approach for users who want a stable version and aren’t concerned about running a slightly older version of EOxServer. You can install EOxServer either from
PyPI - the Python Package Index using pip:
sudo pip install eoxserver
or from the EOxServer release page using pip:
sudo pip install https://github.com/EOxServer/eoxserver/releases/download/release-<version>/EOxServer-<version>.tar.gz
or manually:
wget https://github.com/EOxServer/eoxserver/releases/download/release-<version>/EOxServer-<version>.tar.gz . tar xvfz EOxServer-<version>.tar.gz cd EOxServer-<version> sudo python setup.py install
or binaries provided by your operating system distribution e.g. CentOS.
Install the latest development version, the best option for users who want the latest-and-greatest features and aren’t afraid of running brand-new code. Make sure you have git installed and install EOxServer’s main development branch using pip:
sudo pip install git+https://github.com/EOxServer/eoxserver.git
or manually:
mkdir eoxserver_git git clone git@github.com:EOxServer/eoxserver.git eoxserver_git cd eoxserver_git sudo python setup.py install
If the directory EOxServer is installed to is not on the Python path, you will have to configure the deployed instances accordingly, see Deployment below.
The successful installation of EOxServer can be tested using the autotest instance which is described in more detail in the Developers’ Guide.
Now that EOxServer is properly installed the next step is to create and configure a service instance.
Upgrading EOxServer¶
To upgrade an existing installation of EOxServer simply add the –upgrade switch to your pip command e.g.:
sudo pip install --upgrade eoxserver
or rerun the manual installation as explained above.
Please carefully follow the migration/update procedure corresponding to your version numbers for any configured EOxServer instances in case of a major version upgrade.
Hardware Guidelines¶
EOxServer has been deployed on a variety of different computers and virtual machines with commonplace hardware configurations. The typical setup is:
- a dual-core or quad-core CPU
- 1 to 4 GB of RAM
The image processing operations required for certain OGC Web Service requests (subsetting, reprojection, resampling) may be quite expensive in terms of CPU load and memory consumption, so adding more RAM or an additional core (for VMs) may increase the performance of the service. Bear in mind however, that disk I/O speed is often a bottleneck.