Ideal Operating Environment

The Ideal

Although ModernBill is designed to be highly portable and is therefore capable of operating in many environments, compatibility issues are still a frequent problem. Typically, ModernBill users either have little or full control over the operating environment. In the case that a user has little control, each compatibility issue needs to be addressed separately. However, in the case that a user has full control, compatibility can be addressed in one fell swoop by providing an operating environment taylored specifically for ModernBill and the user's needs. This document describes how to provide such an environment.

If you do not have an environment for ModernBill over which you have full control, it is highly recommended that you acquire one. It is usually an investment that returns many times over.

In order to define an ideal environment, there must be a hypothetical ideal to attain: the condition for the environment to satisfy. This ideal is ultimately what you want your business system to do. ModernBill is only a part of that system, so how it integrates may be different for each installation. Therefore, this document provides alternatives for satisfying different system requirements.

The Problems

The Factors

The central object in the execution environment of a PHP process is the php interpreter. There are many properties of php interpreters that vary which affect operation:

  1. Build Configuration

    1. Server API
    2. Miscellaneous options
    3. Statically linked extensions
  2. Run-Time Configuration

    1. Miscellaneous options
    2. Dynamically linked extensions

The Solutions

PHP Versions

ModernBill uses many obscure features of the latest PHP, degrading when these features are unavailable. ModernBill uses these features to improve performance, scalability, and stability. Therefore, always use the latest stable version of PHP 5 because those obscure features will be available and the most tested.

It is especially important to use versions of PHP released after the "Month of PHP Bugs", March 2007, when many security issues were fixed. These fixes not only improve security, but also tend to improve the overall stability and scalability of the php interpreter, since security issues are often side-effects of stability and scalability issues.

When running the latest version of PHP, always use the latest version of whichever decoder you are using. It is often a good idea to check to see which version of PHP the latest version of the decoder is designed for, and use that version of PHP.

PHP Server API