Setting standard configuration information
Because all deployment channels contain a full set of configuration information in a standardized format, setting the information is simply a matter of identifying configuration items within those sets and specifying new values where needed. To do this, you would store configuration information in the same standardized format on the package references. References are the deployable unit in the system, so they each have associated configuration information relevant to that reference.
With the configuration settings coupled to the reference, those changes can be applied to the target server. The bracketed path for each configuration setting is matched to the bracketed path in the channel snapshot. For all matches, the new setting is applied if different from the current value. For example, a package reference might have the following configuration entry:
To add configuration data to the package reference, see Adding configuration data to the package or repository reference.
When the reference is deployed to the MySQL channel, the bracketed path is found in the configuration snapshot for the server. The value being deployed is different from what is currently on the server, so the server receives the new value as part of the deployment.
A key concept with configuration settings on package references is that they can have configuration settings for multiple types of servers. Any given reference in a package might be deployed to multiple servers. (This is especially the case with null references.) As the reference is deployed to different channels (servers), the appropriate configuration settings are applied. For example, consider a reference with the following configuration settings:
When this reference is deployed to a MySQL channel, the connection timeout value is set to 30. When it is deployed to a Hypertext Preprocessor (PHP) channel, the system sets the default socket timeout value to 120.
Because you can store multiple types of configuration data with a reference, you can apply configuration information to all of the resources associated with your application deployment, not just the web server or the database. All of the configuration changes are associated in a single place, just like all the content being deployed.