Hosting-Anforderungen
Diese Seite definiert den Hosting-Vertrag für eine Produktionsinstallation WebBlocks CMS. Es richtet sich an Agenturen, Serverbetreiber und Hosting-Anbieter, die einen Server vor der Bereitstellung bewerten.
WebBlocks CMS ist ein Composer-Paket, das in einer Laravel-Hostanwendung installiert wird. Die Hostanwendung ist Eigentümer ihrer Umgebung, ihres Webservers, ihrer Datenbank, ihrer E-Mails, ihrer Warteschlangen, ihrer geplanten Aufgaben, ihrer Sicherungen und ihrer Bereitstellung. Die Erfüllung der Paketanforderungen allein macht eine ansonsten unvollständige Laravel-Anwendung nicht bereitstellbar.
Erforderliche Plattform
Bereich
Mindestanforderung
PHP
PHP 8.3 oder neuer innerhalb des von Composer unterstützten ^8.3-Bereichs, wobei CLI und die Web-Runtime dieselbe kompatible Version verwenden
Rahmen
Laravel Framework 12.55+ oder 13.x
Abhängigkeitsmanager
Composer 2, verfügbar während der Installation und paketnativen Systemaktualisierungen
Vom Paket deklarierte PHP-Erweiterungen
mbstring, sodium und zip
Basislinie der Produktionsdatenbank
MySQL 8.0 mit InnoDB, einer Datenbank und Anmeldeinformationen, die die Anwendung für Tabellen, Indizes, Fremdschlüssel und Transaktionen verwenden kann
Webserver
Nginx, Apache oder ein gleichwertiger Server, der Laravel-Anfragen über public/index.php weiterleiten kann
Dokumentstamm
Das public/-Verzeichnis der Hostanwendung, niemals das Anwendungsstammverzeichnis
TLS
HTTPS für Produktionsverwaltung und öffentlichen Datenverkehr
Composer löst auch die eigenen Plattformanforderungen von Laravel. Der Anbieter muss composer check-platform-reqs für die gesamte Hostanwendung durchlassen; Die obige Tabelle ersetzt diese Prüfung nicht.
Vorläufig gemessenes Speicherprofil
Eine für den Produktionsbetrieb zertifizierte allgemeine PHP-Speicheruntergrenze oder Anfragezeitgrenze wurde noch nicht festgelegt. Die bisherige teilweise lokale Qualifizierung ergab folgende vorläufige Planungswerte:
Getestete Arbeitslast
Vorläufiger Planungswert
CMS-Kern, ohne GD-Bildtransformationen
PHP memory_limit von mindestens 128 MiB
Ein PHP-Worker, der Bilder mit GD transformieren kann
Mindestens 512 MiB tatsächliche Prozesskapazität pro gleichzeitigem Worker, qualifiziert für Quellbilder bis zu 6.000 × 4.000 Pixel (24 MP)
Der Wert von 128 MiB ist ein vorläufiger Kandidat für den Kernbetrieb: Die vollständige Feature-Testsuite bestand bei diesem Limit alle fünf Durchläufe und scheiterte bei 96 MiB. Für GD-Bildverarbeitung reicht dieser Wert allein nicht aus. Im 24-MP-WebP-Test meldete PHP nur 32.5 MiB, während der tatsächliche maximale residente Speicher des Workers 312.26 MiB erreichte; GD reserviert beträchtlichen Speicher außerhalb des von PHP erfassten Limits memory_limit. Mit der Sicherheitsmarge des Qualifizierungsprotokolls ergibt sich ein vorläufiges Planungsprofil von 512 MiB realem Speicher für jeden gleichzeitig Bilder transformierenden PHP-Worker.
Bei der Zahl von 512 MiB handelt es sich um die Worker-Kapazität, nicht um den gesamten Server-RAM. Der Server muss zusätzlich das Betriebssystem, den Webserver, die Datenbank, Caches und andere gleichzeitig arbeitende PHP-Worker aufnehmen. Da das CMS derzeit die Größe hochgeladener Dateien, jedoch nicht die Rasterpixelabmessungen begrenzt, kann 512 MiB nicht garantieren, dass beliebige Bilder größer sind als die getestete Arbeitslast von 24 MP. Siehe Hosting-Kapazitätsergebnisse für die Messungen und Qualifikationsgrenze.
SQLite wird von der Pakettestsuite verwendet und von bestimmten Sicherungs-/Wiederherstellungscodepfaden unterstützt, ist jedoch nicht die Basislinie für das Produktionshosting. Es gibt MariaDB-fähige Sicherungs- und Wiederherstellungspfade, aber eine MariaDB-Version ist derzeit nicht Teil der Produktionsabnahmematrix. PostgreSQL darf nicht als vollständig unterstütztes Produktionsziel angeboten werden, bis die vollständigen Installations-, Migrations-, Betriebs-, Sicherungs- und Wiederherstellungsabläufe abgedeckt und dokumentiert sind.
PHP-Funktionen
Die erforderlichen Erweiterungen müssen sowohl in der CLI PHP-FPM/Apache PHP als auch in der CLI PHP aktiviert sein. Ein Hosting-Panel, das unterschiedliche Konfigurationen für Web und CLI PHP bereitstellt, muss diese aufeinander abstimmen.
Die folgenden Fähigkeiten sind bedingt:
gd, einschließlich der Codecs für die verwendeten Medienformate, ermöglicht die Erstellung von Miniaturansichten und responsiven Bildern. Ohne sie greifen berechtigte Transformationen auf die ursprünglichen Medien-URLs zurück.- Der Datenbank-PDO-Treiber muss mit der ausgewählten Datenbank übereinstimmen; Das Produktions-MySQL-Profil benötigt daher
pdo_mysql. - Standardmäßige Laravel- und Composer-Plattformanforderungen, üblicherweise einschließlich OpenSSL- und Dateiinformationsunterstützung, müssen entsprechend den Anforderungen der aufgelösten Hostanwendung aktiviert bleiben.
- Für den paketnativen Systemaktualisierungsworkflow sind
proc_openund die Berechtigung zum Ausführen der Prozesse PHP und Composer erforderlich. Wenn der Anbieter die Prozessausführung deaktiviert, müssen Bereitstellungen und Aktualisierungen vom Betreiber außerhalb des CMS verwaltet werden.
Leiten Sie keine Erweiterungsanforderung aus einem nur für die Entwicklung vorgesehenen Doctor-Befehl ab. Die maßgebliche Installationsprüfung ist die Plattformauflösung Composer für die gesamte Hostanwendung, gefolgt von den CMS-Bereitschaftsprüfungen.
Dateisystem und Berechtigungen
Der bereitgestellte Code muss für die PHP-Laufzeitumgebung lesbar sein. Der Laufzeitbenutzer PHP oder eine gemeinsam genutzte Bereitstellungsgruppe benötigt Lese-/Schreibzugriff auf:
storage/, einschließlichstorage/framework,storage/logs, öffentliche Medien, temporäre Arbeitsbereiche und die konfigurierte Sicherungsfestplatte;bootstrap/cache;public/site, wo Website- und Seitenüberschreibungs-Assets erstellt werden können;- das Anwendungsstammverzeichnis und der konfigurierte Update-Arbeitsbereich nur, wenn paketnative Systemupdates das installierte Paket ändern; Und
- jede andere vom Host für CMS-Medien oder Backups konfigurierte Laravel-Festplatte.
Verwenden Sie den Besitz oder eine eng begrenzte Bereitstellungsgruppe. Verwenden Sie keine weltweit beschreibbaren 777-Berechtigungen. Der Server sollte die symbolische Verknüpfung public/storage von Laravel zulassen, wenn öffentliche Medien die Standardfestplatte storage/app/public verwenden. Wenn symbolische Links nicht verfügbar sind, muss der Host eine gleichwertige Bereitstellungsvereinbarung für die öffentliche Festplatte bereitstellen.
Das Anwendungsstammverzeichnis .env, vendor/, storage/, .git/ und die Quelldateien dürfen nicht direkt über das Internet zugänglich sein. Anfragen wie /.env und /.git/config müssen 404 zurückgeben.
Webserver- und URL-Verhalten
Der Server muss:
- Bestehende Dateien unten bereitstellen
public/direkt und senden Sie andere Anfragen an Laravelpublic/index.php; - Bewahren Sie HTTPS- und Hostinformationen über jeden Reverse-Proxy, damit Laravel korrekte sichere URLs generiert.
- Erlauben Sie dem CMS-Administrator unten
/webadminund statische Paketressourcen unten/cmskoexistieren; - Vermeiden Sie das Hinzufügen von a
public/cms/index.phpFront-Controller oder Behandlung/cmsals Admin-Route; Und - Unterstützt die vom Betreiber für die Medienrichtlinie der Website ausgewählten Upload-Body-Größen und Anforderungs-Timeouts.
WebBlocks CMS veröffentlicht noch kein produktionszertifiziertes Minimum für PHP-Speicher oder Anforderungszeitlimit. Die jetzigeKapazitätsergebnisseRichten Sie einen provisorischen Kern PHP einmemory_limitKandidat mit 128 MiB und einem getesteten 512 MiB-Prozesskapazitätsprofil für einen 24 MP GD-Transformationsarbeiter. Letzteres ist nicht universell, da die Rasterpixelabmessungen derzeit unbegrenzt sind. Die aktuelle Obergrenze für die CMS-Medienvalidierung liegt bei 50 MiB pro Upload, und das paketnative System Update hat eine absolute Preflight-Untergrenze von 500 MiB für den freien Speicherplatz; Keiner der Werte allein stellt eine allgemeine Speicher-, Anforderungs- oder Speicherkapazitätsgarantie dar. Ein Anbietervorschlag muss seine tatsächlichen Grenzen angeben. VerwendenValidierung der Hosting-Kapazitätum arbeitslastgestützte Mindestanforderungen zu qualifizieren und zu veröffentlichen.
Funktionsabhängige Dienste
Fähigkeit
Hosting-Abhängigkeit
Bildvarianten
PHP GD mit dem erforderlichen JPEG-, PNG- oder WebP-Codec
Kontaktbenachrichtigungen und E-Mail zum Zurücksetzen des Passworts
Ein funktionierender Laravel-Mail-Transport und Provider-Anmeldeinformationen
Geplante Benachrichtigungen
Laravel schedule:run jede Minute; erforderlich für gebündelte/tägliche Kontakt- oder Live-Chat-Benachrichtigungen und tägliche Zusammenfassungen ausstehender Nachrichten. Erfordert außerdem funktionierende ausgehende E-Mails und einen gemeinsamen Cache mit Atomsperren, wenn mehrere Worker ausgeführt werden.
Geplanter Reinigungsservice
Derselbe Laravel-Scheduler; Nur optional, wenn keine aktivierte Funktion eine geplante Verarbeitung erfordert und eine manuelle Bereinigung ausreichend ist
Warteschlangen
Eigentum der Host-Anwendung; Für die synchrone CMS-Bildgenerierung oder öffentliche Suchindizierung nicht erforderlich
Paketnative Systemaktualisierungen
Ausgehendes HTTPS, ZIP und Natrium, Composer 2, proc_open, ausführbare Datei PHP/Composer, beschreibbare Anwendungs-/Updatepfade und ausreichend freier Speicherplatz für Download, Extraktion, Sicherung und Rollback
Native MySQL-Sicherung/Wiederherstellung
mysqldump oder mariadb-dump für den Export und mysql oder mariadb für den Import, verfügbar für den Prozess PHP
Remote-Medienimport
Ausgehendes HTTP/HTTPS unterliegt den CMS-Netzwerksicherheitsprüfungen und etwaigen Hosting-Firewall-Richtlinien
Ein Server darf das CMS nur dann ohne optionale Funktionen ausführen, wenn die entsprechende Funktion deaktiviert oder an anderer Stelle betriebsbereit ist. Die Einschränkung muss bei der Übergabe aufgezeichnet werden.
Geplante Benachrichtigungsanforderungen
Neue Websites ab CMS 1.95.0 verwenden standardmäßig Batch-Nachrichtenbenachrichtigungen und eine tägliche Zusammenfassung, daher erfordert die ausgewählte Benachrichtigungsrichtlinie eine Planung. Der Serveradministrator oder Hosting-Anbieter ist Eigentümer des einmaligen Cron-Setups unter dem Anwendungsbenutzer und verwendet dazu eine mit dem CMS kompatible CLI PHP-Binärdatei. Das CMS registriert seine Aufgaben, installiert oder ändert jedoch keinen Server-Cron-Eintrag. Ein vorhandener funktionierender Laravel-Scheduler kann die neue Aufgabe nach dem Upgrade ohne einen zweiten Cron-Eintrag ausführen. Nur sofortige Benachrichtigungen mit deaktivierten täglichen Zusammenfassungen erfordern keinen Planer für die Benachrichtigungszustellung.
CMS 1.95.1 zeigt den aufgezeichneten Zustand von Planern und Benachrichtigungsarbeitern im Dashboard, in den Site-Benachrichtigungseinstellungen und in der Site-Benachrichtigungs-API an. Live Chat 0.7.1 fügt die gleiche Abhängigkeit zu seinen Einstellungen und dem Plugin-Zustand hinzu. Eine registrierte Aufgabe allein ist kein Nachweis der Ausführung: Der Status bleibt Noch nicht überprüft, bis ein geplanter Heartbeat und ein abgeschlossener Benachrichtigungslauf vorliegen, und wird zu Delayed, wenn der Beweis älter als fünf Minuten ist. Informationen zur Einrichtung und Abnahmeprüfung finden Sie unter Installation. Dies meldet die aufgezeichnete Ausführung, nicht die Zustellung im Posteingang oder den Zustand jedes einzelnen Serverknotens.
Produktionskonfiguration und -betrieb
Die Hostanwendung muss über ein starkes APP_KEY, APP_DEBUG=false, ein korrektes öffentliches APP_URL, sichere Sitzungscookies über HTTPS, funktionierende Datenbankanmeldeinformationen und produktionsgerechte Sitzungs-/Cache-/Mail-Einstellungen verfügen. Geheimnisse gehören in die Umgebung und dürfen nicht über das Dokumentstammverzeichnis festgeschrieben oder offengelegt werden.
Die Hosting-Vereinbarung muss außerdem Folgendes festlegen:
- wie Datenbank und hochgeladene Dateien außerhalb der Anwendung gesichert werden;
- wie Releases bereitgestellt werden, wenn In-App-Updates nicht verfügbar sind;
- wie PHP-FPM oder der entsprechende Dienst neu geladen wird, wenn OPcache keine Zeitstempel validiert;
- wo Protokolle aufbewahrt werden und wie die Erschöpfung der Festplatte überwacht wird; Und
- Wer ist für die TLS-Erneuerung, die Datenbankwartung, die Wiederherstellungstests und die Reaktion auf Vorfälle verantwortlich?
Backups auf Anwendungsebene ersetzen keine Anbieter- oder Infrastruktur-Backups.
Annahme
Bevor Sie einen Host genehmigen, überprüfen Sie die aktuellen Hosting-Kapazitätsergebnisse, wählen oder qualifizieren Sie ein getestetes Profil mithilfe der Hosting-Kapazitätsvalidierung und schließen Sie dann die Hosting-Bereitschaft ab Checkliste. Führen Sie nach der Bereitstellung Folgendes aus:
composer check-platform-reqs
php artisan about
php artisan webblocks:install --help
Dann überprüfen Sie die öffentliche Website, /webadmin/login, die statischen /cms-Assets, den Medien-Upload und alle aktivierten funktionsabhängigen Dienste. System Update verfügt über einen eigenen Pass/Fail-Preflight und darf nicht verfügbar bleiben, wenn eine seiner Anforderungen fehlschlägt.
Siehe auch Installation, Sicherheit, Operationen und Medienbild Varianten.