Introduction
Contao is a PHP-based open-source CMS that you install and update via Composer.
The Contao Manager is a web-based interface that takes care of Composer tasks for you (installation/update, cache, extensions).
Prerequisites
- Your domain/subdomain is set up and accessible via HTTPS.
- The database (name, user, password, host) has been created.
- For the SSH variant, you need Webhosting L or higher.
- PHP 8.1+ (depending on the chosen Contao version)
- Enabled
allow_url_fopen
- PHP functions
proc_open/proc_close
- PHP extensions Intl & OpenSSL
- Database (MySQL/MariaDB)
- Webserver document root pointing to the
/public
folder of the project
Further information:
- System requirements
- Contao Manager
- Downloads (Manager & Contao)
- Recommendation: For new projects, use a supported LTS version (see Downloads).
Step 1 - Provide Contao Manager
- Option 1 - via SSH (recommended – available from web hosting plan L upwards)
ssh contaoy@<wwwXXX> cd ~/public_html wget https://download.contao.org/contao-manager/stable/contao-manager.phar
-
Option 2 - via WebFTP (konsoleH → Extras → WebFTP)
Download the Contao Manager from the download page: https://contao.org/de/download
Upload contao-manager.phar via WebFTP intopublic_html
. Rename the file to contao-manager.phar.php only after the upload (to avoid text/binary transfer issues).
Step 2 - Open Contao Manager & create user
- In your browser, open
https://<contao.example.com>/contao-manager.phar.php
. - Create a manager user with a strong password.
Note: The Manager does not require its own database.
Step 3 - Install Contao
-
Check PHP settings (if message appears)
If the system check shows something like:
PHP Web Process – The PHP setting "allow_url_fopen" is not enabled on the server.
Go to
konsoleH
→Settings
→Configuration
→PHP configuration
and set "allow_url_fopen" = On. Also make sure Intl and OpenSSL are available and thatproc_open/proc_close
are allowed.Note:
allow_url_fopen
cannot be enabled via.htaccess
— only in the hosting provider’s PHP configuration.
-
Webserver setup / Set document root to
/public
Open the "Webserver Setup" in the Contao wizard.
In
konsoleH
→Settings
→Configuration
→Server configuration
(.htaccess
) set the start directory to public.Go back to the wizard and confirm the message:
The directory structure … is set up correctly!
→ Continue.
Background: In current Contao projects,
/public
is the public web folder. (In special cases,web
may be used – then it’s defined incomposer.json
.)
-
Install Contao
In the Manager, click
Setup
if prompted.Choose the Contao version (recommended: LTS, see Downloads) and start installation.
On webhosting with limited RAM, enable the Composer Resolver Cloud (option in Manager).
Step 4 - Connect & update database
Enter your DB credentials → Save.
Click Check database → if “Your database is not up to date…” run Execute, then Confirm & Close.
Recommendation: Enable MySQL Strict Mode.
Continue.
Step 5 - Create backend account & login
Create the backend user (username, name, email, password) → Add account.
Log in to the backend at: https://<contao.example.com>/contao/
Step 6 - Troubleshooting
-
“allow_url_fopen is not enabled”
→ Cause: PHP option disabled
→ Solution: Enable in konsoleH → PHP configuration (not via.htaccess
) -
Manager stuck at “Installing Composer dependencies…”
→ Cause: Not enough RAM / Composer resolver timeout
→ Solution: Enable Composer Resolver Cloud in Manager; setmemory_limit
≥ 256M -
“No Contao installation has been found”
→ Cause: Setup not run or wrong start directory
→ Solution: Run setup in Manager; check start directory is /public -
Frontend 404 / redirect loop
→ Cause: Rewrite not active or wrong doc root
→ Solution: Check/public
as start directory
Apache: enable.htaccess
/mod_rewrite
NGINX: settry_files … /index.php…
correctly -
“Database not up to date”
→ Cause: Pending migrations
→ Solution: Run “Execute” in Install Tool/Manager → then “Confirm & Close” -
Backend not accessible
→ Cause: Wrong path or cache issue
→ Solution: Access backend via/contao/
; clear cache in Manager if needed
Conclusion
Next, you can do the following, for example:
-
Create page structure & content:
-
Security & operations:
- Use Manager/Backend exclusively over HTTPS.
- Use strong passwords, optionally 2FA.
- Restrict access to
/contao-manager.phar.php
after setup, or remove/rename the file (only needed for updates). - Follow updates & releases