Contao¶
Contao is a free, web-based Open Source Content Management System (CMS) written in PHP and distributed under the LGPL 3.0 or later licence.
Contao is used to build and manage professional websites of different types and size ranges that are easy to maintain.
As of Contao 4, it is based on Symfony, a popular high performance PHP framework for web development. Contao 4 has been designed as a Symfony bundle, which can be used to add CMS functionality to any Symfony application.
Contao (formerly TYPOlight) was released for the first time in 2006 by Leo Feyer. Since then it has been continuously developed and it is actively maintained by the Contao Core Development Workgroup and other contributors.
Prerequisites¶
We are using PHP in the stable version 7.2
:
[isabell@stardust ~]$ uberspace tools version use php 7.2
Selected PHP version 7.2
The new configuration is adapted immediately. Patch updates will be applied automatically.
[isabell@stardust ~]$ uberspace tools version show php
Using 'PHP' version: '7.2'
[isabell@stardust ~]$
You’ll need your MySQL credentials. Get them with my_print_defaults
:
[isabell@stardust ~]$ my_print_defaults client
--default-character-set=utf8mb4
--user=isabell
--password=MySuperSecretPassword
[isabell@stardust ~]$
Your website domain needs to be set up:
[isabell@stardust ~]$ uberspace web domain list
isabell.example
isabell.uber.space
[isabell@stardust ~]$
Installation¶
Since Contao uses the subdirectory web/
as web root of your website you should not install Contao in your default Uberspace DocumentRoot. Instead, we install it next to that and then use a symlink to make it accessible to the web.
cd
to one level above your DocumentRoot, then use either Contao Manager or the PHP Dependency Manager Composer to create a new project based on the Contao Managed Edition.
Contao Manager¶
Create a folder for Contao Manager, download it and make it accessible:
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ mkdir -p <target>/web
[isabell@stardust web]$ cd <target>/web
[isabell@stardust web]$ wget https://download.contao.org/contao-manager/stable/contao-manager.phar
[isabell@stardust web]$ mv contao-manager.phar contao-manager.phar.php
[isabell@stardust web]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ rmdir html
[isabell@stardust isabell]$ ln -s /var/www/virtual/$USER/<target>/web/ html
[isabell@stardust isabell]$
Point your web browser to your website URL and append contao-manager.phar.php
(e.g. https://isabell.example/contao-manager.phar.php
) to run the Contao Manager.
Follow the steps to install Contao. Make sure to use the Cloud Resolver as it will resolve the dependencies in the cloud, rather on the local Uberspace host.
When the setup is done, continue with the Configuration. section in this guide.
Composer¶
Warning
Your php
command line processes might not be able to allocate enough memory to complete the expensive composer
call.
Note
The given Composer command always installs the latest stable release. If you want to install a particular version, you must specify the version in the command as well, e.g.: composer create-project contao/managed-edition <target> '42.23.*'
Composer will install all necessary dependencies Contao needs to run. This can take some time though.
Warning
You have to replace the <target>
parameter with a path to a folder where the Contao project files should be created. If the target folder does not exist yet, it will be created automatically.
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ composer create-project contao/managed-edition <target>
Installing contao/managed-edition (42.23.1)
- Installing contao/managed-edition (42.23.1): Downloading (100%)
Created project in <target>
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
[...]
[isabell@stardust isabell]$
Next, remove the unused DocumentRoot and create a new symbolic link to the Contao web/
subdirectory:
Warning
Please make sure your DocumentRoot is empty before removing it!
Again, replace <target>
by the folder name where the Contao project files sit in.
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ rmdir html
[isabell@stardust isabell]$ ln -s /var/www/virtual/$USER/<target>/web/ html
[isabell@stardust isabell]$
Configuration¶
Create Database¶
Contao saves your data in a MySQL database. It is recommended to use an additional database (e.g. isabell_contao
) instead of the default database.
Note
You need to create the database before you enter the database credentials in the Contao install tool.
[isabell@stardust ~]$ mysql -e "CREATE DATABASE ${USER}_contao"
[isabell@stardust ~]$
Contao Install Tool¶
To complete the installation, you need to run the Contao install tool, which will guide you through the installation process.
Point your web browser to your website URL and append /contao/install
(e.g. https://isabell.example/contao/install
) to run the Contao install tool.
Note
The URL fragment /contao/install
is only a Contao route and not a physical path within your installation.
Step 1: When you run the Contao install tool the first time, the web based installer will prompt to set a new password. For all future accesses, the Contao install tool will ask for this password again.
Step 2: To configure your database connection, you need to enter the MySQL database credentials:
MySQL hostname (use
localhost
)MySQL username (equals your Uberspace username, e.g.
isabell
)MySQL password
Contao database name (e.g.
isabell_contao
)
Warning
You have to create the database yourself (see Create Database). The Contao install tool does not automatically create the database for you.
Step 3: Update the database (this will create the database table structure).
Step 4: Create a Contao back end administrator account.
You have successfully installed the Contao CMS on Uberspace 7!
Contao Back End¶
Point your web browser to your website URL and append /contao
(or /contao/login
) to open the Contao back end login mask (e.g. https://isabell.example/contao/login
)
Note
The URL fragment /contao/login
is only a Contao route and not a physical path within your installation.
Log into the Contao back end by entering the credentials of the administrator account.
Updates¶
Note
Check the GitHub repository releases and the update feed regularly to stay informed about new updates and releases. Also read the news and announcements posted on contao.org.
To update an existing Contao installation just perform a Composer Update in the root directory of your application (e.g. /var/www/virtual/$USER/<target>/
). This will update the Contao Managed Edition core application and all its dependencies as well as all your installed third-party packages:
[isabell@stardust ~]$ cd /var/www/virtual/$USER/<target>/
[isabell@stardust <target>]$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
[...]
[isabell@stardust <target>]$
Alternatively, the update can also be performed via the Contao Manager which can be downloaded from the official Contao download page.
Warning
The Contao Managed Edition and especially additional bundles and modules are not updated automatically, so make sure to regularly check for security and maintenance updates.
Tested with Contao 4.6.10 / Uberspace 7.1.18.0
Written by: xchs <https://github.com/xchs>