Table of Contents
To use EOxServer it must be installed first. Following this guide will give you a working software installation.
EOxServer depends on some external software. Table: “EOxServer Dependencies” below shows the minimal required software to run EOxServer.
|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 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:
|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)|
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
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
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
mkdir eoxserver_git git clone firstname.lastname@example.org: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.
Now that EOxServer is properly installed the next step is to create and configure a service instance.
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.
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.