Debug-Ausgaben nur in der Entwicklung aktivieren
In die settings.php gehören Werte, die auf jedem Server sicher sind – also Debug aus. Sie liegt im Git und landet so auch auf dem Live-System:
config/system/settings.php
'BE' => [
'debug' => false,
],
'FE' => [
'debug' => false,
],
'SYS' => [
'displayErrors' => 0,
],
Eingeschaltet wird Debug erst in der additional.php – und nur, wenn TYPO3 im Development-Kontext läuft. So kann dieselbe Datei nie versehentlich auf dem Server Fehlerdetails ausgeben:
config/system/additional.php
if (\TYPO3\CMS\Core\Core\Environment::getContext()->isDevelopment()) {
$GLOBALS['TYPO3_CONF_VARS']['BE']['debug'] = true;
$GLOBALS['TYPO3_CONF_VARS']['FE']['debug'] = true;
$GLOBALS['TYPO3_CONF_VARS']['SYS']['displayErrors'] = 1;
$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '*';
}
Den Kontext setzt man zum Beispiel in der .htaccess abhängig vom Hostnamen. Wichtig ist die Bedingung: Ohne sie liefe auch der Live-Server im Development-Kontext.
public/.htaccess
RewriteCond %{HTTP_HOST} ^([^.]+)\.local$ [NC]
RewriteRule .? - [E=TYPO3_CONTEXT:Development]
Auf der Kommandozeile greift die .htaccess nicht. Soll auch die TYPO3-Konsole im Development-Kontext laufen, gehört TYPO3_CONTEXT=Development als Umgebungsvariable dazu – in DDEV zum Beispiel über web_environment in der .ddev/config.yaml.
Erstellt am: