L'objectif de cette conférence est de faire le tour des étapes nécessaires pour qu'une mise à jour de TYPO3 se déroule correctement.
Différents point sont abordés comme par exemple les outils qui peuvent nous accompagner lors des mises à jour, les aspects de l'environnement technique ou encore les actions automatiques et manuelles à effectuer (script Shell ou Module Installation).
5. Analyse de l'existant
Environnement technique
PHP
• Version
• Variables php.ini
• Extensions chargées
Type / Version de l'OS
Base de données
• Version
• Encodage
Serveur d'application
• Type (apache / IIS / ...)
• Version
• Modules chargés Liste des CRON
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
6. Analyse de l'existant
Environnement TYPO3
• Version de TYPO3
• Encodage
• Liste des extensions
• Extensions du TER
• Développements spécifiques
• XCLASS
• Hooks
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
7. Environnement de travail
https://github.com/Apen/TYPO3-backup/blob/master/saveTypo3Website.sh
• Effectuer une sauvegarde de l'instance TYPO3 de production
• Travailler dans le même environnement applicatif (sauf montée de version)
• Travailler dans un environnement de TEST
• Versionner vos scripts et éventuellement les développements spécifiques
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
9. Rappel - Architecture des fichiers
http://typo3.org/documentation/document-library/guides/doc_guide_install/2.0.2/view/
fileadmin : fichiers utiles pour la contribution
typo3conf : configuration du site
uploads : fichiers attachés à des enregistrements
de la BD
typo3temp : fichiers temporaires générés par
TYPO3
sources : t3lib / typo3 / index.php
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
10. Les étapes de la mise à jour
1. Sauvegarder !
2. Installer les nouvelles sources
3. "Upgrade wizard"
4. "Compare database"
5. Vider les caches :
a) truncate cache_*
b) Vider typo3temp
c) Supprimer temp_CACHED_*
6. Reinitialiser les paramètres utilsateurs
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
14. Différences entre les versions de TYPO3
De nombreuses nouvelles versions : 4.5 LTS, 4.6, 4.7... 6.0 ?!?
• Le cycle de développement d’une nouvelle version est passé à 6 mois
• Pour l'instant la version conseillée pour un support optimal est la 4.5
Pour toutes versions inférieures à la 4.1, il faut :
1. mettre à jour en 4.1
2. mettre à jour en 4.5
3. mettre à jour en 4.7
Pour toutes versions supérieures à la 4.1, il faut :
1. mettre à jour en 4.5
2. mettre à jour en 4.7
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
16. Passage à la 4.2
http://wiki.typo3.org/Upgrade#Upgrading_from_4.1_to_4.2
Compatible PHP 5.1.x/5.2.x
UTF-8 non obligatoire
Certains champs sont passés de BLOB à TEXT (notamment le champ
"config" des gabarits typoscript).
Il est donc indispensable de passer par une conversion, exemple:
ALTER TABLE `sys_template` CHANGE `config` `zzz_deleted_config` BLOB NOT NULL;
ALTER TABLE `sys_template` ADD `config` TEXT NOT NULL AFTER `zzz_deleted_config`;
UPDATE `sys_template` SET `config` = CAST(`zzz_deleted_config` AS CHAR);
ALTER TABLE `sys_template` DROP `zzz_deleted_config`;
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
17. Passage à la 4.3
http://wiki.typo3.org/Upgrade#Upgrading_to_4.3
PHP 5.2.x obligatoire
UTF-8 conseillé
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
18. Passage à la 4.4
http://wiki.typo3.org/Upgrade#Upgrading_to_4.4
Même démarche que pour une 4.3
PHP 5.2.x obligatoire / 5.3.x supporté
UTF-8 conseillé
Possible problèmes de skins (t3skin)
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
19. Passage à la 4.5
http://wiki.typo3.org/Upgrade#Upgrading_to_4.5_Long_Term_Support
PHP 5.2.x obligatoire / 5.3.x supporté
UTF-8 obligatoire
Utilisation de Swiftmailer conseillée pour les mails
Workspaces
Vérification des fonctions dépréciées avec le deprecated.log (en
prévision d'une passage vers la 4.5>)
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
20. Passage à la 4.6
http://wiki.typo3.org/Upgrade#Upgrading_to_4.6
PHP 5.3.x obligatoire
UTF-8 obligatoire
Utilisation de Swiftmailer obligatoire pour les mails
Certaines propriétés du RTE dépréciées (upgrade wizard)
Fonctions dépréciées supprimées
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
21. Passage à la 4.7
http://wiki.typo3.org/Upgrade#Upgrading_to_4.7
PHP 5.3.x obligatoire
UTF-8 obligatoire
Suppression de :
$TYPO3_CONF_VARS['BE']['forceCharset']
$TYPO3_CONF_VARS['SYS']['setDBinit']
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
23. Conversion UTF-8 de la base de données
http://wiki.typo3.org/UTF-8_support#Convert_an_already_existing_database_to_UTF-8
mysqldump -u (user) -p(pass) --max_allowed_packet=10000000 typo3 > typo3_utf8.sql
+
sed -e 's/latin1_swedish_ci/utf8_general_ci/g' -i "" typo3_utf8.sql
Si besoin : iconv -f iso-8859-1//TRANSLIT//IGNORE -t utf8 typo3_utf8.sql > dump-iconv.sql
+
mysql -u (user) -p(pass) --default-character-set=utf8 typo3 < typo3_utf8.sql
Convient dans la plupart des cas, mais il y a toujours des cas particuliers...
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
24. Conversion UTF-8 du backend
http://wiki.typo3.org/UTF-8_support#TYPO3_settings
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;';
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
Toujours tester l'ajout et le rendu de contenu pour vérifier l'encodage
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
25. Conversion des templates
Si nécessaire...
Pour TemplaVoilà comme pour les autres systèmes
Manuellement avec un éditeur de texte
ou
iconv
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
26. Conversion des fichiers
Si nécessaire...
Peut concerner certains fichiers locallang ou PHP
Manuellement avec un éditeur de texte ou iconv
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
27. Mise à jour des extensions
-
Extensions du TER
28. Extensions du TER
Méfiez-vous des évolutions...
• Vérifier que l'extension soit toujours supportée (et éventuellement changer)
• Vérifier sur typo3.org les changements apportés à chaque version
• Vérifier que la version soit compatible avec la version de TYPO3 visée (ex:
direct_mail et la 4.7)
• Vérifier que la nouvelle version n'a fonctionnellement pas changé (ex: powermail
et les templates)
Bref, tester, tester, et tester !!!
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
29. Mise à jour des extensions
-
Développements spécifiques
30. Développement spécifique
Vérification de la qualité du code - le plus facile...
• Fonctions dépréciées avec le deprecated.log
• Compatibilité avec PHP 5.3 >
• Code HTML "en dur" (labels)
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
31. Développement spécifique
Vérification de la compatibilité du code - Le plus dur...
• Vérification de l'existence des hooks (à priori toujours existant sauf
refonte de code)
• Vérification des XCLASS (contrôle des classes et méthodes
surchargées)
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
32. Vérification fonctionnelle
Est-ce que ça marche encore ?
Pour chaque plugin/module/...:
• On vérifie manuellement les fonctionnalités frontend ou backend
• Execution de tests unitaires
• Éventuellement, exécution de scénarios sous Selenium IDE
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3
34. Mise à jour des traductions
http://translation.typo3.org/
• Vérifier que les traductions n'ont pas évolué
• Et eventuellement contribuer à la traduction de l'extension :-)
T3UNI12
26.06.2012
Réussir sa mise à jour de TYPO3