The settings.php file

As mentioned by the How to install page, the installation script automatically generates a settings.php file containing all the various custom settings for your installation, like the MySQL database info.

What is doesn't mention is that you can add additional settings to further customize your script beyond what's offered through the installation process. This table explains each option. The required settings (listed first) are all automatically generated by the installation script.

Variable Req/Opt Type Explanation
$dbHostname required string The name of the database hostname; often localhost for local installations
$dbName required string The name of the database
$dbUsername required string The username of the MySQL account that has access (read + write) to the database
$dbPassword required string The MySQL password
$dbTablePrefix required string Whatever prefix you want to use for your database tables. This is handy in case you're using a single database for multiple applications; it ensures the tables are all grouped and there are no conflicts
$encryptionSalt required string All passwords are encrypted in the database. This is the crypt() encryption salt; it should be 3 characters. Note: if you change this, any existing users will no longer be able log in - they will need to reset their passwords in order to gain access.
$errorReporting optional mixed Handy for debugging. This sets the default PHP error_reporting() setting, so you can see each and every error/warning/notice that occurs. Note: even when you set this to 2047, you shouldn't see any problems - we've tried to weed them all out. So report a bug if you do see a problem.
$maxGeneratedRows optional number The maximum number of rows that can be generated at a time.
$defaultNumRows optional number The default number of rows to generate that appears in the Generator.
$defaultLanguageFile optional string The default language file to use. Should be just "en" or "fr".
$pluginSettings optional array

Since the settings.php file is in the only place in your installation that contains custom settings, plugins (Data Types and Export Types) that need to have custom options need to store it there as well. Right now this $pluginSettings option is only needed for the Date Data Type, to allow you to choose to generate "safe dates" (for more info on that, see this github thread).

The format of this setting is as follows. It's a bit verbose, but is fully extensible down the road.

$pluginSettings = array(
  "dataType" => array(
    "Date" => array(
      "useSafeDates" => true

The actual settings depend on the Data Type / Export Type.

$maxDataSetHistorySize optional number Added in 3.2.1. Every time you save a data set, it stores a history of changes. In the user interface when you click on the Data Set icon it will show a history link for each data set: that will list the history of changes made to that data set. This setting lets you control the size of the history. Defaults to 200.
$apiEnabled optional boolean If you want to enable the REST API, this needs to be set to true. Check out the API Documentation for more info.
$timeout optional integer This defaults to 300 (5 minutes). If you have a slow/busy CPU or are generating really large amounts of data (or a combination of the two), the generation requests can sometimes timeout. This setting lets you override the default value.