Typo3 - Update

Aus Wikizone
Wechseln zu: Navigation, Suche

Update alter Typo3 Installationen (<V.3.8)

Aus der Mailing Liste Östereich: - der Core ist relativ easy (fast) immer zu upgraden (muesst' eigentlich von v3.3 auch gehen ;-) ) - Achte immer auf installierte Extensions

  • wenn etwas nicht geht, mal soweit wie moeglich alle Extensions wegschalten (nicht loeschen!).
  • dann zuschalten; wenns dann hakt, dann sieht man gleich welche ext "boese" ist.
  • dann diese ext updaten, wenns keine updates gibt, mal danach googlen.
  • wenns dann net geht, debuggen..

Weitere Probleme:

Alte TS Templates arbeiten noch mit CSet und Content als default Template. Nach umstellen auf css-styled-content muß evt. einiges angepasst werden:

Update auf 4.1

Unbedingt im Install Tool Compare ausführen und Tabellen aktualisieren. Sonst kann es Probleme mit verschiedenen Extensions geben (z.B. Login..)

Release Notes Version 4.1

Die wichtigsten Neuerungen

  • IRRE (Inline Relational Record Editing)
  • AJAX Page and File Tree
  • Clean-up functions (command line scripts)(Über Extension lowlevel)
  • Improved Extension Manager (less memory, stored extension list)
  • UTF-8 for filenames
  • Backend "Who is online"
  • Frontend "Stay logged in" (Konfiguration mit new login box)
  • MySQL InnoDB (Wird automatisch bei Neuinstallation zur Verfügung gestellt, wenn es in mySQL aktiviert ist)
  • Speed up Backend with .htaccess http://typo3.org/development/articles/release-notes-41/page/4/)


Manuelles ändern der Tabellen auf InnoDB

alter table cache_hash ENGINE = INNODB;
alter table cache_imagesizes ENGINE = INNODB;
alter table cache_md5params ENGINE = INNODB;
alter table cache_pages ENGINE = INNODB;
alter table cache_pagesection ENGINE = INNODB;
alter table cache_typo3temp_log ENGINE = INNODB;
alter table fe_sessions ENGINE = INNODB;
alter table fe_session_data ENGINE = INNODB;
alter table index_fulltext ENGINE = INNODB;
alter table index_grlist ENGINE = INNODB;
alter table index_phash ENGINE = INNODB;
alter table index_rel ENGINE = INNODB;
alter table index_section ENGINE = INNODB;
alter table index_stat_search ENGINE = INNODB;
alter table index_stat_word ENGINE = INNODB;
alter table index_words ENGINE = INNODB;
alter table sys_log ENGINE = INNODB;

Generelle Informationen zum Update unter Linux

Quelle: typo3.net Mai 2006


Typo3 ist normalerweise sehr einfach upzudaten - allerdings müssen ein paar Dinge beachtet werden, um updatefähig zu bleiben:


  • Es dürfen keine Änderungen an dem Typo3-Sourcecode gemacht worden sein. Falls dieses doch gemacht wurde, müssen natürlich diese Änderungen erst in die neue Version eingearbeitet werden.
  • Installierte Extensions sollten möglichst immer LOCAL installiert worden sein. So bleiben diese nach dem Tausch des Typo3-Sourcecodes unberührt und funktionieren nach dem Update (meist) wie gewohnt. Es gibt nur selten den Fall, daß eine Typo3-Version eine Funktion nicht mehr verwendet, die es in der alten Version noch gab.
  • Wenn sie HTML-Templates von GLOBAL installierten Erweiterungen direkt im Extensionordner modifiziert haben sollten, müssen diese erst z.B. in den fileadmin kopiert werden. Dann können Sie den Pfad zu dieser Datei im TypoScript anpassen.

Den Pfad finden Sie überigens mithilfe des TypoScript-Object-Browsers schnell. Meist ist er an der Stelle plugin.extensionname.templateFile zu finden.


Datei:T3 wichtigeVerzeichnisse.gif

Einige der wichtigsten Verzeichnisse


Das Update für mittwaldmedien Kunden Für unsere Kunden ist es nun besonders einfach, die vorhandene Installation auf die aktuelle Version zu bringen. Sie müssen sich nur auf der Webseite http://www.typo3server.com einloggen. Nach dem Login finden Sie ein Menü mit einem Link zu dem Typo3-Versionsmanager. Dort können Sie mit einem Klick Ihren Account auf die neue Version updaten.

ToDo Versionsmanager für Geo-bit


Manuelles Update

Für diejenigen, die dieses Update manuell machen wollen oder müssen, sind die folgenden Schrittenötig. Die Beispiele - vor allem die Pfade - müssen natürlich angepasst werden. Die Beispiele gehen davon aus, daß Sie eine Verzeichnisstruktur angelegt haben, die dem obigen Bild entspricht.

1. Machen Sie zuerst eine Datensicherung von dem Typo3-Sourcen und Ihrem html-Ordner! Die Datenbank können Sie nun über diesen Befehl sichern:

mysqldump -u benutzername -p -B --add-drop-table datenbank > typo3DBSicherung.sql

Notfalls könnte auch ein Dump mit phpMyAdmin erstellt werden.

2. Verbinden Sie sich mit Ihrem Server über SSH.

3. Wechseln Sie das Verzeichnis auf einer Ebene über dem Rootverzeichnis Ihres Webservers. z.B.: cd /home/www/p1234/

4. Laden Sie sich die neuen Typo3-Sourcen auf ihren Linuxrechner. Die aktuellen Sourcen finden Sie unter: http://typo3.org/download/packages/.

Die benötigte Datei hat das Format typo3_src-3.x.x.tar.gz


Beispiel:

wget belnet.dl.sourceforge.net/sourceforge/typo3/typo3_src-3.7.0.tar.gz

5. Entpacken Sie die Datei mit dem Kommando:

Beispiel:

tar -xzvf typo3_src-3.x.x.tar.gz

6. Ändern Sie nun die Rechte so, wie der bisherige Typo3-Sourcecode-Ordner sie hatte.

Beispiel:

chown p1234.ftponly typo3_src-3.7.0 -R

7. Entfernen Sie den alten symbolischen Link mit:

rm typo3_src

8. Legen Sie nun einen neuen Link an mit:

ln -s typo3_src-3.x.x typo3_src

(Die Versionsnummer müssen Sie natürlich noch anpassen.)

9. Nun muss die Datenbank noch aktualisiert werden:

Gehen Sie hierzu in das Typo3-Installtool und klicken Sie auf den 2. Menüpunkt Database Analyser. Mit einem Klick auf Compare werden die zu ändernden oder zu ergänzenden Datenbankfelder angezeigt. Mit einem Klick auf "Write to database" wird die Datenbank an die neue Typo3-Version angepasst.

10. Loggen Sie sich nun als Admin im Backend an und löschen Sie alle Caches.

Neu in Version 4

  • Conditions mit AND und OR (|| &&)

Neu in 4.2

Viele Usability Verbesserungen im Backend

Update auf 4.2

Extensions Updaten

  • dam 1.0.11 ist nicht kompatibel Update auf min. 1.0.13
  • date2cal auf >= 7.1.0
  • Kickstarter 0.3.8 ist nicht kompatibel
  • Developer tools gehen nicht mehr (wg. Frame oben)

Ablauf

  • Backend Benutzer sperren (only Admins)
  • Sicherung der Datenbank
  • neue Source + Symlink
  • Update Wizard
  • Compare

Probleme

DAM Upload geht für Benutzer nicht mehr (Fehler Meta Daten können nicht geschrieben werden) Beim neu indizieren geht dem dam der Media Ordner verloren. Er legt dann einen neuen an, in den er scheiben möchte. Die Benutzer sind abe noch auf den alten eingestellt. D.h. die Benutzergruppen m´üssen auf den neuen eingestellt werden.

Im Dam stehen im IE7 die Benutzerwerkzeuge nicht zur verfügung (löschen etc.) nur der Stift ist noch da.

Lösung: Das Problem ist das CSS für das Fenster. Es verdeckt die restlichen Symbole Forum: 24.7.

Ich hatte das gleiche Problem bis vor 5 Minuten auch, gelöst habe ich es so: - Datei: class.tx_dam_listbase.php im Ordner DAM\lib\ Unter der Zeile 256 ('itemTD' => ' class="typo3-dblist-item"',) ist in 3 Werten als Breite 1% angegeben. Das auskommentieren

- Datei: stylesheet.cdd in typo3_src\typo3\ table.typo3-dblist width: 98%; durch width: auto; ersetzen und in table.typo3-dblist tr td {width: auto;} einsetzen,

damit hats bei mir im IE 7, Firefox, safari für Win und Opera alles richtig angezeigt :-)

Ich hoffe, geholrfen zu haben, Schmoozer


Bug in Mount Points

Datenbank über Root Shell sichern (mysql backup)

mysqldump -opt ...

Beispiele

Die häufigste Anwendung von mysqldump ist wahrscheinlich die Erstellung eines Backups einer vollständigen Datenbank:

shell> mysqldump --opt db_name > backup-file.sql

oder mit User und Passwortangabe:

mysqldump -u meinDBUser -pGEHEIM db_name > backup.sql

--opt ist in neueren MySQL Versionen Standardmäßig an deshalb lassen wir es mal weg.

Die Speicherauszugsdatei können Sie wie folgt wieder einspielen.

shell> mysql db_name < backup-file.sql


Oder aber so:

shell> mysql -e "source /path-to-backup/backup-file.sql" db_name

mysqldump ist ferner sehr nützlich zum Ausfüllen von Datenbanken durch Kopieren von Daten von einem MySQL Server auf einen anderen:

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

Sie können mit einem einzigen Befehl einen Speicherauszug mehrerer Datenbanken erstellen:

shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql

Um einen Speicherauszug aller Datenbanken zu erstellen, verwenden Sie die Option --all-databases:

shell> mysqldump --all-databases > all_databases.sql

Bei InnoDB-Tabellen bietet mysqldump die Möglichkeit, eine Online-Sicherung zu erstellen:

shell> mysqldump --all-databases --single-transaction > all_databases.sql

Diese Datensicherung muss vor Beginn des Speicherauszugsvorgangs lediglich (mit FLUSH TABLES WITH READ LOCK) eine globale Lesesperre für alle Tabellen erwirken. Sobald diese Sperre aktiv ist, werden die Koordinaten des Binärlogs ausgelesen, und die Sperre wird aufgehoben. Wenn beim Absetzen der FLUSH-Anweisung gerade eine umfangreiche Änderungsanweisung ausgeführt wird, dann – und nur dann! – kann der MySQL Server stehen bleiben, bis diese lange Anweisung ausgeführt ist; danach ist der Server sperrfrei. Wenn die vom MySQL Server empfangenen Änderungsanweisungen (in Bezug auf ihre Ausführungsdauer) kurz sind, sollte die anfängliche Sperrperiode auch bei vielen Änderungen nicht spürbar sein.

Bei der Point-in-Time-Wiederherstellung (die auch als „Roll-Forward“ bezeichnet wird, wenn Sie ein altes Backup wiederherstellen und die seitdem durchgeführten Änderungen neu aufspielen müssen) ist es häufig nützlich, das Binärlog zu rotieren (siehe Abschnitt 5.12.3, „Die binäre Update-Logdatei“) oder zumindest die Binärlogkoordinaten zu kennen, denen der Speicherauszug entspricht:

shell> mysqldump --all-databases --master-data=2 > all_databases.sql

Oder:

shell> mysqldump --all-databases --flush-logs --master-data=2
             > all_databases.sql

Mass Update Script

Ein Massen Update Script von:

http://typofree.org/article/archive/2009/january/title/typo3-mass-upgrade-script/ Zugriff am 12.3.2009

http://typofree.org/article/archive/2009/january/title/typo3-mass-upgrade-script/

TYPO3 mass update script

  1.
     #!/bin/sh
  2.
     binDir=/usr/bin/
  3.
     sleep=2
  4.
      
  5.
     pageCacheTables=(
  6.
             cache_pages
  7.
             cache_pagesection
  8.
     )
  9.
      
 10.
     sites=(
 11.
             /var/www/sites/live/www.somedomain.tld
 12.
             /var/www/sites/live/www.someotherdomain.tld
 13.
             /var/www/sites/live/www.yetsomeotherdomain.tld
 14.
     )
 15.
      
 16.
     len=${#sites[*]}
 17.
     pageCacheTablesLength=${#pageCacheTables[*]}
 18.
     i=0
 19.
     while [ $i -lt $len ]; do
 20.
             echo updating: ${sites[$i]}
 21.
                     cd ${sites[$i]}
 22.
                     rm typo3_src
 23.
                     ln -s ../../sources/typo3_src-4.2.5 typo3_src
 24.
      
 25.
             echo generating new key
 26.
                     k=0
 27.
                     key=
 28.
                     while [ $k -lt 96 ]; do
 29.
                             key=$key$(head -100 /dev/urandom | md5sum | cut -c1)
 30.
                             let k++
 31.
                     done
 32.
                     echo key: $key
 33.
                     sed -i "s/\(\$TYPO3_CONF_VARS\['SYS']\['encryptionKey'] = \).*/\1'$key';/g" typo3conf/localconf.php
 34.
            
 35.
             echo removing configuration cache
 36.
                     rm -f typo3conf/temp_CACHED*
 37.
      
 38.
             echo clearing page cache
 39.
                     # For some insane reason some values are enclosed in double qotes
 40.
                     database=$(grep "typo_db " typo3conf/localconf.php | tail -1 | sed "s/^[^']*'\([^']*\)'.*/\1/" | grep '$typo_db =')
 41.
                     if [ -z "$database" ] ; then
 42.
                             database=$(grep "typo_db " typo3conf/localconf.php | tail -1 | sed "s/^[^']*'\([^']*\)'.*/\1/")
 43.
                     else
 44.
                             database=$(grep "typo_db " typo3conf/localconf.php | tail -1 | sed "s/^[^\"]*\"\([^\"]*\)\".*/\1/")
 45.
                     fi
 46.
                     username=$(grep "typo_db_username " typo3conf/localconf.php | tail -1 | sed "s/^[^']*'\([^']*\)'.*/\1/" | grep '$typo_db_username =')
 47.
                     if [ -z "$username" ] ; then
 48.
                             username=$(grep "typo_db_username " typo3conf/localconf.php | tail -1 | sed "s/^[^']*'\([^']*\)'.*/\1/")
 49.
                     else
 50.
                             username=$(grep "typo_db_username " typo3conf/localconf.php | tail -1 | sed "s/^[^\"]*\"\([^\"]*\)\".*/\1/")
 51.
                     fi
 52.
                     password=$(grep "typo_db_password " typo3conf/localconf.php | tail -1 | sed "s/^[^']*'\([^']*\)'.*/\1/" | grep '$typo_db_password =')
 53.
                     if [ -z "$password" ] ; then
 54.
                             password=$(grep "typo_db_password " typo3conf/localconf.php | tail -1 | sed "s/^[^']*'\([^']*\)'.*/\1/")
 55.
                     else
 56.
                             password=$(grep "typo_db_password " typo3conf/localconf.php | tail -1 | sed "s/^[^\"]*\"\([^\"]*\)\".*/\1/")
 57.
                     fi
 58.
                     j=0
 59.
                     while [ $j -lt $pageCacheTablesLength ];
 60.
                     do
 61.
                             nice -n 19 ${binDir}mysql --batch -u$username -p"$password" -D$database -e "TRUNCATE ${pageCacheTables[$j]}"
 62.
                             nice -n 19 ${binDir}mysql --batch -u$username -p"$password" -D$database -e "ALTER TABLE ${pageCacheTables[$j]} auto_increment=1"
 63.
                             let j++
 64.
                     done
 65.
      
 66.
             echo "done! Sleeping $sleep seconds . . ."
 67.
                     sleep $sleep
 68.
      
 69.
             echo
 70.
       let i++
 71.
     done