Es liegt in der Natur eines Apache oder Nginx Servers, dass jeder PHP-Prozess nur eine kurze Dauer laufen soll. Dazu kommt auch noch das memory_limit, das oft nur wenige hundert MB pro Prozess zulässt. Anders verhält es sich mit Prozessen, die über die CLI angestoßen werden. Leider gibt es noch keinen funktionierenden Im- und Export von typo3/cms-impexp.
Wir haben bereits vor längerem ein TYPO3 Paket gebaut, das einem rund um TYPO3-Migrationen helfen kann. Neben vielen nützlichen Werkzeugen für Migrationen, bietet in2code/migration zusätzlich CLI-Funktionen, um große Seitenbäume mit allen Datensätzen und Dateien als JSON zu exportieren und anschließend wieder zu importieren.
Zuerst muss das Paket jedoch per Composer installiert werden
composer require --dev in2code/migration
Anschließend kann man über eine Konfigurationsdatei in einer eigenen Extension alle benötigten Settings vornehmen. In der Migrations- oder in der Im-/Export-Dokumentation stehen weitere Details hierzu.
Ab jetzt lassen sich auch sehr große Seitenbäume oder ganze TYPO3-Instanzen zusammenführen.
Beispiel-Export:
# Export page with pid123 and all its subpages into a json file
./vendor/bin/typo3cms migration:export 123 > /home/user/export.json
Und anschließend der Beispiel-Import:
# Import page branch with subpages and files into page with uid 123
./vendor/bin/typo3cms migration:import /home/user/export.json 123
Tip: Ab einer Größe der JSON-Datei von 6-10GB (für Seitenbäume mit vielen tausend Seiten und ähnlich vielen Dateien wie PDF-, Video- oder Bilddateien), kann man darüber nachdenken, die Einbindung von Dateien aus dem fileadmin-Verzeichnis (oder anderen Storages) per Konfiguration zu unterbinden.