Ergebnis 1 bis 3 von 3

Thema: Erstellen einer kompletten Kopie der Installation

  1. #1
    Contao-Nutzer
    Registriert seit
    16.01.2016.
    Beiträge
    14

    HTML Erstellen einer kompletten Kopie der Installation

    Hallo,

    hatte bei mir die Aufgabe, dass ich eine Kopie meiner produktiven 4.9.35 Contao Installation benötigt habe, um ein paar Template Änderungen auszuprobieren.
    Da dachte ich mir,... das hat sicher schon jemand gebraucht. Gefunden habe ich dann https://community.contao.org/de/show...on-duplizieren
    Gut beschrieben aber auch schon fast 11 Jahre alt...

    Da mir die allwissende Müllhalde nichts anderes brauchbares ausgespuckt hat, habe ich mich an die Anpassung des Skriptes gemacht.

    Es erzeugt eine lokale Kopie einer Contao-Installation in einem neuen Verzeichnis und in eine (bestehende) Datenbank.
    Es funktioniert für 4.9.35. Für andere Versionen sind sicherlich Anpassungen notwendig. Die Experten dürften diese hoffentlich finden...

    • Wichtig ist, dass die Variablen am Anfang gesetzt werden. Das Passwort habe ich aufgrund Sonderzeichen in Anführungszeichen gesetzt.
    • Auch muss die Datenbank schon angelegt sein. Viele machen das ja über den Hoster, deshalb nicht hier im Skript.
    • Manche haben wohl statt einer parameters.yml eine .env Datei. Da muss dann entsprechend Schritt 4 angepasst werden.



    Code:
    #!/bin/sh
    
    PATH_SRC=
    PATH_DST=
    
    DB_HOST_SRC=
    DB_PORT_SRC=
    DB_NAME_SRC=
    DB_USER_SRC=
    DB_PASS_SRC=""
    
    DB_HOST_DST=
    DB_PORT_DST=
    DB_NAME_DST=
    DB_USER_DST=
    DB_PASS_DST=""
    
    echo "Copy contao installation"
    echo "Src folder:   ${PATH_SRC}"
    echo "    database: ${DB_NAME_SRC}"
    echo "Dst folder:   ${PATH_DST}"
    echo "    database: ${DB_NAME_DST}"
    echo ""
    echo "Destination folder and database will be cleared!"
    
    while true
    do
       read -r -p "Are you sure? [y/n] " input
       case $input in
            [yY][eE][sS]|[yY])
                    break;
                    ;;
            [nN][oO]|[nN])
                    echo "exiting..."
                    exit 1
                    ;;
            *)
                    ;;
       esac
    done
    
    echo "1/5 Clear destination folder"
    rm -rf ${PATH_DST}
    
    echo "2/5 Copy files"
    cp -a ${PATH_SRC} ${PATH_DST}
    
    echo "3/5 Duplicate database"
    mysqldump -h${DB_HOST_SRC} -P${DB_PORT_SRC} -u${DB_USER_SRC} -p"${DB_PASS_SRC}" --hex-blob --add-drop-table ${DB_NAME_SRC} | mysql -h${DB_HOST_DST} -P${DB_PORT_DST} -u${DB_USER_DST} -p"${DB_PASS_DST}" --default-character-set=utf8 ${DB_NAME_DST}
    
    echo "4/5 Adjust parameters.yml"
    CONFIGFILE=${PATH_DST}/app/config/parameters.yml
    sed -e "s/database_host: ${DB_HOST_SRC}/database_host: ${DB_HOST_DST}/g" -i ${CONFIGFILE}
    sed -e "s/database_port: ${DB_PORT_SRC}/database_port: ${DB_PORT_DST}/g" -i ${CONFIGFILE}
    sed -e "s/database_name: ${DB_NAME_SRC}/database_name: ${DB_NAME_DST}/g" -i ${CONFIGFILE}
    sed -e "s/database_user: ${DB_USER_SRC}/database_user: ${DB_USER_DST}/g" -i ${CONFIGFILE}
    sed -e "s/database_password: ${DB_PASS_SRC}/database_password: ${DB_PASS_DST}/g" -i ${CONFIGFILE}
    
    echo "5/5 Clear application cache"
    rm -rf ${PATH_DST}/var/cache/prod
    rm -rf ${PATH_DST}/var/cache/dev
    ${PATH_DST}/vendor/bin/contao-console cache:clear --no-warmup
    ${PATH_DST}/vendor/bin/contao-console cache:warmup
    
    
    echo "Finished."
    Möge es für jemanden hilfreich sein.

    Viele Grüße,
    Ruppel

  2. #2
    Contao-Fan Avatar von jscholtysik
    Registriert seit
    19.06.2009.
    Ort
    München
    Beiträge
    366

    Standard

    Hi Ruppel,


    in der offiziellen Contao Doku gibt es eine Anleitung, wie man eine Contao Installation umziehen kann. Das gilt auch für Kopien:

    https://docs.contao.org/manual/de/in...ntao-umziehen/
    Joachim
    *** Kein Backup, kein Mitleid ***

  3. #3
    Contao-Nutzer
    Registriert seit
    16.01.2016.
    Beiträge
    14

    Standard

    Hallo Joachim,

    ja, das hatte ich auch gefunden.
    Das ist natürlich allgemeiner und dann hilfreich, wenn irgendwie die Installation zerschossen ist.
    Aber ich wollte erstens eine genaue Kopie meiner Prod und zweitens einen Befehl, um diese zu bekommen.

    Viele Grüße,
    Ruppel

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •