Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Runbook: Der Demomodus zeigt sich nicht, oder der Aufbau der Demo scheitert mit einem erzeugten Passwort

Was Sie prüfen, wenn eine öffentliche Demo ohne Demomodus läuft (kein Banner, ein Administratorpasswort ließ sich ändern, keine Zeile demo/mode in security.log), wenn ihr Aufbau scheitert, weil der Installer ein…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/runbooks/demo-mode-problems.md

On this page

This page is a translation. Read the English original

Runbook: Der Demomodus zeigt sich nicht, oder der Aufbau der Demo scheitert mit einem erzeugten Passwort

Für alle, die eine öffentliche Demo von Exponential betreuen, und für alle, die den Demomodus dort finden, wo er nicht sein sollte. Der Demomodus ist in einem Prozess genau dann an, wenn dieser Prozess die Umgebungsvariable EXP_DEMO_MODE mit dem Wert 1 hat (gelesen mit getenv(), dann $_SERVER); es gibt nirgendwo sonst eine Einstellung dafür. Jedes Problem unten ist ein Prozess, der die Variable hat oder nicht hat, wenn er sie haben sollte. Hintergrund: Demomodus.

Warnung .htaccess bremst jede Anfrage. Sind .htaccess-Dateien erlaubt (AllowOverride alles außer None), geschweige denn genutzt, sucht Apache sie bei jeder Anfrage in jedem Verzeichnis des Pfads und liest und wertet sie aus, und die Ladezeiten der Seiten steigen drastisch (gemessen). Die einzige wirkliche Abhilfe ist, die Funktion für den virtuellen Host abzuschalten: AllowOverride None im virtuellen HTTPS-Host, und die Regeln in der Konfiguration des virtuellen Hosts selbst als mod_rewrite-Regeln. Das ist in Geschwindigkeitstests im Produktivbetrieb weit schneller und die Zeit für die Optimierung einer Produktivkonfiguration unbedingt wert. Stellen Sie sofort um: Übernehmen Sie die Regeln des Beispiels für einen virtuellen HTTPS-Host in Ihren virtuellen Host (mit dem statischen Cache auch staticcache_offload.conf), setzen Sie AllowOverride None, führen Sie apachectl configtest aus, laden Sie Apache neu und testen Sie die Website. Dieselben Regeln für andere Server: nginx, LiteSpeed, Caddy, IIS, Velocity (eingebaut); wohin Regeln für virtuelle Hosts in einem Control Panel gehören: Plesk, cPanel, DirectAdmin, ISPConfig. Unter LiteSpeed oder OpenLiteSpeed kann zusätzlich der Seiten-Cache des Servers anonyme Besucher und Crawler ohne PHP bedienen: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.

Inhalt

  1. Herausfinden, welche Prozesse sie haben
  2. Kein Banner in der Administration
  3. Der Aufbau scheitert: Der Installer hat ein Passwort erzeugt
  4. Der Demomodus war an und ist nach einem Neustart weg
  5. Die Seite zum vergessenen Passwort zeigt keinen Hinweis
  6. Der Demomodus erscheint auf einer Website, auf der er nicht sein darf
  7. Verwandte Seiten

Herausfinden, welche Prozesse sie haben

  1. grep 'demo/mode' var/log/security.log | tail: eine Zeile pro Prozess, der mit Demomodus gestartet ist, mit seiner PID und seiner SAPI. sapi=litespeed, sapi=fpm-fcgi oder sapi=apache2handler sind Web-Anfragen, sapi=cli ist Cron, die Konsole oder ein Aufbau. (Die Worker von Velocity sind PHP-Prozesse der Kommandozeile und schreiben ebenfalls sapi=cli.) Keine Zeile mit der SAPI des Webservers bedeutet, dass die Web-Anfragen die Variable nicht haben.
  2. Audit: Ereignisse system.demo.mode, eines pro Prozess.
  3. Eine Prüfung in der Konsole, in der Shell, die Sie nutzen: echo "$EXP_DEMO_MODE" muss 1 ausgeben.

Denken Sie daran, dass nur der genaue Wert 1 zählt (Leerzeichen darum werden entfernt): true, yes, on und 01 lassen ihn aus.

Kein Banner in der Administration

UrsachePrüfenAbhilfe
Die Variable ist nur für Cron oder die Konsole gesetztkeine Zeile demo/mode mit der SAPI des Webssetzen Sie sie auch für den Webserver: SetEnv in .htaccess oder im virtuellen Host, im PHP-FPM-Pool, fastcgi_param oder in der Unit von Velocity (Beispiele)
SetEnv in einer .htaccess, die der Server nicht liestder Server hat AllowOverride None, oder die Zeile steht in der .htaccess eines anderen Verzeichnissessetzen Sie sie in den virtuellen Host, oder erlauben Sie Overrides für den Document Root; mit LiteSpeed prüfen Sie, dass .htaccess für die Domain gelesen wird
mod_env ist nicht geladender Block <IfModule mod_env.c> wird übersprungenaktivieren Sie mod_env, oder setzen Sie die Variable im PHP-FPM-Pool
PHP-FPM verwirft die Umgebungder Master hat sie, der Pool hat clear_env = yes (der Standard)env[EXP_DEMO_MODE] = 1 im Pool, dann den Master dieses Pools neu laden
Der falsche Pool oder Master wurde geändertPlesk und cPanel betreiben mehrere PHP-Versionen, jede mit eigenem Masterändern Sie den Pool der PHP-Version der Domain und laden Sie diesen neu
Ein anderer Wert als 1true, yes, onschreiben Sie 1
Eine veraltete Seitedie Seiten der Administration werden pro Benutzer zwischengespeichertdas Banner wird außerhalb der Cache-Blöcke gezeichnet; laden Sie neu, und leeren Sie den Template-Cache, wenn ein eigenes Design es innerhalb eines einbindet
Ein eigenes Designdas Pagelayout bindet das Banner nicht ein{include uri='design:parts/exp_demo_mode_banner.tpl'} außerhalb jedes {cache-block}

Der Aufbau scheitert: Der Installer hat ein Passwort erzeugt

Der Aufbau der Demo hält mit der Meldung an, dass der Installer ein Administratorpasswort erzeugt hat (oder var/log/initial-admin-password existiert nach exp:install). Der Installer ersetzt ein Administratorpasswort, das er nicht installieren darf, durch ein zufälliges: ein leeres immer, und ein bekanntes (wie publishing) oder eines, das kürzer als MinPasswordLength ist (wie publish), sofern der Demomodus nicht an ist. Der Installer hatte die Variable also nicht.

UrsacheAbhilfe
Das Skript setzt die Variable nach dem Installationsbefehl, oder ohne exportexport EXP_DEMO_MODE=1 vor dem ersten Befehl
EXP_DEMO_MODE=1 cmd1 && cmd2 gibt sie nur cmd1exportieren Sie sie, oder stellen Sie sie vor den Installationsbefehl selbst
sudo oder su hat die Umgebung geleertsudo --preserve-env=EXP_DEMO_MODE, oder setzen Sie sie in dem Befehl, den su -c ausführt
Der Wert ist nicht genau 1schreiben Sie 1
Das Passwort ist leerein leeres Passwort wird nie installiert, auch nicht im Demomodus; übergeben Sie --password= mit dem veröffentlichten Wert
Der Kickstarter läuft als Kindprozesser gibt seine eigene Umgebung weiter; setzen Sie die Variable für den Befehl des Kickstarters

Der Setup-Assistent in einem Browser nimmt die Variable aus dem PHP des Webservers: Dort zeigt die Seite Administrator der Seite einen Hinweis Demo-Modus, wenn er an ist. Ohne den Hinweis setzen Sie die Variable zuerst für die Web-Anfragen.

Der Demomodus war an und ist nach einem Neustart weg

  • Exponential Velocity: Setzen Sie export EXP_DEMO_MODE=1 in die Site-envvars der Demo, /etc/vc/sites-available/<site>.envvars (<site> und die Zeile site envvars zeigt ./console exp:velocity layout); exp:velocity restart und deploy lesen sie aus jeder Shell. Ein Neustart mit dem eigenen qbixctl der Engine liest sie nicht: Der Demomodus ist dann bis zum nächsten exp:velocity restart aus. Steht die Zeile noch in der gemeinsamen /etc/vc/envvars (frühere Releases), ist der Demomodus seit dem Update aus, und var/log/security.log enthält demo/refused ... came from an envvars file other installations share: Verschieben Sie die Zeile in die Site-envvars und starten Sie neu (Velocity: nur eine Installation).
  • PHP-FPM: Eine Pool-Datei, die das Control Panel (Plesk, cPanel) neu schreibt, verliert Zeilen, die es nicht verwaltet. Setzen Sie sie über die PHP-Einstellungen des Panels für die Domain, oder nutzen Sie stattdessen .htaccess oder den virtuellen Host.
  • Ein Neuaufbau: Eine frische .htaccess aus .htaccess_root hat kein SetEnv; der Aufbau muss es jedes Mal anhängen.

Die Seite zum vergessenen Passwort zeigt keinen Hinweis

Der Kernel übergibt den Hinweis an user/forgotpassword.tpl als demo_mode_text (und an user/password.tpl als demo_mode_locked und demo_mode_text). Die Designs des Kernels zeigen ihn. Ein Design einer Website, das diese Templates überschreibt, zeigt ihn, sobald sein eigenes Release mit dem Hinweis installiert ist; ein eigenes Design braucht:

{if first_set( $demo_mode_text, '' )|ne( '' )}<div class="warning"><p>{$demo_mode_text|wash}</p></div>{/if}

Die Ablehnung selbst hängt nicht vom Template ab: Im Demomodus geht so oder so keine Mail zum Zurücksetzen an einen Administrator.

Der Demomodus erscheint auf einer Website, auf der er nicht sein darf

Ein Banner Demo-Modus, eine Zeile demo/mode in security.log oder ein Audit-Ereignis system.demo.mode auf einer Produktions-Website bedeutet, dass ein Prozess dieser Website EXP_DEMO_MODE=1 hat. Behandeln Sie es als Vorfall: Das Administratorpasswort lässt sich nicht mehr ändern, und die Installer würden ein bekanntes akzeptieren.

  1. Finden Sie heraus, woher es kommt: grep -r EXP_DEMO_MODE über die PHP-FPM-Pools, die virtuellen Hosts, die .htaccess-Dateien, die Dienst-Units und Drop-ins, die Crontabs, /etc/environment, die Container-Definitionen und die Vorlagen für das Ausrollen.
  2. Entfernen Sie es dort, laden Sie diesen Dienst neu oder starten Sie ihn neu, und prüfen Sie, dass neue Zeilen demo/mode aufhören.
  3. Fragen Sie, wer es hinzugefügt hat und warum; prüfen Sie im Audit die Änderungen an Administratoren, solange es gesetzt war.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x