TYPO3 Upgrade von Version 6.2 auf Version 7 LTS
TYPO3 7 LTS runterladen und installieren
Source neu Verlinken:
1 2 3 4 |
rm typo3_src ln -s ../../typo3_src-7.6.latest typo3_src #inhalt von typo3temp löschen rm -rf typo3temp/* |
Fehler nach Source neu verlinken:
1 2 3 |
#1382276561: The package "sys_action" depends on "taskcenter" which is not present in the system. (More information) UnexpectedValueException thrown in file /var/www/TYPO3_7_LTS.CMS.git/typo3/sysext/core/Classes/Package/DependencyResolver.php in line 95. |
Das ist ein Fehler aus dem Packagemanager. Lösung: PackagesStates.php löschen, es generiert sich dann von selbst neu. Hat aber zur Folge, dass alle Extension deaktivert werden, welche nicht absolut notwendig für die Lauffähigkeit sind.
1 |
rm typo3conf/PackagesStates.php |
Siehe auch hier: https://wiki.typo3.org/Exception/CMS/1382276561
Aufräumen
Auf deleted gesetzte Einträge Löschen, entweder über den Recycler von Hand oder direkt auf der Datenbank:
1 2 3 4 |
DELETE FROM `tt_content` WHERE `deleted` = 1; DELETE FROM `pages` WHERE `deleted` = 1; DELETE FROM `pages_language_overlay` WHERE `deleted` = 1; DELETE FROM `sys_file_reference` WHERE `deleted` = 1; |
Unkompatible Extension entfernen oder kompatibel machen:
Seite aufrufen. http://www.bespiel.ch (Bei mir kommt ein 500 Server-Error, der durch die Extension automaketemplate Version 0.2.0 ausgelöst wird. Die Version 0.2.0 ist nicht kompatible mit TYPO7 LTS. (https://typo3.org/extensions/repository/view/automaketemplate)
1 |
PHP Fatal error: Class 't3lib_extMgm' not found in /var/www/bespiel.ch/typo3/typo3conf/ext/automaketemplate/ext_localconf.php on line 4 |
Darum entferne ich die Extension automaketemplate und auch perfectlightbox, welche denselben Fehler ausspuckt.
1 |
mv typo3conf/ext/automaketemplate/ mv typo3conf/ext/perfectlightbox/ . |
danach lösche ich nochmals das typo3temp:
1 |
rm -rf typo3temp/* |
Nun kommt beim Aufruf der Seite einfach eine weisse Seite ohne Fehlermeldung. Das ist soweit ok für mich.
Im Backend (http://www.bespiel.ch/typo3/) kommt aber:
Property TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext::$configurationManager does not exist
Extension TYPO3 7 LTS kompatibel machen:
1 2 3 4 5 6 7 |
cd typo3conf/ext/vg_keywordindex # alte function calls auf neue function calls mapppen find . -type f -print0 | xargs -0 sed -i 's#t3lib_extMgm::#\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::#g' find . -type f -print0 | xargs -0 sed -i 's#t3lib_div::loadTCA#///t3lib_div::loadTCA#g' && \ find . -type f -print0 | xargs -0 sed -i "s#require_once(PATH_tslib.'class.tslib_pibase.php')#///require_once(PATH_tslib.'class.tslib_pibase.php)#g" find . -type f -print0 | xargs -0 sed -i "s#if (!class_exists('tslib_pibase'))#///if (!class_exists('tslib_pibase'))#g" find . -type f -print0 | xargs -0 sed -i 's#extends tslib_pibase#extends TYPO3\\CMS\\Frontend\\Plugin\\AbstractPlugin#g' |
quellen: https://wiki.typo3.org/TYPO3_CMS_7.0
Installer
Ich gehe aber nun in zum Installer: http://www.bespiel.ch/typo3/install, da werde ich aufgefordert, das FIRST_INSTALL anzulegen (im root):
1 |
touch FIRST_INSTALL |
Dann werde ich aufgefordert, das ENABLE_INSTALL_TOOL anzulegen:
1 |
touch typo3conf/ENABLE_INSTALL_TOOL |
Login in den Installer mit dem eigenen Passwort:
http://www.bespiel.ch/typo3/install
Important actions
Database Analyzer
Würde ich erst nach den „Upgrade Wizard durchführen“. Achtung: Wenn man Extension temporär deaktiviert hat, dann werden auch diese Felder unbennent zum späteren Löschen. Ich würde nur „Change fields“ ausführen und das andere erst nach Abschluss aller Upgrade arbeiten machen.
Clear all cache
Hier „Clear all cache“ machen. Das half auch mit dem Fehler: „$configurationManager does not exist“. Beim Clear all cache kommt bei mir eine Errormeldung. Ich benutzt extTables.php in einigen Projekten. Ich kommentiere die fehlerhafte Zeile in extTables.php aus
1 2 |
Detected Fatal Error Class 't3lib_div' not found in /var/www/schwulengeschichte.ch/typo3/typo3conf/extTables.php on line 33 |
Check for broken extensions
Zeigt fehlerhafte und unkompatible Extension an
Configuration presets
Hier empfehle ich starkt, die empfohlenen Voreinstellungen zu nutzen. Auch nutze ich lieber Graphics Magick, da dieser beim PDF in Bilder umwandeln die besseren Ergebnisse zeigt.
Upgrade Wizard
Wie immer, einfach durchklicken
Installs extension „compatibility6“ from TER: nicht Installieren, da wir ja upgraden möchten und wenn möglich ohne diese Extension auskommen wollen.
Database Analyzer:
System environment
Alle Checks sollten grün sein, wenn nicht, dieses Problem beheben.
Folder Structure
Als erstes installiere ich typo3_console:
1 |
./typo3/cli_dispatch.phpsh extbase extension:install typo3_console |
ExtTables.php ist deprecated
typo3conf/ExtTables.php ist „deprecated“, spätestens für TYPO3 8 LTS muss man eine andere Lösung finden um das TCA zu modifizieren, zb um das Feld tt_content.subheader anzuzeigen. (Projekte: hauenstein.ch)
ausserdem gibt es zZ noch ein bug mit dem Parameter „after:header“ in der Funktion addToAllTCAtypes. mehr dazu in diesem Post
Quelle: https://wiki.typo3.org/TYPO3.CMS/Releases/7.3/Deprecation#Migration_4
select in TCA config bringt Fehler „Unknown type: select“ im Backend:
1 2 3 4 5 6 7 |
$temporaryColumn = array( 'spaceAfter' => array ( config' => array( 'type' => 'select', ) ) ); |
select braucht neue einen renderType:
1 2 3 4 5 6 7 8 |
$temporaryColumn = array( 'spaceAfter' => array ( config' => array( 'type' => 'select', 'renderType' => 'selectSingle', ) ) ); |
Quelle: https://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Select/Index.html#rendertype
Extensions
realurl V 1.x zu V 2.x
Change Tables via Install Tool or direkt über die DB:
https://github.com/dmitryd/typo3-realurl/wiki/Upgrading-from-RealURL-1.x-to-RealURL-2.x
Änderung der Page Hirarchie (Home Verlinkung), damit die Startseite nicht www.example.ch/home/ heisst:
1 2 3 |
To repeat, the proper way: Put content of the home page to the root page Make a subpage named Home as a shortcut to your root page. |
Vielleicht Inhalte verschieben über DB:
1 |
UPDATE `t3-karling_c`.`tt_content` SET `pid` = '1' WHERE `tt_content`.`pid` =7 |
und bei unseren Installationen, da es <body id=“pid7″ class=“rpid7″> heisst:
im template Ordner:
1 2 |
sed -i 's#pid7#pid1#g' * sed -i 's#pid7#pid1#g' */* |
Achtung: Wenn pid = 1 NICHT rpid1! sonder rpid : <body id=“pid1″ class=“rpid“>