Obsolete Pages{{Obsolete}}
The official documentation is at: http://docs.alfresco.com
Configuration3.2
Back to Server Configuration
The alfresco system configuration has been designed to be extensible and overridable.
There are two sets of spring configuration files, the default ones provided by Alfresco Alfresco configuration files and your own extension configuration files which replace or override the Alfresco provided values with your own configuration.
This page gives details of how to override configurations without modifying any of the configuration files that are deployed by the Alfresco application.
WARNING: Modifying Alfresco-maintained configuration files is is not recommended. Your changes will be overwritten when upgrading alfresco and it can be confusing to track down problems. The simple rule of thumb is 'Do not edit anything below the alfresco WEB-INF folder'.
The core Alfresco configuration files are present in the alfresco war file and get expanded out once the server starts. These files provide the 'default' configuration for alfresco.
This location, referred to as <configRoot>, varies depending on the environment that Alfresco runs in.
Your customized configuration files can be created prior to server startup and can be added to the following locations, referred to as <extensionRoot>:
Sample files can be downloaded directly from Subversion.
The <configRoot> folder, and especially the <configRoot>/classes/alfresco folder contains the core, Alfresco-maintained, configuration files.
If you are new to Alfresco then take a brief look at the following files,
which form the core of the Alfresco application configuration.
Once again: There should be no need to modify these directly.
In order for you to be able to tailor your Alfresco installation to suit its deployment environment, Alfresco supports a number of global properties with which you can specify the parameters of your environment. There are several ways to control these properties, as you will see below.
As of version 3.2, the file alfresco-global.properties can be used to override default settings for virtually all the parameters that drive Alfresco.
Please note that alfresco-global.properties is placed directly in <extensionRoot>. Older alfresco configuration files (such as custom-repository.properties) tend to be placed in <extensionRoot>/alfresco
Obtain alfresco-global.properties.sample and copy it to your application server's global classpath without the .sample extension, described here as <extensionRoot>. If using Tomcat 6, be sure to follow the instructions in Install Tomcat6 -- in particular, to set the shared.loader Catalina property. Now uncomment and edit the settings in the file to match your environment.
For example:
dir.root=/srv/alfresco/data/live
db.driver=oracle.jdbc.OracleDriver
db.url=jdbc:oracle:thin:@<machinename>:1521:<database sid>
db.name=alfresco_live
hibernate.dialect=org.hibernate.dialect.OracleDialect
There are several files that can contain property values, some of which are there for backwards compatibility with older releases of Alfresco. In general the advice is simple, put your custom configuration values in <extensionRoot>/alfresco-global.properties unless the configuration applies to a specific instance of a subsystem or module.
However If you have conflicting values in different property files, which one will win?
And last and lowest in priority are the alfresco supplied defaults configured within the alfresco web application. However it is never good practice to modify those files with custom configuration.
Refer to Configuring Older Alfresco Releases.
As of version V2.1-A and V3.1, the beans that load the Repository and Hibernate properties will give preferential treatment to any JVM-set properties. So rather than using alfresco-global.properties or the older mechanisms documented above, you may set properties directly as arguments to the JVM.
To set a property directly on the JVM, set the system properties like this:
Windows:
set JAVA_OPTS=-Ddir.root=e:/alfresco/data
Linux:
export JAVA_OPTS='-Ddir.root=/srv/alfresco/data'
The custom sample files have been updated with the releases to reflect these changes. You can use a combination of the two approaches. For instance if you wish to distribute a system that has a core set of properties overridden but need to customize the last few for each installation, the follow this process:
Examine the following properties files for a list of properties that are typically modified and to see the default values. It is not the full list, but most of the useful properties are covered:
See also Overriding Spring Configuration.
For this example, let us assume the following directory structure:
/srv/alfresco/data/live
/etc/alfresco/config/custom-config.xml
/etc/alfresco/config/more-config.xml
Alfresco's configuration is driven by: <configRoot>/classes/alfresco/application-context.xml (after version 1.1.2).
While this file includes many other Spring configuration files explicitly, it contains a 'wildcard' import directive that can import many others:
...
<import resource='classpath*:alfresco/extension/*-context.xml' />
...
This import directive ensures that all locations on the classpath are searched for extension context definitions. Note: the Spring classpath*: prefix means 'load all files of the same name found on the classpath, not just the first one found'). Thus, it is possible to override Spring-imported beans within the following configuration files, without having to modify <configRoot>/classes/alfresco/application-context.xml.
Here are some configuration files used by Alfresco:
<beans>
<import resource='file:/etc/alfresco/config/more-config.xml' />
</beans>
<beans>
<bean id='mail' class='org.alfresco.repo.action.executer.MailActionExecuter' parent='action-executer'>
<property name='publicAction'>
<value>false</value>
</property>
<property name='mailService'>
<ref bean='mailService'></ref>
</property>
</bean>
</beans>
For Alfresco releases prior to version 3.2, see Configuring Older Alfresco Releases.
Before running the server for the first time, it is highly recommended that the database connection details and alfresco data folder locations get checked and set according to the environment in which the server is running. By default, the server will create a data folder for storing content binaries and indexes at a location relative to the caller's location when the server is started. This is appropriate for quick previews and tests, but should be changed when running a server that will be storing long-lived data.
This can be achieved quite easily by setting up an alfresco-global.properties file, as described here.
Once this is done, and all other instructions in the appropriate README files have been followed, the server can be started. The configuration overrides will ensure that the server immediately directs data to the appropriate locations.
If you keep getting the 'Ensure that the 'dir.root' property is pointing to the correct data location' error, it means there is something wrong with that data folder or it is inconsistent with the database. In that case you may try deleting all the files in the data folder and re-creating the database, before restarting the server.
The server performs a configuration check to ensure that the content, indexes and database are properly configured. The configurationChecker can be found in <alfresco.war>/WEB-INF/classes/alfresco/bootstrap-context.xml. Usually, nothing will need to be changed, but the default behaviour is to prevent the system from starting up if the content-indexes-database configuration is incorrect.
To start the server regardless of errors, set system.bootstrap.config_check.strict=false. Note that index checking is ignored if FULL index recovery has been activated.
Note that over time, these are being replaced by Subsystems.