Skip to content
inghamn edited this page Nov 20, 2013 · 3 revisions

Web Server

CRM will work with a web server capable of running PHP. Accommodation will need to be made to support the Open311 interface, which normally is implmented using Apache's mod_rewrite.

Apache (recommended)

SSL

For security it is highly recommended to host the entire application over SSL. PHP sessions are tracked using cookies, which if intercepted, are just as good as a user's password. Hosting over SSL minimizes this risk.

mod_rewrite

The Open311 interface is implemented relying on Apache's mod_rewrite to route requests to the correct PHP script.

PHP >= 5.4

This application relies on code features only found in PHP 5.3 and greater. In addition there are particulay PHP libraries that we rely on. Make sure these are available in your PHP install.

XML

This extension is enabled by default in most PHP installations.

Curl

Web service and error reporting calls are implemented using curl functions.

LDAP

We support integrating with LDAP or ADS directories for user information and, if desired, authentication.

General Configuration Notes

PHP needs the following ini settings that might differ from the default php.ini

  • register_globals: off
    • With PHP 5.4 this should be the default, but some hosts have it enabled.
  • error_reporting:
    • CRM is written to work with no errors with error_reporting set to E_ALL | E_STRICT.
  • arg_separator:
    • To do valid XHTML strict, hrefs cannot be written with plain &. Rather than using entities, we chose to use the W3C recommendation of using the semicolon in all markup. PHP can use both semicolon and ampersand when parsing url parameters.
      • arg_separator.output = ";"
      • arg_separator.input = ";&"

MySQL (or an equivalent, such as MariaDB)

There are several drop-in replacements for MySQL.

Third Party Libraries

Blossom uses a few features from the ZendFramework. A working version is included.

CAS (Single Sign on)

For improved security, all City of Bloomington web applications are configured to use CAS for authentication. This way, passwords never need to be stored in individual web applications and users only ever type their passwords into one website. If you have your own CAS server, you can configure CRM to do CAS authentication.

A working version of the phpCAS librar is included.

CAS authentication can be disabled by leaving it undefined in configuration.inc

Skidder (External Error Logging)

In the City of Bloomington, we have a central web service, called Skidder, that all web applications report and errors to. Skidder collects the errors, reports them to developers, and provides for browsing, slicing, and dicing the error reports. Direct notification to developers when errors occur is the best way to make sure bugs are fixed quickly.

Skidder is open source and available at https://github.com/City-of-Bloomington/skidder

Skidder reporting can be left undefined in configuration.inc, if not not desired.