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

Beispiele zum Demomodus

Beispieldateien, die EXP_DEMO_MODE=1 für eine öffentliche Demo von Exponential setzen – SetEnv in .htaccess und im virtuellen Host von Apache, ein PHP-FPM-Pool, nginx, ein systemd-Drop-in für Velocity, eine Crontab…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/examples/demo-mode/README.md

On this page

This page is a translation. Read the English original

Beispiele zum Demomodus

Eine öffentliche Demo von Exponential veröffentlicht ihre Anmeldedaten für den Administrator und läuft mit der Umgebungsvariablen EXP_DEMO_MODE=1: Administratorpasswörter lassen sich weder ändern noch zurücksetzen, die Installationsprogramme akzeptieren das veröffentlichte Demo-Passwort (publish oder publishing), und die Administration zeigt ein Banner Demo-Modus. Die Variable muss jeden PHP-Prozess der Demo erreichen und keinen Prozess einer anderen Website. Die Dateien hier zeigen, wie das geht, eine für jede Stelle, an der PHP läuft. Was der Demomodus bewirkt und welche Risiken er hat: 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.

Warnung: Kopieren Sie diese Dateien nur in die Konfiguration einer Demo, deren Inhalte, Benutzer und Einstellungen allesamt zum Wegwerfen sind. Niemals in einen gemeinsam genutzten Pool, eine serverweite Konfiguration, ein Basis-Image oder eine Vorlage, aus der andere Websites gebaut werden.

Inhalt

  1. Die Dateien
  2. Welche Sie brauchen
  3. Prüfen
  4. Verwandte Seiten

Die Dateien

DateiWohin sie gehört
htaccess-setenv.confan die .htaccess der Demo angehängt: Apache (mod_php oder PHP-FPM über mod_proxy_fcgi) und LiteSpeed mit lsphp
apache-vhost-demo.confSetEnv im virtuellen Host der Demo unter Apache (auch ein Feld „Zusätzliche Apache-Direktiven“ in Plesk)
php-fpm-pool-demo.confenv[EXP_DEMO_MODE] = 1 im eigenen PHP-FPM-Pool der Demo
nginx-fastcgi-demo.conffastcgi_param EXP_DEMO_MODE 1 dort, wo nginx Anfragen an PHP-FPM weitergibt
/etc/vc/sites-available/<site>.envvars (hier keine Datei: eine Zeile)empfohlen für Exponential Velocity: export EXP_DEMO_MODE=1 in den Site-envvars der Demo (<site> zeigt ./console exp:velocity layout); exp:velocity start liest die Datei bei jedem Start nur für den Server dieser Installation, sodass Neustarts und Deployments aus jeder Shell sie behalten. Nie in der gemeinsamen /etc/vc/envvars, die der Server jeder Installation liest und die ein Worker dafür ablehnt (Velocity: nur eine Installation)
velocity-demo-mode.confein systemd-Drop-in mit Environment=EXP_DEMO_MODE=1 für die eigene Unit, die Exponential Velocity für diese Installation startet
crontab-demodie Crontab des Demo-Benutzers: EXP_DEMO_MODE=1 für die Cronjobs und den geplanten Neuaufbau
docker-demo.enveine Umgebungsdatei nur für den Container der Demo (--env-file, env_file:)
install-demo-sqlite.shdie allgemeine Form eines Skripts zum Neuaufbau: klonen, composer install, exp:install auf SQLite im Demomodus, prüfen, dass das veröffentlichte Passwort wie angegeben übernommen wurde, SetEnv in .htaccess, austauschen, vorwärmen

Welche Sie brauchen

  • Web-Anfragen: je nachdem, was PHP ausliefert, eine der Varianten .htaccess, virtueller Host, PHP-FPM-Pool, nginx oder (für Velocity) die Site-envvars /etc/vc/sites-available/<site>.envvars bzw. das systemd-Drop-in. PHP liest die Variable zuerst mit getenv(), dann aus $_SERVER; sowohl die FastCGI-Parameter von PHP-FPM als auch SetEnv von Apache kommen auf diesem Weg an.
  • Cron und die Konsole: die Zeile in der Crontab sowie export EXP_DEMO_MODE=1 in der Shell aller, die Befehle auf der Demo ausführen. Ein Prozess ohne die Variable läuft mit ausgeschaltetem Demomodus.
  • Die Installation: EXP_DEMO_MODE=1 in der Umgebung von exp:install, dem Kickstarter oder dem PHP des Setup-Assistenten. Ohne die Variable wird ein bekanntes oder kurzes Passwort durch ein erzeugtes ersetzt, was das Skript zum Neuaufbau als fehlgeschlagenen Build wertet.
  • Container: die Umgebungsdatei, nur für den Dienst der Demo.
  • Zweistufige Anmeldung: eine neue Installation verlangt sie von den Gruppen Administrator users und Editors (settings/override/sevenxauthentication2fa.ini.append.php, Enforce2FA=enabled). Die Besucher einer öffentlichen Demo teilen sich ein Administratorkonto; wer zuerst eine Authenticator-App einrichtet, sperrte alle anderen aus. Beide Skripte zum Neuaufbau schalten sie deshalb nach der Installation aus (Enforce2FA=disabled); DEMO_ENFORCE_2FA=1 behält die Vorgabe, für eine Demo, die den zweiten Schritt zeigt und nicht geteilt wird.
  • Warteschlange und Importe: crontab-demo führt die Cronjob-Teile expqueue und sqliimport jede Minute mit dem Siteaccess der Administration aus (-s admin), in dem sqliimport eingeschaltet ist.

Prüfen

  • Die Administration zeigt das Banner Demo-Modus auf jeder Seite; die Seite „Passwort vergessen“ teilt jedem Besucher mit, dass Administratorpasswörter nicht zurückgesetzt werden können.
  • grep 'demo/mode' var/log/security.log listet eine Zeile pro Prozess, der im Demomodus gestartet ist, mit seiner SAPI (fpm-fcgi, litespeed, cli und so weiter). Setup > Logdateien fasst sie als demo/mode zusammen.
  • Das Audit-Protokoll enthält pro Prozess ein Ereignis system.demo.mode.
  • Wenn etwas nicht funktioniert: Probleme mit dem Demomodus.

Verwandte Seiten

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