Skip to main content

a web mapping transformation library

Project description

Author: crschmidt@metacarta.com
Copyright: 2007 Christohper Schmidt.
Version: 1.0
Manual group:GIS Utilities

DESCRIPTION

WebProcessingServer is a simple Python-based geographic feature server. It allows you to transform geographic vector features via a number of different processing backends.

WebProcessingServer will run under Python CGI, mod_python, or as a standalone server.

WebProcessingServer is released under a license similar to the BSD license.

RUNNING UNDER CGI

  • Extract the code to some web directory (e.g. in /var/www).

  • Permit CGI execution in the WebProcessingServer directory. For example, if WebProcessingServer is to be run with Apache, the following must be added in your Apache configuration, where /var/www/webprocessingserver is the directory resulting from the code extraction.

    <Directory /var/www/webprocessingserver>
         AddHandler cgi-script .cgi
         Options +ExecCGI
    </Directory>
    

Python Prerequisites

In order to use WebProcessingServer, you must have the simplejson module installed. If you do not, you can add it by doing the following:

$ wget http://cheeseshop.python.org/packages/source/s/simplejson/simplejson-1.7.1.tar.gz $ tar -zvxf simplejson-1.7.1.tar.gz $ cp -r simplejson-1.7.1/simplejson /var/www/webprocessingserver

Note that these instructions are for Linux systems: the end goal is to extract the simplejson directory from the distribution and put it in the root of your WebProcessingServer install.

Non-standard Python Location

If your Python is not at /usr/bin/python on your system, you will need to change the first line of wps.cgi to reference the location of your Python binary. A common example is:

#!/usr/local/bin/python

Under Apache, you might see an error message like:

[Wed Mar 14 19:55:30 2007] [error] [client 127.0.0.1] (2)No such file or
  directory: exec of '/www/wps.cgi' failed

to indicate this problem.

You can typically locate where Python is installed on your system via the command ‘which python’.

Windows users: If you are using Windows, you should change the first line of wps.cgi to read:

#!C:/Python/python.exe -u

C:/Python should match the location Python is installed under on your system. In Python 2.5, this location is C:/Python25 by default.

RUNNING UNDER MOD_PYTHON

  • Extract the code to some web directory (e.g. /var/www).

  • Add the following to your Apache configuration, under a <Directory> heading:

    AddHandler python-program .py
    PythonPath sys.path+['/path/to/webprocessingserver']
    PythonHandler WebProcessingServer.Server
    PythonOption WebProcessingServerConfig /path/to/webprocessingserver.cfg
    
  • An example might look like:

    <Directory /var/www/webprocessingserver/>
       AddHandler python-program .py
       PythonPath sys.path+['/var/www/webprocessingserver']
       PythonHandler WebProcessingServer.Server
       PythonOption WebProcessingServerConfig
                    /var/www/webprocessingserver/webprocessingserver.cfg
    </Directory>
    
  • In this example, /var/www/webprocessingserver is the directory resulting from the code extraction.

  • Visit the URL described above, replacing wps.cgi with webprocessingserver.py

  • If you see an empty GeoRSS file you have set up your configuration correctly. Congrats!

  • Note that mod_python has not yet been well tested, and may not work well for all data sources.

RUNNING STANDALONE (UNDER WSGI)

WebProcessingServer comes with a standalone HTTP server which uses the WSGI handler. This implementation depends on Python Paste, which can be downloaded from:

http://cheeseshop.python.org/pypi/Paste

For versions of Python earlier than 2.5, you will also need to install wsgiref:

http://cheeseshop.python.org/pypi/wsgiref

Once you have all the prerequisites installed, simply run:

python wps_http_server.py

This will start a webserver listening on port 8080.

RUNNING UNDER FASTCGI

WebProcessingServer comes with a fastcgi implementation. In order to use this implementation, you will need to install flup, available from:

http://trac.saddi.com/flup

This implementation also depends on Python Paste, which can be downloaded from:

http://cheeseshop.python.org/pypi/Paste

Once you have done this, you can configure your fastcgi server to use webprocessingserver.fcgi.

Configuring FastCGI is beyond the scope of this documentation.

CONFIGURATION

WebProcessingServer is configured by a config file, defaulting to webprocessingserver.cfg.

Project details


Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page