upgrade_v11.md 8.0 KB

Upgrade v10 -> v11

Mise à jour de l'instance typo3 de la 10.4.36 vers la 11.5.29 LTS

Pour cette mise à jour, on reste en PHP 7.4.1

Analyse

Mise à niveau des extensions Opentalent

L'analyse des fichiers des extensions signale deux extensions "maison" comme incompatibles : ot_admin et ot_connect.

Au total, ce sont trois méthodes qui sont concernées par les dépréciations.

Un ticket est créé pour la mise à niveau : V8-4761

Mise à niveau des extensions tiers

Extension Version actuelle Dernière version Compatibilité Typo3 11 Compat. PHP
fluidtypo3/flux 9.7.2 9.7.4 ^11 ^7.4.0 - ^8
fluidtypo3/vhs 6.1.2 6.1.3 ^11 ^7.4.0 - ^8
georgringer/news 9.0 11.1.2 ^11.5.24 7.4 -> 8.3
helhum/typo3-console 6.6 7.1.6 ^11.5.26 >=7.4.1
causal/image_autoresize 2.1 2.2.0 ^11 ^7.4 - ^8
friendsoftypo3/frontend-editing 2.0 3.1.1 ^11.5 ?
sgalinski/lfeditor 6.0 7.1.11 ^11.5 ?
waldhacker/hcaptcha 2.0 2.1.1 ^11.5 ^7.2 - ^8
guzzle/guzzle 6.x 7.7 ^7.2 - ^8
nimut/testing-framework 5.2 6.0.1 ^11.5.3 ^7.2 - ^8.0

A priori pas de blocage, la mise à jour des extensions sera à faire en même temps que celle de typo3

Réaliser l'upgrade

  1. Faire un snapshot du serveur
  2. Maj tous les packages Typo3 de la version ^10.4 à la version ^11.5 dans le composer.json
  3. Maj les dépendances à leur dernière version compatible SAUF news, qui reste à la v9 (voir paragraphe précédent)
  4. Aller à la page /setup de typo3, et faire passer les différentes opérations de mise à jour
  5. Tester

Notes upgrade en local

  • (réglé, voir: https://github.com/FluidTYPO3/vhs/issues/1869) J'ai dû modifier le type du param ... de la classe FluidTYPO3\Vhs\ViewHelpers\Resource\CollectionViewHelper qui générait une erreur (mettre Repository comme type à la place de RecordCollectionRepository débloque la situation...)
  • Il a fallu maj le fichier cli, le nouvel emplacement de la console est /var/www/typo3/vendor/bin/typo3
  • il faut mettre à jour le .htaccess (prendre celui ici: public/typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/root-htaccess ) et le copier dans public/, puis rajouter les lignes custom en début de fichier)
  • j'ai un bug avec gzuncompress au chargement du backend, on peut le corriger avec un sh cli cache:flush
  • comme suggéré dans la doc typo3, j'ai lancé un sh cli referenceindex:update

Notes upgrade sur test

  • déploiement sur test5

    cd /var/opentalent/git/ot_typo3 git fetch origin feature/v8-4762-upgrade_v11 git checkout feature/v8-4762-upgrade_v11

    cd /var/www/typo3

  • je copie colle le contenu du composer.json dans celui de test5

    php7.4 composer.phar update

  • je met à jour le fichier cli avec le bon chemin d'accès : /var/www/typo3/vendor/bin/typo3

    mv public/.htaccess public/.htaccess.old cp public/typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/root-htaccess public/.htaccess

  • je rajoute les premières lignes custom du .htaccess

    touch public/typo3conf/ENABLE_INSTALL_TOOL

  • je me rends à l'adresse https://sub.test5.opentalent.fr/typo3/install.php

  • je lance la maj de la structure de la DB

  • je lance l'upgrade wizard, et j'exécute toutes les tâches

  • je reset les préférences du backend user

  • je maj les packs de langues

  • je flush le cache

  • j'ajoute la ligne suivante au fichier nano /etc/php/7.4/cli/conf.d/20-apcu.ini : apc.enable_cli=on

    sh cli cache:flush sh cli referenceindex:update

  • je retire le plugin frontend-editing qui ne fonctionne pas : php7.4 composer.phar remove friendsoftypo3/frontend-editing

Up:

Je renomme le fichier composer.json et je créé un symlink vers le nouveau composer.json versionné dans le repo ot_typo3 :

mv composer.json composer.json.orig
ln -s /var/opentalent/git/ot_typo3/composer.json ./composer.json
php7.4 composer.phar install

Mise en oeuvre

Je me connecte en SSH à prod-front

ssh exploitation@prod-front

Mise en maintenance

Je met à jour le message de maintenance :

cd /var/www/typo3
nano public/maintenance.html

J'active le mode maintenance :

nano public/.htaccess

Je décommente les lignes :

#RewriteCond %{REMOTE_ADDR} !^10\.8\.0\.
#RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
#RewriteRule .* /maintenance.html [R=302,L]

Je vérifie depuis un appareil hors VPN que la maintenance est bien active.

Snapshot

Tony réalise un snapshot de prod-front

Dump de la DB

Je lance un dump de la DB :

cd ~
./dump_typo3.sh

Upgrade

cd /var/opentalent/git/ot_typo3
git fetch origin release/0.7
git checkout release/0.7

cd /var/www/typo3

Je renomme le fichier composer.json et je créé un symlink vers le nouveau composer.json versionné dans le repo ot_typo3 :

mv composer.json composer.json.orig
ln -s /var/opentalent/git/ot_typo3/composer.json ./composer.json
rm composer.lock
rm -r vendor/*
php7.4 composer.phar install

Je met à jour le fichier cli avec le bon chemin d'accès :

 nano cli

On remplace /var/www/typo3/vendor/bin/typo3cms par /var/www/typo3/vendor/bin/typo3

On va devoir remplacer le fichier .htaccess, sans désactiver le mode maintenance :

cp public/typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/root-htaccess public/.htaccess.new
nano public/.htaccess.new

Ajouter les lignes suivantes :

# <--- Opentalent rules

#SetEnvIf Remote_Addr ^10\.8\.0\.[0-255] TYPO3_CONTEXT=Development

# Enable / Disable the opentalent ot_optimizer middlewares
SetEnv TYPO3_OPTIMIZE 1

RewriteCond %{REMOTE_ADDR} !^10\.8\.0\.
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteRule .* /maintenance.html [R=302,L]

# Opentalent rules --->

Puis remplacer le .htaccess existant :

mv public/.htaccess public/.htaccess.old
mv public/.htaccess.new public/.htaccess

Vérifier que le mode maintenance est toujours activé à l'extérieur

J'active le mode install de typo3 :

  touch public/typo3conf/ENABLE_INSTALL_TOOL

Je me rends à l'adresse https://ohcluses.opentalent.fr/typo3/install.php

Je lance la maj de la structure de la DB

Je lance l'upgrade wizard, et j'exécute toutes les tâches

Je reset les préférences du backend user

Je maj les packs de langues

Je flush le cache

J'ouvre en édition le fichier suivant :

sudo nano /etc/php/7.4/cli/conf.d/20-apcu.ini

Et j'ajoute la ligne :

apc.enable_cli=on

Puis je lance les dernières commandes :

sh cli cache:flush
sh cli referenceindex:update

Je vérifie l'installation

Désactivation du mode maintenance

J'édite le fichier .htaccess

cd /var/www/typo3
nano public/.htaccess

Je commente les lignes :

RewriteCond %{REMOTE_ADDR} !^10\.8\.0\.
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteRule .* /maintenance.html [R=302,L]

Nettoyage après upgrade

Si tout fonctionne bien, je retire les fichiers devenus inutiles :

rm composer.json.orig
rm public/.htaccess.old

Supprimer les champs et tables en zzz_ depuis le BE typo3

Release

Finaliser la release dans GitKraken

Switcher sur master sur prod-front :

cd /var/opentalent/git/ot_typo3
git checkout master
git pull