Skip to content

System Requirements

Abhiroop Bhatnagar edited this page Aug 15, 2013 · 4 revisions

Web Server

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

Apache (recommended)

mod_rewrite

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

PHP >= 5.3

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

Requests to the Open311 Server 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.3 this should be the default, but some hosts have it enabled.
  • error_reporting:
    • Open311 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

Open311-SMS uses a few features from the ZendFramework. You will need to download the ZendFramework and put it somewhere accessible by Apache. In configuration.inc, you'll set the path to wherever you put it. The application uses ZF1.

The javascript and CSS for Open311-SMS relies on the Bootstrap and jQuery libraries. Currently, the application uses the bootstrap library hosted here and here and the jQuery hosted here. However, if you want, you can download both the libraries and host them yourself. In configuration.inc, point to whatever host you're using for Bootstrap and jQuery.

External Web Services (optional)

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.

You will need to download the phpCAS library from https://wiki.jasig.org/display/CASC/phpCAS.

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 http://code.google.com/p/skidder

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