Copyright © 2003 - 2006 DORSCH Consult
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available from the Free Software Foundation (http://www.gnu.org).
2006
Table of Contents
List of Figures
List of Examples
Table of Contents
This document describes how to setup and administer the DC Maintenance Management System (DCMMS) application version 1.1.2 .
In addition Section 4, “Analysis” covers some data analysis options.
DCMMS is available from http://dcmms.sourceforge.net.
While it is possible to run DCMMS on other operating systems, this document focuses on the DCMMS administration under Windows.
Feedback on DCMMS is welcome and can be addressed to
<dcmms-info@lists.sourceforge.net>.
DCMMS Developer Guide and DCMMS User Guide provide additional information about the application.
A "\" at the end of the line in program listings means that the line continues in the next line.
This document uses Unified Modeling Language (UML) diagrams to illustrate various aspects of the DCMMS application.
For those not familiar with the UML symbology, Figure 1, “UML Legend” provides a basic UML legend.
The DCMMS application can be installed in a stand-alone setup or in a client-server environment.
![]() | Caution |
|---|---|
The DCMMS application is meant to run in an intranet environment. If you want to use the application over the internet you should protect it by a proper firewall and/or VPN setup. To run the application directly on an internet server would require a complete security audit of the application code. Regardless of the type of installation, it is important that the administrator stays up-to-date with the latest Apache, PostgreSQL, Windows and PHP releases to avoid security leaks. |
In addition to the outlined approach it might be possible to run a DCMMS on server on the internet if it is hardened with SSL and additional access control on the Apache side (E.g. client-side certificates).
Figure 5, “Component Diagram” gives overview of DCMMS and its components. Depending on the GIS data sources to be used, other components might be required or optional components could be removed.
The database components can run on other servers.
This section describes the hard- and software requirements of the DCMMS application.
A PC with at least 256 MB RAM and at least 1 GHz CPU speed.
The actual hardware requirements might be higher depending on the size and nature of the map data as well as the number of concurrent users.
To print the workorders, a printer with at least 300dpi resolution is required.
![]() | Tip |
|---|---|
Call-center grade headphones are strongly recommended in order to receive customer complaint calls. |
The following software packages are required to run the DCMMS application:
PostgreSQL
PostGIS
Apache (Other web servers will also work)
PHP
The following PEAR modules:
DB
DB_DataObject
DB_DataObject_FormBuilder
Date
HML_Common
HTML_QuickForm
HTML_QuickForm_Controller
HTML_QuickForm_SelectFilter
HTML_Table
Image_Color
Image_Graph
Log
Pager
Mapserver (PHP Mapscript)
Web browser
Section 1, “Installation”covers the installation of all required software packages.
If it is intended to use the Arabic interface of the DCMMS application, the PostArabic software package is required in addition.
![]() | Caution |
|---|---|
While it might be possible to install the DCMMS server on other Windows flavors, only Windows 2003 Server and Windows XP are recommended. The filesystem of |
Windows 2000 installations have been tested and should work. Windows NT, 95, 98 are ME not recommended.
Installation of DCMMS on other operating systems such as Linux may require minor changes to the source code. Please contact the DCMMS developers if you are having problems. The initial DCMMS version was created on Linux.
On Windows, the following folders contain files that belong to the standard DCMMS installation:
+ c: | +--+ Program Files | | | +--+ Apache Group | | | | | +--- Apache2 | | | | +--+ dcmms | | | | | +--- config | | | | | +--- doc | | | | | +--- data | | | | | +--- plugin | | | +--+ PostgreSQL | | | +--+ 8.0 | | | +--- data | +--+ tmp | | | +--- ms_tmp | +--+ windows | +--- fonts | +--- php
![]() | Note |
|---|---|
Note that your actual folder structure might be different, e.g. when you use a Non-English version of Windows XP. Use the structure above as a reference when you're not sure where to install things. |
![]() | Tip |
|---|---|
If you are installing manually, you should install the software to the above mentioned folders. |
The PostgreSQL folder holds the
PostgreSQL installation, the Apache2 folder
the Apache webserver and the php folder the
PHP installation. The tmp folder holds
temporary files (e.g. PHP session information) and the
ms_tmp folder contains temporary map files
created by mapserver.
For most of the software packages these folders are the default on a system with an English version of the Windows operating system. The folders will be created during the installation process described below.
c:\Program Files\dcmms\config contains all
configuration files with the exception of c:\Program
Files\dcmms\includedcmconfig.php.
c:\Program Files\dcmms\doc contains the
documentation in various formats: CHM, DocBook XML, HTML, PDF.
c:\Program Files\dcmms\data contains GIS
data (shape files) used by the application. However this location
is not fixed and may be overridden in the map file.
c:\Program Files\dcmms\plugin contains
application plug-ins (extensions that extend the functionality).
Basic computer knowledge together with this guide should be sufficient to administer a stand-alone installation.
Any administrator will benefit from knowledge in SQL, PostgreSQL, the Windows command line interface (cmd.exe), Windows user administration, Windows services, GIS (e.g. ArcView), mailing lists - however such knowledge is not a requirement.
Various support possibilities are available to support new administrators.
This section outlines important concepts that are relevant to the DCMMS administration.
This section introduces Windows services.
Apache and PostgreSQL run as Windows services.
To open the Services Panel, open the Control Panel from the Start Menu as shown in Figure 6, “Control Panel”.
In the Control Panel, click on the following icon:
![]()
Open the Services Panel by clicking on the this shortcut:
The Services Panel is displayed in Figure 7, “Services Panel”.
The Status column shows the services that are currently running. In Figure 7, “Services Panel” is running ("Started") while the Removable Storage is not running (empty Status column).
To start a service, click on the
button.
To stop a service, click on the
button.
In both cases, verify the success in the Status column of the service list.
For additional information on Windows services, consult your Windows documentation.
Important information on Windows user accounts.
Figure 8, “Windows Users” shows users that are important for the DCMMS administration. Note that the unpriviledged users account to operate DCMMS are omitted.
For additional information on Windows user accounts, consult your Windows documentation.
![]() | Note |
|---|---|
While the Windows user accounts "system" and "postgres", you don't have to know their passwords. |
![]() | Note |
|---|---|
The name of the Windows user account to run the PostgreSQL database service (default: postgres) can be changed during the PostgreSQL installation. |
Introduction to PostgreSQL user management.
Figure 9, “PostgreSQL Users” shows PostgreSQL users that are important for the DCMMS administration. Windows users and system boundaries are shown to clarify the relationships.The PostgreSQL documentation which you can access e.g. through the Start Menu (after PostgreSQL installation) or on the PostgreSQL website contains additional information on PostgreSQL user management.
![]() | Caution |
|---|---|
Don't get confused by the two "postgres" accounts: Even though they have the same name, they are different things, one lives inside PostgreSQL and one inside Windows. You don't have to know the password of the Windows account "postgres" (The PostgreSQL intaller is creating a long, random password for it), but you have to know the password of the PostgreSQL account "postgres". Please follow the PostgreSQL installation instructions carefully (Section 1.1.3, “PostgreSQL”). |
If you are going to use DCMMS in more than one language and would like to use the DCMMS translation system for your data, you should read this section.
DCMMS is actually using two translation systems: GNU gettext for
text that occurs in the PHP sources and the dcmmstranslation() for text stored inside the PostgreSQL
database.
![]() | Note |
|---|---|
The |
Both gettext and dcmmstranslation()
will fall back to the two letter ISO language code in case no
translation is found for the five letter code (E.g. the "ar"
translation is returned if "ar_JO" was requested and no
translation was found).
GNU gettext is a widely used system for translation management.
DCMMS is using the PHP gettext extension, the translations are
edited in the locale/*/LC_MESSAGES/dcmms.po
files. Replace "*" with a two letter ("ar") or
five letter ("ar_JO") language code.
In order to be used by gettext, the source files (dcmms.po) files have to be compiled to dcmms.mo files.
Editing and compilation is conveniently done with poEdit (Section 1.5.3, “poEdit”). poEdit is also capable of extracting the translation terms from PHP sources.
Messages that have to be translated but are not included in the PHP
sources should be added to include/i18n.php. This
is the case e.g. for coded values from the database.
Messages residing in the PostgreSQL database should be
internationalized using the dcmmstranslation().
The dcmmstranslation() function looks up
translations from the Translation table.
The name field of the
AdministrativeArea,
Landmark and Village
should contain the name in the primary language that is used to
operate the application. E.g. in the case of landmarks, this is
the field that is filled and used if no other translation is given.
Additional translations are stored in the translation table.
The shapefile loader (Section 3.1.1, “Shapefile Loader”) allows
to update the translation table
from fields like enname (English),
arname (Arabic), etc.
To use translations, e.g. in map files, use the following statement:
dcmmstranslation('en', name)
where 'en' is the ISO code of the language you want to use.If no matching translation is found in the translation table,
the term to translate is returned by dcmmstranslation().
DCMMS allows to use language-specific map files.
The application replaces "%s" with the two-letter ISO
language in the following dcmconfig.php
configuration option:
$_SESSION["strMapFile"] = "conf/sample_%s.map";
This way it is possible to encapsulate language specific information in the map files.
PostGIS layers used in the map files can use the dcmmstranslation() function for translation.
See also Section 2.2, “Custom Map”
Mailing lists are automated distribution systems for emails.
The majority of the software products mentioned in this document offer a multitude of mailing lists to keep users and administrators updates about the latest releases as well as potential security issues.
![]() | Tip |
|---|---|
If you are not familiar with mailing lists yet, take the time to familiarize with the techniques to subscribe and to post to them. |
Table of Contents
This section outlines several installation options for the DCMMS application.
If you are updating an existing installation please refer to Section 6, “Updating”.
![]() | Tip |
|---|---|
The manual installation instructions will also work on operating systems like Linux. |
![]() | Tip |
|---|---|
Please report all DCMMS installation problems in order to allow the developers to further enhance the installation process. |
How to install DCMMS on Windows XP Professional or Windows 2003 Server.
Please contact the DCMMS developers if you are looking for a DCMMS CD release.
All installers mentioned below area available in the
setup folder of the CD.
![]() | Tip |
|---|---|
If you are running Skype, you may want to shutdown Skype while you are installing Apache as Skype might otherwise prevent Apache from using port 80. |
![]() | Tip |
|---|---|
If the Apache installation is not fully
successful because another program (e.g. IIS) is already using port
80, simply edit |
Run the Apache installer. The Apache
installer is available from the setup folder of
the DCMMS CD or from the Apache website: http://httpd.apache.org.
C:\Program Files\Apache Group and click
.![]() | Tip |
|---|---|
The DCMMS installer reads the Apache installation folder from the Windows registry. You can install Apache to different locations. |
![]() | Tip |
|---|---|
If the Apache installation fails because another application is using port 80, you can use the following commands to find out which application is using port 80: netstat -aon tasklistLook for the process id (PID) of the process occupying port 80 and find the application of the process id. |
Run the DCMMS Scripting installer. The
installer is available from the
setup folder of the CD or from the DCMMS website:
http://dcmms.sourceforge.net.
![]() | Tip |
|---|---|
PEAR modules can be easily installed and upgraded over the internet. See the PEAR documentation for details. However, the DCMMS scripting installer provides all necessary packages. |
c:\windows\php, by clicking
(Figure 19, “PHP Location”).
This section describes how to install PostgreSQL for Windows.
The PostgreSQL installer (postgresql-8.0.msi)
is available from the
setup folder of the DCMMS CD or from
http://pgfoundry.org/projects/pginstaller/.
![]() | Note |
|---|---|
Don't get confused by the two PostgreSQL installer files. They are both required and can only be installed together. |
Run the PostgreSQL installer and select the English language.
Click to begin the InstallationClick .Press after reading the installation instructions.![]() | Caution |
|---|---|
Click on the icon next to "PostGIS Spatial Extensions" and select . |
![]() | Tip |
|---|---|
Instead of installing PostGIS with the PostgreSQL installer,
you should install a newer version from a separate installer (at least
version 1.0.3).
Such an installer is available from http://www.webbased.co.uk/mca/ or from the
Once PostgreSQL 8.1 is released, the PostGIS version included in the PostgreSQL installer will be sufficient. |
Note that the PostgreSQL installation path is not important. Please accept the default installation path provided by the installer.
Accept the other settings as shown in Figure 23, “Choose Installation Options” and click .
Accept the default settings as shown in Figure 24, “Service Configuration” and click . Instead of "Z1027" your installer will show the name of your computer. Select . Accept the random password by clicking .![]() | Tip |
|---|---|
You don't have to remember the random password. It is only used internally to run the PostgreSQL service on Windows. See Section 4, “Concepts” for detailed information. |
![]() | Caution |
|---|---|
You'll need this password (for the PostgreSQL superuser "postgres") later on during the installation process e.g. while running the DCMMS setup and for database maintenance purposes. Make sure that you remember it well. |
Accept the default selection as shown in Figure 30, “Enable Contrib Modules” and click .
As shown in Figure 31, “Enable PostGIS”, leave the option Enable PostGIS in template1 unchecked and click .PostGIS will be enabled for the dcmms database by the DCMMS installer.
As shown in Figure 32, “Ready to Install”, PostgeSQL can be installed now. Click .Click .![]() | Tip |
|---|---|
As mentioned in Figure 33, “Installation complete”, it is recommended to subscribe to the pgsql-announce mailing list to stay up-to-date with the latest PostgreSQL developments. |
Once the PostgreSQL setup
has finished, start the PostGIS
setup which is available in the
setup folder of the CD or on the internet:
http://www.webbased.co.uk/mca/.
![]() | Caution |
|---|---|
Uncheck the option Create Database as shown in Figure 35, “PostGIS Components” and click . The dcmms database will be created by the DCMMS installer. |
![]() | Note |
|---|---|
The destination folder is your PostgreSQL installation folder and might differ from the one shown in Figure 36, “PostGIS Location” |
Start the DCMMS Setup, which is available from
the setup folder of the DCMMS CD or from the
internet: http://dcmms.sourceforge.net.
c:\program files\dcmms, as shown in Figure 41, “DCMMS Location” and click
.
Enter the PostgreSQL superuser "postgres" password (As
entered in Figure 28, “Initialise Database Cluster”). Click
.You should now be able to start the DCMMS from the Start Menu or through the shortcut on the Desktop. Note that the full functionality will only be available once you've completed the data set, e.g. by loading the sample data.
![]() | Note |
|---|---|
The installer will not overwrite existing DCMMS configuration files. |
The DCMMS sample installer is available in the
setup folder of the CD or on the internet:
http://dcmms.sourceforge.net.
Run the installer and accept the default parameters,
especially the default installation path, c:\program
files\dcmms.
How to install DCMMS manually.
![]() | Note |
|---|---|
This section might be useful only for installations on non-Windows platforms and for developers who are interested in the details of the DCMMS installation process. |
![]() | Tip |
|---|---|
The DCMMS installer sources (e.g.
|
![]() | Caution |
|---|---|
The following expects that various PostgreSQL binaries, such as psql.exe or createlang.exe are in the PATH. If necessary, you have to change your PATH environment variable to include the bin folder of your PostgreSQL installation. |
The PostgreSQL database is available from http://www.postgresql.org.
The PostgreSQL installation should support UNICODE.
![]() | Warning |
|---|---|
You may run into problems if you use a binary PostgreSQL distribution under Linux or UNIX. In order to use PostGIS and specifically GEOS from PostgreSQL, the binaries have to be linked against libstc++. The PostGIS documentation contains details regarding this issue. |
In order to enforce DCMMS logins with
password authentication, the pg_hba.conf
configuration file should be altered like in the following example:
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all postgres 127.0.0.1 255.255.255.255 trust host dcmms all 127.0.0.1 255.255.255.255 password
Note that this still allows the PostgreSQL superuser postgres to connect to PostgreSQL server without authentication. However the user postgres is not allowed to log on to DCMMS.
![]() | Note |
|---|---|
The instructions below assume that the PostgreSQL administrator is named postgres and that the postmaster is running on the local machine (localhost). If this is not the case for you, you'll have to adjust the commands accordingly. The same applies to the connection method - if your postmaster is not configured to accept TCP/IP connections, you have to adjust the commands (and possibly the DCMMS configuration). |
Create a new database named dcmms using UNICODE, load the PL/SQL language to the database:
createdb -U postgres -h localhost --encoding=UNICODE dcmms
createlang -U postgres -h localhost plpgsql dcmms
If PL/SQL was created in template1, the second command will fail. Ignore the error message in this case.
PostGIS is available from http://postgis.refractions.net .
Follow the installation instructions in the PostGIS documentation.
Once PostGIS is installed, change to the
directory containing
postgis.sql and
spatial_ref_sys.sql and load
PostGIS to the dcmms
database:
psql -U postgres -h localhost -f postgis.sql dcmms psql -U postgres -h localhost -f spatial_ref_sys.sql dcmms
PostArabic is a small module that adds Arabic shaping functionality to PostgreSQL.
![]() | Tip |
|---|---|
The PostArabic installation is only required in order to display Arabic map labels. If you are not interested in Arabic map labels, you can skip the PostArabic installation. |
The PostArabic sources are available from the DCMMS download page.
Follow the installation instructions in the file
README.arabic.
Change to the directory containing arabic.sql
and load PostArabic to the
dcmms database:
psql -U postgres -h localhost -f arabic.sql dcmms
DCMMS allows the fuzzy search of landmarks. Through the fuzzy search, landmarks can be found even if the search term was misspelled.
The fuzzystrmatch module of the PostgreSQL distribution is used for this purpose.
To compile and install the fuzzystrmatch
module, go to the contrib folder of your
PostgreSQL source tree and execute the
following commands:
make make install psql -U postgres -h localhost -f fuzzystrmatch.sql
If you are using the Windows PostgreSQL installer, you find
fuzzystrmatch.dll in
c:\Program Files\PostgreSQL\8.0\share\contrib.
The Apache webserver is available from http://httpd.apache.org .
Follow the installation instructions in the Apache documentation.
Apache is configured through the
httpd.conf file. In order to access
the DCMMS application by a convenient
URL like http://localhost/dcmms/, you should add lines like the
following to httpd.conf:
Alias /dcmms "c:/program files/dcmms/" <Directory "c:/program files/dcmms"> Options Indexes Multiviews </Directory> Alias /ms_tmp/ "c:/tmp/ms_tmp/"
The second alias line configures the location of temporary files created by PHP/Mapscript. You will have to adjust the DCMMS sources to use the same alias and path. Adjust the path names according to your DCMMS installation path.
The PHP scripting language is available from www.php.net.
DCMMS is currently using PHP 4.*. Use of DCMMS with PHP 5.0 will require some small changes to the application and is not recommended yet. Please contact the DCMMS developers if PHP 5.0 is a requirement for your installation.
Follow the installation instructions in the PHP documentations.
![]() | Note |
|---|---|
If you don't install PHP to
|
![]() | Caution |
|---|---|
Because of previous PHP/Mapscript limitations, it is recommended to install PHP as a CGI command. The use of PHP as an Apache module is not very well tested with DCMMS and may lead to instabilities. If you are testing such a setup, please share your experiences with the DCMMS developers. |
The installation can be completed with the following three lines
in httpd.conf:
ScriptAlias /php/ "c:/windows/php/" AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php.exe"
Again, make sure that the path names above match the ones on your system.
Add the following DCMMS-specific configuration
settings to c:\windows\php.ini:
default_mimetype = "text/html"
default_charset = "utf-8"
include_path = ".;c:\windows\php\pear"
error_reporting = E_ALL & ~E_NOTICE
extension_dir = "c:/windows/php/extensions"
enable_dl = On
allow_call_time_pass_reference = On
file_uploads = On
upload_tmp_dir = c:\tmp
upload_max_filesize = 20M
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_pgsql.dll
extension=php_zip.dll
extension=php_mapscript_46.dll
[Session]
session.save_path = c:/tmp
![]() | Caution |
|---|---|
In order to use gettext in PHP on Linux, the PHP safe mode
has to be enabled. The reason is that the safe_mode = On |
On Windows, install the mapserver distribution with PHP/Mapscript, which is available from the internet under http://maptools.org.
On other operating systems, install PHP/Mapscript from the Mapserver distribution which is available from http://mapserver.gis.umn.edu/index.html.
Make sure that the PHP/Mapscript extension is loaded in
php.ini.
![]() | Note |
|---|---|
You'll need a PHP/Mapscript binary compiled with PostGIS support. |
The DCMMS source tarball is available from http://dcmms.sourceforge.net.
The SQL scripts
create_dcmms_ddl.sql and
create_views.sql in the
script folder of the DCMMS
distribution create users and data model for the application.
Change the directory to the script folder
and run the scripts on the dcmms database:
psql -U postgres -h localhost -f create_dcmms_ddl.sql dcmms psql -U postgres -h localhost -f create_views.sql dcmms
Copy the default configuration file,
include/dcmconfig.php.default to
include/dcmconfig.php.
Review the settings in dcmconfig.php and
adjust if necessary.
Copy the default DataObject configuration file
conf/dataobject.ini.default to
conf/dataobject.ini.
Review the settings in dataobject.ini
and adjust if necessary - especially all settings that include
a path.
Copy the default identify plugin configuration file
conf/identifyplugin.ini.default to
conf/identifyplugin.ini.
Review the settings in identifyplugin.ini
and adjust if necessary - especially all settings that include
a path.
You should now be able to log on to the DCMMS application, using a URL like http://localhost/dcmms.
A sample data set is available from the DCMMS download page.
Unpack the files to the data folder of your
DCMMS installation.
Load the AdministrativeArea, Village and Landmark shapefiles to the database. This can be done using the shapefile loader of the DCMMS application (Section 3.1, “GIS Data Loading”) or using the following commands from the commandline:
set PGCLIENTENCODING=WINDOWS-1256 psql -d dcmms -U postgres -h localhost -f administrativearea.sql psql -d dcmms -U postgres -h localhost -f village.sql psql -d dcmms -U postgres -h localhost -f landmark.sqlIn this case, the commands have to be executed in the
data folder.Upon first installation, the DCMMS application will provide two default PostgreSQL (DCMMS) users:
User dcmms with password dcmms.
User admin with password admin.
As the name indicates, admin has administrator rights, whereas the user dcmms has not.
See Section 4.3, “PostgreSQL users” for detailed information on Windows and PostgreSQL users.
![]() | Caution |
|---|---|
On production systems, you should change the default passwords as soon as possible for security reasons. |
The following points should be checked before a DCMMS goes into production:
System clock setting
User rights
Security updates
Network connections
Eventually all removable media drives should be disabled to prevent installation of software
The PostgreSQL timezone setting. If necessary,
adjust postgresql.conf, e.g. by adding
a line like
timezone = 'GMT-3'
You can check the timezone setting by the following SQL statement:
select now()
Failure to configure the timezone correctly will result in the following error message in the logon page: Configuration Error: PHP Time != PostgreSQL time.
See also Section 8.5, “Configuration error: PHP time != PostgreSQL time”.
This section describes the installation of various optional tools that ease the DCMMS administration and configuration.
Active Perl is a PERL distribution for Windows.
It is freely available from http://www.activestate.com.
PERL is the programming language used for some PostGIS
maintenance tools like postgis_restore.pl.
On other operating systems like Linux, you will most likely be able to use the PERL distribution that is already installed.
GIX is an ArcView 3.* extension that allows to export views to mapserver map files.
GIX is available from http://gix.sourceforge.net.
![]() | Note |
|---|---|
You can only use fragments from the map files created by GIX as ArcView 3.* does not support PostGIS. |
See Section 2.2, “Custom Map” for details regarding the DCMMS map files.
To edit the dcmms.po files,
poEdit is recommended. It is freely available
from http://poedit.sourceforge.net.
![]() | Tip |
|---|---|
Install poEdit version 1.3.1 or higher. |
In order to extract the translation messages from the PHP sources, the following settings should be applied.
Start poEdit.
Select from the menu.
Select the Parser tab and click on the button.
Fill in the settings as shown in Figure 43, “poEdit PHP parser settings”
Close the dialogs.
Open a dcmms.po file.
Choose from the menu.
In the Paths tab, add the path to the DCMMS source as shown in Figure 44, “Catalog Path”
![]() | Caution |
|---|---|
Make sure that you enter the actual path to the DCMMS sources on your system. |
Once the settings above have been applied, it is possible to update the catalog by selecting from the menu.
See also Section 4.4, “Translation System”.
The R statistical analysis package can be used for the analysis. R is available from http://www.r-project.org/.
R can be used e.g. to analyze the pressure dependency of maintenance events (Section 4.2, “Pressure Dependency”).
This section describes how to configure DCMMS after successfull installation.
The file include/dcmconfig.php contains the
configuration of the DCMMS application.
A default configuration file is stored under
include/dcmconfig.php.default. Copy this file to
include/dcmconfig.php if necessary.
The configuration file can be edited using any text editor.
All other configuration files can be found in the conf folder: c:\Program Files\dcmms\conf.
How to use your own maps with DCMMS.
Create your own map file(s) and edit the following line in
dcmconfig.php to point to this file:
$_SESSION["strMapFile"] = "conf/sample_%s.map";
![]() | Warning |
|---|---|
When customizing the map files, make sure to use
other names than Adjust |
In the default configuration, you need one map file for every language (%s will be replaced with the two-letter ISO language code).
If you would like to use DCMMS in more than one language, please also read Section 4.4, “Translation System”.
![]() | Note |
|---|---|
The "DESCRIPTION" metadata information must be provided for layers that return results for the identify tool. In addition, the "TEMPLATE" has to be set for the respective class. |
The following layers are required and should be copied from the sample files:
| AdministrativeArea |
| AreaOfInterest |
| Landmark |
| PressurizedMain |
| Village |
![]() | Tip | ||
|---|---|---|---|
The default map resolution in map.php can be configured in the map file. Look for a line like the following: SIZE 600 450 Currently the following configurations are possible without changes to the PHP source:
|
![]() | Tip |
|---|---|
DCMMS comes with symbol and font definitions in the files
A DCMMS update will overwrite these files. |
![]() | Tip |
|---|---|
Use shptree.exe from the mapserver distribution to index large shape files used by the application. Indexes created by shptree.exe will increase the performance when PHP/Mapscript is dealing with these files. Note that the shptree.exe index format differs e.g. from the one used by ArcView. |
The mapserver documentation available from http://mapserver.gis.umn.edu/ contains detailed information about the mapfile syntax.
Tiled shapefiles allow mapserver to maximize performance for large shapefile datasets.
The ngwa.map map file
provides an example of tiled shapefile usage.
Please refer to the mapserver documentation for details on tiled shapefiles.
![]() | Tip |
|---|---|
Use the tileindex.exe from the mapserver distribution to create tile indexes. |
![]() | Caution |
|---|---|
Uniform shapefiles have to be used when they are tiled. They have to have exactly the same number of fields in the same order. |
To re-order shapefile fields using ArcView 3.*, follow these steps:
Open a View.
Add the shapefile as a Theme to the View.
Open the attribute table.
Drag and drop the field headers until they are in the correct order.
Go back to the View.
Select ->.
The DCMMS application replaces the dummy user name and password in the mapfile with the information provided by the user when logging on. Example 1, “PostGIS Connection Example” shows an example PostGIS connection line from a mapfile.
Example 1. PostGIS Connection Example
CONNECTION "dbname=dcmms user=dummy password=dummy host=localhost"
![]() | Important |
|---|---|
Make sure that the PostgreSQL "dcmmsuser" group has the right to select from the tables used for your PostGIS layers. |
Plug-ins for the identify tool of the map page allow to extend the functionality of the application.
The plug-ins are configured in
conf/identifyplugin.ini. The file is a simple
text file that can be edited with any text editor.
; Configuration file for map.php plug-ins [IdentifyPlugin] Plugin1 = ImageIdentifyPlugin Layer1 = village ;Plugin2 = ??? ;Layer2 = ???
Lines starting with ";" are comments and are ignored.
Section header of the IdentifyPlugin section.
The class ImageIdentifyPlugin
(from plugin/imageidentifyplugin.php) will be
loaded as the first plug-in. The configuration line for the second
plug-in starts with "Plugin2"
The first plug-in will be used when the identify tool selects features in the "village" layer.
The configuration lines for the second plug-in are commented out, this plug-in has been disabled.
Note that identifyplugin.ini can also contain
configuration options for the individual plug-ins (in different
sections). See the "[Plugin1]", "[Plugin2]", ...
sections for details.
This section describes various tasks related to the DCMMS administration.
This section discusses various ways to load GIS data in various formats to the dcmms database.
![]() | Tip | ||
|---|---|---|---|
Not all GIS data used by the application has to be loaded to the database. Data that is only displayed on the map and not used otherwise in the application can be kept in its original format and location if it is supported by Mapserver. This is the case for shapefiles. Unless you are restoring a backup, only the following three layers of GIS data have to be loaded to the DCMMS database:
|
Besides the options described in the following sections, tools like ogr, QGIS or FME can also be used to load the data.
If you would like to load and use data in multiple languages, an understanding of the translation system (Section 4.4, “Translation System”) is required.
The DCMMS application allows to load GIS data in shapefile format through a web interface. Log in using a DCMMS account with administrator rights, e.g. admin. Zip the shapefile before uploading.
See the DCMMS User Guide for details on the shapefile loader.
![]() | Note |
|---|---|
Data that is edited in DCMMS uses sequences to determine the next primary key. For this reason it might be necessary to adjust a sequence if certain shapefiles are loaded. One example is the landmark table. The following SQL statement shows how to set the correct start value for the sequence after the landmark shapefile is loaded: select setval('landmark_seq', max(gid) from landmark);
|
The commandline tool shp2pgsql is part of the PostGIS distribution and used internally by the DCMMS shapefile loader web interface. It allows to load shapefiles to PostGIS tables.
Make sure that shp2pgsql.exe and psql.exe are in the path:
PATH=%PATH%;c:\Program Files\PostgreSQL\8.0\bin
If necessary, adjust the encoding used by
psql through the
PGCLIENTENCODING environment variable:
set PGCLIENTENCODING=WINDOWS-1256
Before the AdministrativeArea,
Landmark or Village
shapefiles are loaded to the database, the DCMMS views have to
be dropped:
psql -d dcmms -U postgres -f \
"c:\Program Files\dcmms\script\drop_views.sql"
Load the shapefile to the database:
shp2pgsql -d -D landmark.shp landmark > landmark.sql psql -d dcmms -U postgres -f landmark.sql
If the table does not exist in your database yet, omit the "-d" option when calling shp2pgsql. See the shp2pgsql documentation for details.
Recreate the views if necessary:
psql -d dcmms -U postgres -f \
"c:\Program Files\dcmms\script\create_views.sql"
How to prepare AdministrativeArea,
Village and Landmark
layers to be loaded to the application.
The features of AdministrativeArea
shall not overlap and cover the whole area where landmarks are
possibly inserted. The features of Village shall not overlap and cover the whole area where
landmarks are possibly inserted. It is recommened to create a
rectangular covering area around both classes.
The application expects the administra
field in Landmark shall be filled with the
CodedValue from the
AdministrativeArea that contains (intersects) the
landmark.
In case you have the unit cost information saved in an Excel sheet, to load unit cost information to the PostgreSQL database do the following:
Delete all the fields from the file except for the folowing fields:
ID
Diameter1
Diameter2
Price
Unit ID (The Subtype in Material, Staff or Equipment)
![]() | Important |
|---|---|
You should keep the same fields order and Delete the names of the field. |
Save the Excel sheet file as a "Text(Tab delimited)" file
Execute the following SQL statements for the Material cost file:
delete from materialcost; copy materialcost from 'D:\\sandbox\\water\\dcmms\\txt_cost_sheet.txt' with NULL as '' delimiter as '\t';
Repeat the same statements for the tables staffcost, equipmentcost