First of all, download the latest Contao archive and extract it on your
local computer. Move the files into the
htdocs folder of your local
installation (e.g. XAMPP) or upload them to your server with an FTP program (we
recommend using WinSCP). Depending on your server configuration, the public
folder is most likely called
If you have SSH access to your server, you can download and extract the
archive directly on the command line, e.g. with
curl. Depending on the
version you want to install, adjust the URLs as described.
Latest version of Contao (4.x):
curl -L http://download.contao.org | tar -xzp
LTS version of Contao (3.5):
curl -L http://download.contao.org/lts | tar -xzp
A specific version (e.g. 3.5.2):
curl -L http://download.contao.org/3.5.2 | tar -xzp
Installing with Composer
You can also install Contao with Composer using the contao/managed-edition repository.
First of all, you must install Composer. It can be installed globally with the following two commands on macOS or Linux:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
On Windows, you can download and run the installer.
Now, you can run the installation process of Contao with the following command:
composer create-project contao/managed-edition <target>
You have to replace the
<target> parameter with a path to a folder where the
Contao files will be created. If the target folder does not exist, it will be
The command above always installs the latest stable version. If you
want to install a specific version, you must insert it in the command as for
composer create-project contao/managed-edition:4.3.10 <target>
On Windows, depending on the setup (e.g. default XAMPP), you might need run this command as an administrator.
During the installation in your command-line interface, you must assign a value to a number of parameters:
Some parameters are missing. Please provide them. database_host (localhost): database_port (3306): database_user (null): database_password (null): database_name (null): mailer_transport (mail): mailer_host (127.0.0.1): mailer_user (null): mailer_password (null): mailer_port (25): mailer_encryption (null): prepend_locale (false):
Default values are listed in parentheses. All these data will be included in the
In the version 4.2 and higher, the
secret parameter is
automatically generated during the installation. You can find more information
about this configuration on the official Symfony website.
The document root
In production, make sure to specify the
web/ directory as the document root
of your website (e.g. using the admin panel of your web hosting provider).
More detailed information relating to the folder structure can be found in this cookbook chapter.
The Contao install tool
To open the Contao install tool, simply add
/install.php to the URL of
your Contao installation. Note that the install tool is protected against brute
force attacks and will be locked if a wrong password has been entered three
times in a row. To remove the lock, open file
a text editor, find the following line and set it to
$GLOBALS['TL_CONFIG']['installCount'] = 0; // This will remove the automatic lock
Connecting to the database
Log into your server administration panel (e.g. "Plesk" or "cPanel") and create
a new database for Contao. Then enter the login credentials in the Contao
install tool. Note that the Contao default character set
UTF-8 is written as
UTF8 in MySQL!
Updating the database tables
Once you are connected to the database, Contao automatically checks its tables
and displays a list of recommended changes in case they are not up to date. Make
sure to read those recommendations carefully, because Contao only knows its own
tables (prefixed with
tl_) and will try to remove those of other applications
eventually sharing the database. Confirm the changes and click the "Update
Importing a template
A template is a predetermined website with an exemplary page structure and different style-sheets to format the Contao core modules and content elements.
To import a template, select the entry from the drop-down menu and click the "Import template" button.
When importing a template, existing data will be replaced!
Creating an admin user
If you did not import a template, you have to create an admin user to log into the Contao back end. After you have created the account, the installation process is completed. The link in the lower right corner will take you to the administration area.