Quick install instructions for p.mapper 4.x
For more detailed documentation see the p.mapper manual
Quick install instructions for older version 3.x see PDF file here
PHP/MapScript Library and WebServer
p.mapper in the current version requires PHP 5. If you want to run p.mapper on PHP 4 you need to use the older version 3.0.
Install the PHP/MapScript library in the appropriate place and configure your webserver to parse *.php and *.phtml files with PHP.
See the documentation for PHP/MapScript and MapServer for details.
PHP needs to be compiled with support of the ICONV library. This should be the default on Windows and Unix versions of PHP
In PHP 5.3+ the PHP MapScript extension php_mapscript.so/.dll cannot be loaded any more dynamically. You need therefore to load the extension via the php.ini like
Under section [PHP] for Error handling and logging set
error_reporting = E_ALL & ~E_NOTICE ;;;IMPORTANT!!! log_errors = On error_log = ...: Set a valid file name writable by the webserver user. IMPORTANT!!!
See the PHP Manual for more details.
In section [PHP] under the paragraph Paths and Directories set:
enable_dl = On
alternatively: load the Mapscript extension via the php.ini. This is also the required method on Windows both for IIS and Apache running PHP as module.
The application uses PHP sessions to store user settings during the session. Modify the php.ini file to the following settings below section [Session]:
session.save_path = ... : Set a valid path writable by the webserver user session.use_trans_sid = 0 : set to 0 in order to be compliant with W3C XHTML Strict session.auto_start = 0
Using cookies for sessions
In most cases it is recommended to disable the usage of cookies for session handling. You achieve this by the following setting
session.use_cookies = 0
For a more detailed discussion about this setting please see the FAQ
Settings for security
As with all PHP installations it is strongly recommended to disable both register_globals and allow_url_include (allow_url_fopen before PHP 5.2) to avoid potential cross side scripting attacks:
register_globals = Off allow_url_include = Off
Note that register_globals is set to Off by default and its dangerous activation needs an active input by the system admin. Since v3.2 there are additional checks to prevent code insertion in case of very weak PHP security settings that are against any http://www.php.net/manual/en/security.globals.php recommendations. v4 will and wrire out a warning and will not start if these settings are active.
config/config_default.xml The main configuration for p.mapper is set under the subdirectory config in the file config_default.xml. Adapt following mandatory settings to your environment:
<msVersion> e.g. for php_mapscript_50.so set to 50, for php_mapscript_52.dll set to 52 This setting can be skipped if the php_mapscript extension is loaded via the php.ini (see above). If commented out the php_mapscript.so/php_mapscript.dll will be used.
<mapFile> Map file location; 2 possibilities: 1) use absolute path to map file in file system (use slashes instead of backslashes) 2) filename only, if map file is under the directory specified at 'pm_config_location'
Definition of groups/layers from the map file
<allGroups> <group>countries</group> <group>cities10000eu</group> ... <allGroups> a comma-separated list of layers/groups available in the application
General rule: if a layer belongs to a group, use the group name, otherwise use the layer name. Layer and group names must not have spaces.
<categories> <category name="cat_admin" description="Admin Category"> <group>countries</group> <group>cities10000eu</group> ... </category> ... </categories>
As with group names, the "name" attribute of a category is used like a variable and cannot have spaces. The display name in the application view is defined in the "description" tag.
Usage of categories in the TOC requires to set this below
If the language of your p.mapper application uses non-ASCII characters you must use UTF-8 as character encoding for your web page. Define this via the tag
Make also sure that your web server has UTF-8 set as default encoding since otherwise not all browsers will understand the encoding correctly.
Important: This directory must be writeable for the user that runs the web server (used for automatic update of legend icons), otherwise the application will not run.
On a Debian system for example, this could be achieved with the command
chown -R www-data /var/www/pmapper_demo/images/legend/
On Windows and IIS set the directory security properties to 'Modify' for user IUSR_hostname
You can download the demo dataset (pmapper-demodata-3.zip) and test p.mapper with the supplied map file pmapper_demo.map.
in pmapper_demo.map adapt settings for
MAP SHAPEPATH (FONTSET) (SYMBOLSET) WEB IMAGEPATH IMAGEURL
The directory defined for IMAGEPATH must be writeable by the web server user (see above). It is recommended to use an absolute path to avoid problems with relative path resolution. In any case one usually has only one single tmp directory for a web server, so this is a quite stable setting.
Layer and group names must follow rules of variable naming in most programming language. Therefore they
- must not have spaces
- shall not start with a number
- shall contain only the standard 26 latin alphabet characters, numbers or and underscore
Starting p.mapper can be done via the map.phtml file or a link from index.html.