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

Syndizierung zwischen Installationen

Inhalte zwischen Exponential-Installationen mit der Erweiterung syndication teilen - Syndizierung in eine und in beide Richtungen, Feeds über SOAP, die Cronjob-Teile export_feed und import_feed, die Quelle schützen, der…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/integrators/syndication-between-installations.md

On this page

This page is a translation. Read the English original

Syndizierung zwischen Installationen

Diese Seite richtet sich an Integratoren, deren Landschaft mehrere Exponential-Installationen umfasst, die Inhalte teilen müssen: eine Konzernwebsite und die Websites ihrer Mitglieder, ein Portalnetzwerk, ein zentraler Produktkatalog, der in mehreren Shops veröffentlicht wird. Die Erweiterung syndication (von der composer.json im Wurzelverzeichnis als ~1.3.14 verlangt) exportiert einen Teil des Inhaltsbaums einer Installation als Feed und lässt eine andere Installation ihn importieren, per Cron im Gleichschritt gehalten. Die Funktionsseite ist syndication; jede Option steht in der Spezifikation.

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. Wie es funktioniert
  2. Einrichten
  3. Die Quelle schützen
  4. Betreiben
  5. Syndizierung oder etwas anderes
  6. Checkliste

Wie es funktioniert

 main installation                                   second installation
 -----------------                                   -------------------
 export feed (a subtree)                             import (feed address + target node)
   |  cronjob part export_feed                          ^  cronjob part import_feed
   v                                                    |
 cached XML + binary files, one file per object  --->  SOAP request to the main installation
 served through index_soap.php (EnableSOAP=true)
  • Syndizierung in eine Richtung: gemeinsame Inhalte oder Authentifizierungsdaten zwischen getrennten Datenbanken und Kunden-Websites.
  • Syndizierung in beide Richtungen: Jede Seite exportiert und importiert, für Foren, Portalnetzwerke und große E-Commerce-Netzwerke.

Einrichten

Auf beiden Installationen:

  1. Installieren Sie die Tabellen der Erweiterung (sql/mysql.sql oder, seit 1.3.1 für jede Datenbank, share/db_schema.dba) und aktivieren Sie sie.

  2. Schalten Sie für die exportierende Seite den SOAP-Server ein, in settings/override/soap.ini.append.php:

    [GeneralSettings]
    EnableSOAP=true
    
    [ExtensionSettings]
    SOAPExtensions[]=syndication
  3. Lassen Sie den SOAP-Server durch den Webserver der exportierenden Seite. Er heißt seit Exponential 6.0.15 index_soap.php (vorher soap.php; dieser Name leitet nur noch weiter): Nehmen Sie in der .htaccess das Kommentarzeichen vor RewriteRule ^index_soap\.php - [L] weg, oder ergänzen Sie die Zeile im HTTPS-Virtual-Host, oder eine location = /index_soap.php in nginx. curl -i https://<host>/index_soap.php muss mit „only understand POST methods“ antworten, nicht mit 404 oder einer Seite der Website. Die Zeilen für jeden Server und den vollständigen Test finden Sie unter Das SOAP-Einstiegsskript heißt jetzt index_soap.php.

Auf der Hauptinstallation: Öffnen Sie /syndication/menu, wählen Sie Export, dann New Feed und schließen Sie den Assistenten ab. Eine Teilbaumquelle schließt die Wurzel des Teilbaums ein. Planen Sie den Export-Teil ein; alle 3 Minuten wird empfohlen:

php runcronjobs.php export_feed

Auf der zweiten Installation: Öffnen Sie /syndication/menu, wählen Sie Import, geben Sie die Serveradresse des Feeds (https://export.example.com/index_soap.php, oder .../soap.php, wenn die Hauptinstallation 6.0.14 oder älter betreibt) und den Knoten an, der die Inhalte aufnimmt, und führen Sie den Import-Teil zuerst von Hand aus:

php runcronjobs.php import_feed

Prüfen Sie den ersten Import und planen Sie ihn dann ein. Nach dem ersten Lauf sind Importe schneller.

Die Quelle schützen

Seit 1.2.0 sendet der Import einen Login und ein Passwort, sodass der SOAP-Endpunkt der exportierenden Website hinter einer HTTP-Zugriffskontrolle liegen kann. Geben Sie sie in der Serveradresse an (https://<login>:<password>@<host>/) oder in den Feldern Login und Password im ersten Schritt des Imports. Der Port ist für https standardmäßig 443. Halten Sie diese Zugangsdaten aus der Versionskontrolle heraus und beschränken Sie index_soap.php (und soap.php, solange ein Import es noch aufruft) am Webserver auf die Adressen der importierenden Installationen.

Betreiben

Die Startseite Syndication in der Administration zeigt, was exportiert und importiert wird, wann jeder Cronjob-Teil zuletzt lief und was Aufmerksamkeit braucht (ein Feed ohne Quelle, ein Import ohne Ort, fehlgeschlagene Einträge, SOAP aus). Export all active feeds und Fetch all active imports starten den Cronjob-Code im Hintergrund, mit Fortschritt auf der Seite. Die Oberfläche der Erweiterung ist bisher nur englisch.

Aus der Shell (php bin/php/console list ext:syndication):

php bin/php/console ext:syndication:status
php bin/php/console ext:syndication:export --dry-run
php bin/php/console ext:syndication:import --import=3 --fetch-only

Syndizierung oder etwas anderes

SituationWählen Sie
Installationen teilen fortlaufend einen Teilbaumsyndication
Eine Partner-Website zeigt nur SchlagzeilenEinen RSS-Export (Feeds)
Eine Website oder einen Teilbaum einmal umziehenEin Paket (Pakete)
Ein anderes System, das nicht Exponential ist, liest die InhalteDie REST-API oder expservices
Eine Installation bedient mehrere WebsitesÜberhaupt keine Syndizierung: Siteaccesses einer Installation (Planung von Multisite)

Checkliste

  • To do: Tabellen installiert und die Erweiterung auf jeder beteiligten Installation aktiv.
  • To do: EnableSOAP=true und SOAPExtensions[]=syndication auf jeder exportierenden Installation.
  • To do: Der SOAP-Endpunkt geschützt (HTTP-Authentifizierung, Adressbeschränkung, HTTPS).
  • To do: export_feed und import_feed eingeplant; der erste Import von Hand geprüft.
  • To do: Überwachung des letzten Laufs der Teile (die Startseite Syndication, ext:syndication:status).

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