Aufbau einer CMS-Architektur - zentral oder nicht - php, Content-Management-System

Ich habe einen dedizierten Server und ich brauche ihnErstelle eine neue Version meines persönlichen PHP5 CMS für meine Kunden. Abgesehen von den Fragen, ob ich Open Source in Erwägung ziehen sollte, brauche ich Ihre Meinung zur CMS-Architektur.

First approach (since the server is completely in Meine Kontrolle) ist ein zentralisiertes System zu bauen, das mehrere Standorte aus einem einzigen Administrationsbereich unterstützt. Grundidee ist, dass ich mich als Super User anmelden kann, eine neue Site erstellen kann (technisch erstellt sie ein neues Web Root und eine neue Datenbank und vielleicht noch andere Dinge), Module und Plugins für bestimmte Kunden zuweisen oder neue entwickeln erforderlich. Wenn sich der Kunde in diesem Bereich anmeldet, kann er nur den Inhalt seiner Website sehen und verwalten.

Ich habe ein solches System gesehen (es war Custom Build),Es ist sehr schön, Fehler zu beheben und neue Funktionen betreffen alle Kunden sofort, ohne jedes CMS patchen zu müssen, das auch auf anderen Hosting-Servern sein kann ...

Der negative Aspekt, den ich sehen kann, ist Skalierbarkeit. Was ist, wenn ich einen zweiten Server hinzufügen muss?

Die zweite ist klassisch - Standalone-CMS für jeden Kunden.

Welchen Weg wirst du gehen und warum?

Vielen Dank für Ihre Zeit.

Antworten:

2 für die Antwort № 1

Wenn Sie ein zentrales System für alle hättenClients könnte die Skalierbarkeit einfacher werden. Sie können einen großen Datenbankserver und mehrere identische Webserver (wahrscheinlich hinter einem Load Balancer) haben und müssen sich nicht darum kümmern, die Clients auf verschiedene Server aufzuteilen. Ihre Ressourcen werden gepoolt, wenn ein Client einen Tag hat Bei starkem Datenverkehr kann es von mehreren Servern genutzt werden, anstatt einen Server (und alle anderen Clients) in die Knie zu zwingen.

Sie können PHP-Sitzungen über mehrere hinweg arbeiten lassenServer entweder mithilfe von "sticky sessions" in der Lastausgleichskonfiguration oder indem PHP dazu veranlasst wird, die Daten irgendwo für alle Server (z. B. eine Datenbank) zu speichern.

Wenn Sie die Webanwendungsdateien nicht mit einer einzigen Codebasis synchronisieren möchten, sollten Sie nicht mit Tools wie rsync zurechtkommen, die Ihnen helfen könnten.


1 für die Antwort № 2

Es hängt wirklich von den Arten der Aufstellungsorte ab.Das heißt, ich würde vorschlagen, dass Sie Software zur Versionskontrolle verwenden, um mehrere Installationen zu verwalten. In der Praxis kann dies dasselbe wie bei einem zentralisierten Ansatz sein, aber es gibt Ihnen die Freiheit, die Aktualisierung einer einzelnen (oder mehrerer) Sites zu verschieben.


Verwandte Fragen
Speisekarte