Um Contao erfolgreich auszuführen, muss der Webserver diese Systemvoraussetzungen erfüllen. Contao wurde ursprünglich für den vertrauten LAMP-Stack entwickelt, läuft jedoch auf jedem Webserver, der eine aktuelle Version von PHP und MySQL bereitstellt.
Die Mindestanforderungen hängen davon ab, ob du die neueste oder die Long Term Support-Version installierst. Alle gepflegten Versionen von Contao sind mit den neuesten PHP- und MySQL-Versionen kompatibel. Daher wird grundsätzlich empfohlen, diese immer zu verwenden.
Name der Erweiterung | Contao 4.4 | Contao 4.9 |
---|---|---|
DOM (ext-dom ) |
erforderlich | erforderlich |
PCRE (ext-pcre ) |
erforderlich | erforderlich |
Intl (ext-intl ) |
empfohlen | erforderlich |
PDO (ext-pdo ) |
erforderlich | erforderlich |
ZLIB (ext-zlib ) |
erforderlich | erforderlich |
JSON (ext-json ) |
erforderlich | erforderlich |
Curl (ext-curl ) |
erforderlich | erforderlich |
Mbstring (ext-mbstring ) |
erforderlich | erforderlich |
GD (ext-gd ) |
erforderlich1 | erforderlich1 |
Imagick (ext-imagick ) |
empfohlen1 | erfordert GD, Imagick oder Gmagick1 |
Gmagick (ext-gmagick ) |
empfohlen1 | erfordert GD, Imagick oder Gmagick1 |
1 Contao wählt automatisch eine Bildverarbeitungsbibliothek je nach Verfügbarkeit aus. Die PHP GD Bibliothek muss allerdings trotzdem noch zusätzlich zur Verfügung stehen. Die Verwendung von ImageMagick über die PHP Imagick oder Gmagick Bibliothek ist in allen Fällen empfohlen. ImageMagick bietet bessere Performance und Qualität. Um herauszufinden, welche Bibliothek von Contao nun tatsächlich benutzt wird, kann folgendes Kommando ausgeführt werden:
$ vendor/bin/contao-console debug:container contao.image.imagine
Alle erforderlichen Erweiterungen sind in aktuellen PHP-Versionen standardmäßig aktiviert. Einige Hosting-Anbieter deaktivieren sie jedoch explizit. Die Anforderungen werden bei der Installation durch Contao Manager oder Composer automatisch überprüft.
php.ini
)Diese Einstellungen sind die Empfehlungen für den idealen Betrieb von Contao. Eine andere Konfiguration bedeutet nicht, dass Contao nicht funktioniert, kann jedoch zu unerwartetem Verhalten oder Leistungseinbußen/langsamen Reaktionen führen.
Konfigurationsname | Webprozess | Kommandozeile | Anmerkungen |
---|---|---|---|
memory_limit |
Minimum 256M |
-1 (unbegrenzt) |
|
max_execution_time |
Minimum 30 |
0 (unbegrenzt) |
|
file_uploads |
On |
nicht anwendbar | |
upload_max_filesize |
Minimum 32M |
nicht anwendbar | |
post_max_size |
wie upload_max_filesize |
nicht anwendbar | |
max_input_vars |
1000 |
nicht anwendbar | Benötigt möglicherweise mehr, wenn viele Erweiterungen installiert sind. Erhöhe, wenn die Benutzerzugriffsrechte nicht korrekt gespeichert werden können. |
opcache.enable |
1 (aktiviert) |
0 (deaktiviert) |
Das Deaktivieren des Opcode-Cache wirkt sich stark auf die Leistung aus. |
opcache.enable_cli |
0 (deaktiviert) |
0 (deaktiviert) |
|
opcache.max_accelerated_files |
16000 empfohlen |
nicht anwendbar | Ein niedrigerer Wert kann zu einer unnötigen Verlangsamung führen. |
safe_mode |
Off |
Off |
|
open_basedir |
NULL |
NULL |
Wenn aktiv, stelle sicher, dass auf das temporäre Verzeichnis des Systems zugegriffen werden kann. |
InnoDB
(Standard seit MySQL 5.7)innodb_large_prefix = 1
(standardmäßig aktiviert seit MySQL 5.7.7)innodb_file_format = Barracuda
(nicht mehr notwendig seit MySQL 8.0)innodb_file_per_table = 1
(standardmäßig aktiviert seit MySQL 5.6.7)utf8mb4
ext-gd
), Imagick (ext-imagick
) oder Gmagick (ext-gmagick
)
verarbeitet werden.ext-gd
) wird für die Bildverarbeitung benötigt.Wird ein MySQL Server in Version 8.0.17 oder höher eingesetzt, ist mindestens PHP 7.2.0 erforderlich.
Obwohl Contao die Doctrine DBAL Datenbank-Abstraktionsschicht verwendet, werden derzeit keine anderen Datenbankserver als MySQL (oder ein kompatibler Fork wie MariaDB) unterstützt.
Contao wurde erfolgreich auf MySQL-Servern der Version 5.1 / 5.5 mit MyISAM
-Tabellenformat getestet. Die Verwendung
von utf8_general_*
anstelle des utf8mb4
-Zeichensatzes führt zu einer verschlechterten UTF8-Unterstützung (z. B.
kein Emojis).
Wenn die oben empfohlenen Optionen auf deinem Server nicht aktiviert werden können, konfiguriere bitte eine andere
Datenbank-Engine und einen anderen Zeichensatz in deiner app/config/config.yml
-Datei:
Ab Contao 4.8 findest du die Datei unter config/config.yml
.
doctrine:
dbal:
connections:
default:
default_table_options:
charset: utf8
collate: utf8_unicode_ci
engine: MyISAM
Ein modernes Hosting ermöglicht es Kunden heute, über ein SSH-Terminal auf ihr Konto zuzugreifen. Dies ist nicht nur eine sicherere Verbindung als herkömmliches unverschlüsseltes FTP, sondern ermöglicht auch ein effizientes Debugging oder die Entwicklung der Anwendung.
Es wird empfohlen, den PHP-Stack für die Verwendung von PHP-FPM oder einem ähnlichen
FastCGI-Setup zu konfigurieren. Durch die Verwendung von
fastcgi_finish_request()
kann Contao
Hintergrundaufgaben (wie die Indizierung des Seiteninhalts) ausführen, ohne dass der Browser auf die Antwort wartet.
In Contao befinden sich alle öffentlich erreichbaren Dateien im Unterordner web/
der Installation. Setze das
Wurzelverzeichnis (Document Root) der Installation über das Admin-Panel des Hosting-Providers auf diesen
Unterordner und richte bei dieser Gelegenheit noch eine Datenbank ein.
Beispiel: example.com
zeigt auf das Verzeichnis /www/example/web
Pro Contao-Installation wird deshalb eine eigene (Sub)Domain benötigt.
Es gibt ein paar wenige große Internet Service Provider, die spezielle Einstellungen für den Betrieb von Contao erfordern. Zum Glück sind sie nur die Ausnahme von der Regel. Die Provider-spezifische Einstellungen findest du im Contao-Forum. Sorgenfreies Contao-Hosting erhältst du bei den Contao-Partnern in der Leistungskategorie »Webhosting«.