Pakete für Linux-Distributionen
Diese Seite richtet sich an Paketbetreuer, die Exponential mit apt oder dnf installierbar machen möchten. Sie sagt,
was es gibt und was Paketbetreuer selbst entscheiden müssen. Das Projekt veröffentlicht kein deb- oder rpm-Paket des
Exponential-CMS; es veröffentlicht aber deb- und rpm-Pakete von Velocity, seinem Webserver.
Warnung
.htaccessbremst jede Anfrage. Sind.htaccess-Dateien erlaubt (AllowOverridealles außerNone), 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 Noneim 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 auchstaticcache_offload.conf), setzen SieAllowOverride None, führen Sieapachectl configtestaus, 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
- Was das Projekt veröffentlicht
- Wie die Installation aufgebaut ist
- Composer und die Richtlinien der Distribution
- Der Post-Install-Schritt
- Updates über den Paketmanager
- Bevor Sie veröffentlichen
Was das Projekt veröffentlicht
| Element | Form | Quelle |
|---|---|---|
| Exponential 6 | Git-Tags und das Composer-Paket se7enxweb/exponential | 3.1 |
| Erweiterungen | Composer-Pakete, eines je Erweiterung | composer.json |
| Velocity | Composer-Paket, deb für Debian 12/13 und Ubuntu 22.04/24.04, rpm für Enterprise Linux 9/10, Docker-Images, Binärdateien | Velocity-Pakete |
Die Velocity-Pakete sind ein funktionierendes Vorbild dafür, wie das Projekt paketiert: architekturunabhängig, "Bei der
Installation startet nichts", ein Systembenutzer qbix, Einstellungen in /etc/default/exponential-velocity.
Wie die Installation aufgebaut ist
Exponential ist "ein Verzeichnis voller PHP-Dateien", dessen Document-Root das Wurzelverzeichnis der Installation ist (Webserver-Beispiele). Es schreibt in seinen eigenen Baum:
| Verzeichnis | Geschrieben | Hinweis |
|---|---|---|
var/ | immer | Caches, Protokolle, Uploads, Autoload-Arrays, die SQLite-Datenbank |
settings/, settings/override, settings/siteaccess | von den Installern und der Administration | ManagedByDeployment=enabled hindert die Administration daran, Einstellungen zu schreiben |
design/, extension/ | wenn Pakete aus der Administration installiert werden | |
autoload/, var/autoload/ | von ezpgenerateautoloads.php | Arrays für Kernel und Erweiterungen |
Quelle: Beschreibbare Verzeichnisse und Rechte.
Was das für ein Paket bedeutet:
- Installieren Sie den Baum an einer Stelle (zum Beispiel unter
/usr/share/<name>/) und verlinken oder binden Sie die beschreibbaren Teile nach/var/lib/<name>/und/etc/<name>/erst, nachdem Sie getestet haben, dass jeder Schreiber den Links folgt. Die Dokumentation beschreibt keinen aufgeteilten Aufbau; diesen Test verantworten Sie. site.ini [FileSettings] VarDirwird vom Installer je Siteaccess gesetzt (var/<package>odervar/site), und zusätzliche Erweiterungsverzeichnisse lassen sich mit[ExtensionSettings] AdditionalExtensionDirectories[]hinzufügen (Zusätzliche Erweiterungsverzeichnisse). Auf diese Einstellungen kann sich ein Aufbau stützen.- Die Webserver-Konfiguration, die Sie ausliefern, muss das Routing von
.htaccess_rootbeibehalten. .htaccessundconfig.phpsind Dateien der Installation, nicht des Pakets: Liefern Sie die Vorlagen aus (.htaccess_root,.htaccess_root_static,config.php-RECOMMENDED) und lassen Sie den Administrator oder Ihren Post-Install-Schritt sie mitexp:setup:htaccessundexp:setup:configkopieren. Ein Update überschreibt dann nie eine geänderte Kopie: Die Befehle zeigen den Diff und verweigern ohne--force(.htaccess und config.php von der Konsole aus einrichten).
Composer und die Richtlinien der Distribution
Exponential hängt von vielen Composer-Paketen ab (vendor/) und von Erweiterungen, die ein Composer-Plugin nach
extension/ installiert. Distributionen unterscheiden sich darin, ob sie mitgelieferte Abhängigkeiten akzeptieren.
Entscheiden Sie gemäß den Richtlinien Ihrer Distribution und beachten Sie:
- der Satz an Erweiterungen ist durch
requirein dercomposer.jsonfestgelegt; erforderliche Erweiterungen wegzulassen ändert das Produkt (Erweiterungen hinzufügen und entfernen); composer licensesliefert die Lizenz jedes Composer-Pakets für Ihre Copyright-Datei (Komponenten Dritter).
Der Post-Install-Schritt
Ein Distributionspaket sollte nicht von sich aus eine Website installieren:
Tun Sie: den Systembenutzer anlegen, die Besitzrechte der beschreibbaren Verzeichnisse setzen, eine deaktivierte Webserver- und Cron-Konfiguration installieren, die Autoloads neu erzeugen, ausgeben, wo die Dokumentation und der Installationsbefehl zu finden sind.
.htaccessundconfig.phpan ihren Platz zu bringen ist hier unbedenklich, denn beide Befehle lassen eine vorhandene Datei in Ruhe und ändern bei einem zweiten Lauf nichts; als root brauchen sie--allow-root-userund--owner=<benutzer>:<gruppe>für den Benutzer der Website:php bin/php/console exp:setup:htaccess --apply --allow-root-user --owner=www-data:www-data php bin/php/console exp:setup:config --apply --allow-root-user --owner=www-data:www-dataTun Sie nicht: eine Datenbank anlegen,
exp:installmit Standardwerten ausführen oder einen Webserver starten. Der Administrator führt die Installation einmal aus, mit seiner eigenen URL, Datenbank und E-Mail (Unbeaufsichtigte Installation mit exp:install).
Updates über den Paketmanager
Ein Paket-Update ersetzt Code; Updates von Exponential haben eine zweite Hälfte, die Datenbank-Update-Dateien und die Checkliste jedes Zeitraums (Kapitel 11.6). Das Paket kann:
- nach dem Update die Caches leeren und die Autoloads neu erzeugen (Caches und Autoloads);
- dem Administrator mitteilen, wenn
.htaccessnicht mehr zur neuen.htaccess_rootpasst:exp:setup:htaccessohne--applyendet mit Exit-Code 1 und gibt den Diff aus, undexp:config:listzeigt Einstellungen, die neu inconfig.php-RECOMMENDEDsind, als(not set); - dem Administrator mitteilen, dass ein Datenbank-Update fällig sein könnte, mit dem Link;
- nie Datenbank-Updates unbeaufsichtigt auf einer Website ausführen, die es nicht kennt.
Bevor Sie veröffentlichen
- To do: Die Copyright-Datei führt Exponential (GPL-2.0-or-later), jede Erweiterung und jedes mitgelieferte Paket auf.
- To do: Ein Quellpaket ist verfügbar, wie es Distributionen ohnehin verlangen.
- To do: Paketname und Beschreibung folgen Ein Bundle benennen und gestalten.
- To do: Installation, Upgrade und Entfernung sind auf einem sauberen System getestet.
- To do: Sicherheitskorrekturen haben einen Weg: Sie verfolgen die Releases und bauen neu (Updates und Upgrade-Pfade).
Verwandte Seiten
- Betriebssystemunterstützung
- Velocity-Pakete, Docker-Images und Binärdateien
- GPL-Pflichten beim Weitergeben
- .htaccess und config.php von der Konsole aus einrichten
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
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.