Typo3 Symlink-Installation nach Composer migrieren

Wichtiger Hinweis zu Beginn: Ich mache mir eine Kopie von der Webseite, die ich nach Composer migrieren will. Wie man eine Webseite für eine Kopie sichert, habe ich hier beschrieben: Typo3-Installation sichern. Auf meinem Server mit Ubuntu 22.04 richte ich mir unter /var/www/ ein Verzeichnis ein, das ich z. B. old-source nenne. Hierein kopiere ich meine kopierte Symlink-Installation.

 

Vorbereitungen für Apache

Unter /var/www/ erstelle ich ein weiteres Verzeichnis, das ich z. B. migration2c nenne. Ich will die migrierte Installation im Netz überprüfen und nicht auf meiner lokalen Festplatte oder in einer virtuellen Maschine. Deshalb sollte auf meinem Server schon eine URL/Domain vorhanden sein, die ich mit einem Browser aufrufen kann. Im Verzeichnis migration2c erstelle ich ein weiteres Verzeichnis mit dem Namen public. Im public-Verzeichnis lege ich eine index.html Datei, die z. B folgenden Inhalt enthält:

 

<html>
    <head>
        <title>migration2c</title>
    </head>
    <body>
        <h1>This is public</h1>
    </body>
</html>

 

Das Verzeichnis migration2c muss für den Webserver lesbar sein, deshalb führe ich aus:

 

sudo chown -R www-data:www-data /var/www/migration2c

 

Unter /etc/apache2/sites-available lege ich eine Datei mit dem Namen migration2c.conf an. In die Datei schreibe ich:

 

Alias /migration2c "/var/www/migration2c/public"

<Directory /var/www/migration2c/public>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews

  <IfModule mod_dav.c>
    Dav off
  </IfModule>

</Directory>

 

Ich lasse Apache diese Datei einlesen:

 

sudo a2ensite migration2c.conf 

 

Danach starte ich Apache2 erneut:

 

sudo systemctl reload apache2

 

Jetzt kann ich testen, ob das Verzeichnis erreichbar ist. Wenn meine Domain z. B. mydomain.de heißt, gebe ich in den Browser ein: mydomain.de/migration2c

Jetzt sollte die oben erstellte Überschrift im Browser zu sehen sein. Ist das der Fall, ist so weit alles in Ordnung, und ich lösche alle Dateien und Verzeichnisse im Verzeichnis migration2c.

Dieser Abschnitt hat nichts mit der eigentlichen Migration zu tun. Er diente nur dazu, eine Webumgebung zu schaffen, auf die ich später zugreifen kann.

 

Composer Package erstellen

Unter get.typo3.org/misc/composer/helper kann ich mir für eine Typo3-Installation auf Composer basierend ein Composer Package zusammenklicken. Als Version wähle ich z. B. TYPO3 11 LTS an, wenn ich eine 11er-Version migrieren will. Ich will es mir einfach machen und klicke den Button TYPO3/FULL an, der alles auswählt. Dadurch wird oben auf der Seite ein Befehl erstellt, den ich ins Clipboard kopiere. Composer sollte auf dem Server bereits installiert sein. Dass kann man feststellen, indem man den Befehl

 

composer 

 

aufruft. Ich wechsele in das jetzt wieder leere Verzeichnis migration2c, füge den kopierten Composer-Befehl ein und führe ihn aus. Nach einiger Zeit hat Composer alles heruntergeladen. In dem Verzeichnis befinden sich nun die Dateien composer.json und composer.lock sowie die Verzeichnisse public und vendor. Installation Gebe ich in meinen Browser nun wieder das Ziel mydomain.de/migration2c ein, erscheint die Installationsmaske „Installing TYPO3 CMS“. Die Installation kann aber nur fortgeführt werden, wenn folgender Hinweis beachtet wird: „To begin the installation, create an empty file called FIRST_INSTALL in the document root of your web server.“ Ich begebe mich deshalb wieder auf meinen Server und lege im Verzeichnis /public, das mein Document Root ist, die Datei FIRST_INSTALL an:

 

sudo touch FIRST_INSTALL

 

Ich lade die Webseite neu und erhalte folgende Fehlermeldungen: Directory /public is not writable Das Verzeichnis /public ist noch nicht vom Webserver lesbar, deshalb gebe ich noch einmal ein: sudo chown -R www-data:www-data /var/www/migration2c Low PHP script execution time max_execution_time=30 Your max_execution_time is low. While TYPO3 often runs without problems with 30 seconds, it may still happen that script execution is stopped before finishing calculations. You should monitor the system for messages in this area and maybe raise the limit to 240 seconds: max_execution_time=240 PHP max_input_vars very low max_input_vars=1000 This setting can lead to lost information if submitting forms with lots of data in TYPO3 CMS (as the install tool does). It is highly recommended to raise this to at least 1500: max_input_vars=1500 Ich will den Empfehlungen folgen und öffne die php.ini unter /etc/php/7.4/apache2. Dort setze ich max_execution_time auf 240 und max_input_vars auf 1500. Nach

 

sudo systemctl reload apache2

 

refreshe ich den Browser und die Fehlermeldungen sind verschwunden. Anschließend wird eine Verbindung zur Datenbank aufgebaut. Ich gebe den Usernamen und das Passwort meines Mysql-Datenbankservers ein. Wieder eine Seite weiter vergebe ich z.B. den Datenbanknamen projekt1b_db. Zum Schluss setze ich meinen Usernamen, eine Passwort und meine E-Mailadresse ein. Mit „Take me straight to the backend“ öffne ich das Backend. Ich wähle bei den Admin Tools „Extensions“ an und sehe, dass die Seite im „Composer mode“ arbeitet. Datenbank importieren Zu Beginn habe ich mir ein Sicherheitskopie meiner Typo3-Installation angelegt. Nehmen wir an, die gesicherte Datenbank heißt projekt1a_db. Bei der Composer-basierten Typo3-Installation gerade habe ich eine Datenbank mit dem Namen projekt1b_db erzeugt. Jetzt sollen die Daten von der gesicherten Datenbank projekt1a_db in die neue Datenbank projekt1b_db kopiert werden. Dazu gebe ich im Terminal ein:

 

mysql -h localhost -u DATENBANK-USERNAME -p projekt1b_db < projekt1a_db

 

Nachdem ich das Datenbank-Passwort eingegeben habe werden die Daten von der Datenbank projekt1a_db in die Datenbank projekt1b_db übertragen. Ich lade die Seite neu und befinde mich in der Anmeldemaske und melde mich wieder an. Im Typo3-Backend öffen ich Web > Pages und sehe, dass die Baumstruktur vorhanden ist. Ich kopiere das Verzeichnis „sides“ aus meinem alten Projekt, das unter typo3conf liegt, in meine neue Installation nach /config, das auf der gleichen Ebene wie /public liegt. Im Backende der neuen Seite sollte nun auch diese Side-Konfiguration zu sehen sein. Alternativ kann ich auch unter Side-Management > Sites die Einträge selbst vornehmen. Den Entry Point muss ich in beiden Fällen auf meine neue Installation anpassen. Falls ich noch Extensions benötige, kann ich diese auf der Ebene mit der config.json mit folgendem Befehl installieren:

 

composer require vendor/package

 

Falls man mal eine Extension installiert hat, die Probleme bereitet kann man sie folgendermaßen wieder deinstallieren:

 

composer remove vendor/package

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

* Diese Felder sind erforderlich.

Bemerkungen :

  • user
    UlXnPhIwfdEoVyui 14.04.2024 um 02:42
    ogyHIRGMupeD
  • user
    UlXnPhIwfdEoVyui 14.04.2024 um 02:42
    ogyHIRGMupeD
  • user
    DZEwAJoWqcVRKOBU 14.04.2024 um 02:42
    fgcaXnqpxuFYW
  • user
    DZEwAJoWqcVRKOBU 14.04.2024 um 02:41
    fgcaXnqpxuFYW
  • user
    XzqNFSlUsYcWgH 14.04.2024 um 02:41
    maATQKnpPv
  • user
    XzqNFSlUsYcWgH 14.04.2024 um 02:41
    maATQKnpPv
  • user
    XKYDUCcBFyihv 13.03.2024 um 05:53
    GvVudoeF
  • user
    XKYDUCcBFyihv 13.03.2024 um 05:53
    GvVudoeF
  • user
    gUPcApqOjWmXnk 13.03.2024 um 05:53
    KGjrEtUJvpmoD
  • user
    gUPcApqOjWmXnk 13.03.2024 um 05:53
    KGjrEtUJvpmoD
  • user
    GfarcDXNplSB 13.03.2024 um 05:53
    YbJhPiXnkBCVGEr
  • user
    GfarcDXNplSB 13.03.2024 um 05:53
    YbJhPiXnkBCVGEr
  • user
    qtbRIlGUN 13.03.2024 um 05:52
    RPxcSoyksuU
  • user
    qtbRIlGUN 13.03.2024 um 05:52
    RPxcSoyksuU
  • user
    INiehPQfZTsDj 13.03.2024 um 05:52
    PUiXdoAtTWZarc
  • user
    INiehPQfZTsDj 13.03.2024 um 05:52
    PUiXdoAtTWZarc
  • user
    BZFgVpArU 23.02.2024 um 08:16
    mbcTHQujtJ
  • user
    BZFgVpArU 23.02.2024 um 08:16
    mbcTHQujtJ
  • user
    DTWEBuYHfp 23.02.2024 um 08:16
    JPKhAgUqOklE
  • user
    DTWEBuYHfp 23.02.2024 um 08:16
    JPKhAgUqOklE
  • user
    RnKIMxhFlTort 23.02.2024 um 08:15
    MRkZaUHBAtbSn
  • user
    RnKIMxhFlTort 23.02.2024 um 08:15
    MRkZaUHBAtbSn
  • user
    HvfEbQVM 23.02.2024 um 08:15
    KshocPyOVa
  • user
    HvfEbQVM 23.02.2024 um 08:15
    KshocPyOVa
  • user
    EtdShPeyszG 23.02.2024 um 08:15
    GfaLpdKFuZ
  • user
    EtdShPeyszG 23.02.2024 um 08:15
    GfaLpdKFuZ
  • user
    ogzZPRXvyHWn 06.02.2024 um 01:55
    vnpJsgHXZ
  • user
    ogzZPRXvyHWn 06.02.2024 um 01:55
    vnpJsgHXZ
  • user
    eOqsHSkMB 06.02.2024 um 01:55
    JTQoRpjtBesMISG
  • user
    eOqsHSkMB 06.02.2024 um 01:55
    JTQoRpjtBesMISG
  • user
    eMqYkBPCf 06.02.2024 um 01:55
    cLAgIrtGp
  • user
    eMqYkBPCf 06.02.2024 um 01:55
    cLAgIrtGp
  • user
    CDcviahU 06.02.2024 um 01:54
    wezyBImuv
  • user
    CDcviahU 06.02.2024 um 01:54
    wezyBImuv
  • user
    zyCIHRBJsGfAO 06.02.2024 um 01:54
    qSjUplagBMZWKCr
  • user
    zyCIHRBJsGfAO 06.02.2024 um 01:54
    qSjUplagBMZWKCr
  • user
    jrsumYhx 28.01.2024 um 06:20
    wIERAMgYjKte
  • user
    jrsumYhx 28.01.2024 um 06:20
    wIERAMgYjKte
  • user
    wmLCUpTzsMANkq 28.01.2024 um 06:20
    mnBuckVeySHKR
  • user
    wmLCUpTzsMANkq 28.01.2024 um 06:20
    mnBuckVeySHKR
  • user
    TOGrnWvEHjS 28.01.2024 um 06:20
    YRhElmwNTD
  • user
    TOGrnWvEHjS 28.01.2024 um 06:20
    YRhElmwNTD
  • user
    HjZsOwgmoF 28.01.2024 um 06:20
    PBgtivdUjLCKHO
  • user
    HjZsOwgmoF 28.01.2024 um 06:20
    PBgtivdUjLCKHO
  • user
    BgAZVaxe 28.01.2024 um 06:19
    bwaBZcjK
  • user
    BgAZVaxe 28.01.2024 um 06:19
    bwaBZcjK