29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don




Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : Mise à jour vers les versions 3.8 et 3.9

Table des matières

  1. eZ Publish : Mise à jour vers les versions 3.8 et 3.9
  2. Backup and consistency checks / Sauvegarde et contrôles de cohérence
  3. eZ Publish : généralités sur la procédure de mise à jour
  4. eZ Publish : modifications apportées à la base de données
  5. eZ Publish : mise à jour de 3.9.x vers 3.9.y
  6. eZ Publish : mise à jour de 3.8.x vers 3.9.0
  7. eZ Publish : mise à jour de 3.8.x vers 3.8.y
  8. eZ Publish : mise à jour de 3.6.x (3.7.x) vers 3.8.0

eZ Publish : mise à jour de 3.6.x (3.7.x) vers 3.8.0

Date de publication: le dimanche 20 novembre 2011 à 17h38
Dernière modification: par Pascal BOYER le dimanche 20 novembre 2011 à 21h29

26/12/2007 5:24

Amérique, n'éteins pas tes lampes.
Les Incas n'ont pas déposé dans les mains stupéfaites de l'histoire une petite couronne de feu et de martyre mais une vaste, une très vaste ambiance ciselée par les doigts les plus fins, par des mains capables d'acheminer les sons vers la mélancolie et le respect d'ériger des pierres gigantesques face au temps infini.
 

Pablo Neruda

This section describes how to upgrade your existing eZ publish 3.6.x / 3.7.x installation to version 3.8.0. If you are upgrading from a version prior to eZ publish 3.6.0, you need to first upgrade to 3.6.0 before you can upgrade to 3.8.0.
Cet article décrit la marche à suivre pour effectuer la mise à jour d'un système eZ publish version 3.6.x ou 3.7.x vers la nouvelle version 3.8.0. Si vous souhaitez faire la mise à jour d'une version antérieure à la version 3.6.0, vous devez, dans un premier temps, faire une mise à jour vers la version 3.6.0 puis, ensuite, suivre les instructions ci-dessous.

Important note / Note importante

Before continuing, note that it is recommended to upgrade directly to the latest stable release in the 3.8 branch, which is version 3.8.10. (Refer to "Upgrading from 3.a.b to 3.x.y" and "Upgrading from 3.8.x to 3.8.y" to learn how this can be done.) Note that there is a significant problem with eZ Publish 3.8.0-3.8.8. More precisely, the discount functionality of the shop module contains a security vulnerability. The issue has been fixed in version 3.8.9. Refer to the announcement and the upgrade instructions for details.
Avant de poursuivre, retenez qu'il est recommandé d'effectuer une mise à jour directement vers la dernière version stable de la branche 3.8, à savoir la version 3.8.10. (Référez-vous aux documentx Upgrading from 3.a.b to 3.x.y et Upgrading from 3.8.x to 3.8.y au présent article pour savoir comment faire). Retenez qu'il y a un problème sérieux dans les versions 3.8.0 à 3.8.8 d'eZ Publish. Il s'agit plus précisément d'une vulnérabilité de sécurité dans la fonctionnalité de remise de prix du module shop. Le problème a été résolu dans la version 3.8.9. Référez-vous à l' annonce et aux instructions de mise à jour pour plus de détails.

Make sure that you have a working backup of the site before you do the actual upgrade. The upgrade procedure consists of the following steps:
Assurez-vous d'être en possession d'une sauvegarde efficiente de votre site avant d'effectuer une mise à jour dont la procédure suit les 5 étapes ci-dessous:

  1. Upgrading the distribution files to 3.8.0
    Mettre à jour les fichiers de la version 3.6.x ou 3.7.x vers ceux de la version 3.8.0
  2. Upgrading the database to 3.8.0
    Mise à jour de la base de données pour la rendre compatible avec la version 3.8.0 d'eZ Publish
  3. Running the system upgrade scripts
    Exécuter les scripts de mise à jour du système
  4. Updating the system configuration
    Mettre à jour la configuration du système,
  5. Clearing the caches
    Vider les caches

Étape 1: Upgrading the distribution files / Mise à jour des fichiers de la distribution

The easiest way to upgrade the distribution files is to unpack eZ publish 3.8.0 to a directory and then copy the directories that contain site-specific files from the existing installation. Make sure that you copy the following directories:
Pour mettre à jour les fichiers de votre distribution, le plus simple est de placer les fichiers de l'archive version 3.8.0 dans un répertoire puis de copier, dans ce répertoire, les répertoires de la distribution à mettre à jour contenant des fichiers spécifiques. En particulier, prenez soin de copier les répertoires suivants:

  • design/example
  • design/example_admin
  • var
  • settings/siteaccess
  • settings/override

Replace "example" and "example_admin" with actual names used by your siteaccesses.
Remplacez example et example_admin par les vrais noms utilisés par vos siteaccess.

Custom extensions / Extensions personnalisées

If you are using custom extensions then the subdirectories inside the "extension" directory will also have to be copied. However, make sure that you do not overwrite any extensions that come with eZ publish (for example the "PayPal" extension).
Si vous utilisez des extensions personnalisées, alors les sous-répertoires du répertoire extension/ doivent également être copiés dans le répertoire extension/ de la version 3.8.0. Cependant, assurez-vous de ne pas effacer ou surcharger les extensions fournies par eZ publish (par exemple, l'extension PayPal).

Étape 2: Upgrading the database / Mise à jour de la base de données

The following text describes how a 3.6.0 database can be upgraded to 3.8.0.
Le texte suivant explique comment mettre à jour une base de données utilisée avec une version 3.6.0 de eZ publish vers une base la base de données utilisée avec une version 3.8.0

MySQL

  1. Navigate into the eZ publish 3.8.0 directory.
    Placez-vous dans le répertoire d'installation de la version 3.8.0 de eZ publish.
  2. Run the database upgrade script
    Lancez alors le script de mise à jour de la base de données:

    mysql -u <username> -p <password> <database> < update/database/mysql/3.8/dbupdate-3.6.0-to-3.8.0.sql 

Note that the CREATE TABLE statements in the database upgrade script do not specify which storage engine to use (no ENGINE or TYPE option), and thus the default storage engine will be used. Normally, it is MyISAM (starting from MySQL v.3.23). If you are using InnoDB, make sure the default storage engine is set to InnoDB before you run the database upgrade script (refer to MySQL documentation for information about how to set the default engine). If you were not able to change the MySQL configuration on your server, and the upgrade left you with a mix of table types, you can use the "bin/php/ezconvertmysqltabletype.php" script for database conversion. It is also possible to convert the newly created tables to InnoDB using ALTER TABLE statements as shown in the following example:
Retenez que les requêtes CREATE TABLE du script de mise à jour de la base de données ne spécifient pas le moteur de table à utiliser (ces requêtes ne contiennent pas d'option ENGINE ou TYPE) et le moteur de tables par défaut sera donc utilisé. Normalement, c'est le moteur MyISAM (introduit dans MySQL version 3.23). Si vous utilisez InnoDB, assurez-vous, avant de lancer le script de mise à jour de la base de données, qu'il soit bien défini comme moteur de tables par défaut (référez-vous à la documentation de MySQL pour plus d'informations sur la marche à suivre pour paramétrer le moteur de tables par défaut). Si vous n'avez pas la possibilité de modifier la configuration de MySQL sur votre serveur et que la mise à jour vous laisse avec une base de données contenant des tables de plusieurs types, alors vous pouvez utiliser le script bin/php/ ezconvertmysqltabletype.php pour la conversion des tables de la base de données. Mais il est également possible de convertir au format InnoDB les nouvelles tables créées en utilisant les requêtes ALTER TABLE, comme le montre l'exemple suivant:

ALTER TABLE table_name1 TYPE = innodb;
ALTER TABLE table_name2 TYPE = innodb;
...

Replace "table_name1", "table_name2" with the actual names of the tables that need to be converted.
Remplacez table_name1, table_name2 par le nom des tables devant être converties.

PostgreSQL

  1. Navigate into the eZ publish 3.8.0 directory.
    Placez-vous dans le répertoire d'installation de la version 3.8.0 de eZ publish.
  2. Run the database upgrade script
    Lancez alors le script de mise à jour de la base de données:

    psql -d <database> -U <dbowner> < update/database/postgresql/3.8/dbupdate-3.6.0-to-3.8.0.sql

Étape 3: Running the system upgrade scripts / Exécuter les scripts de mise à jour du système

The 3.8.0 version of eZ Publish introduces a couple of new features. In order to make sure that your site is compatible with these features, you'll have to run a couple of upgrade scripts.
La version 3.8.0 d'eZ Publish introduit un certain nombre de nouvelles fonctionnalités. Afin de vous assurer que votre site sera compatible avec celles-ci, vous devez exécuter des scripts de mise à jour.

Improved multi-language functionality / Fonctionnalité multilingue améliorée

The 3.8.0 version of eZ publish introduces improved multi-language functionality. In order to make sure that your site is compatible with this new feature, you will have to update the configuration settings and run the "updatemultilingual.php" script. This step must be done even though your site has only one language.
La version 3.8.0 de eZ publish introduit une fonction multi-langues avancée ( fonctionnalité multi-language améliorée ). Pour assurer la compatibilité de votre site avec cette nouvelle fonction, vous devez mettre à jour vos paramètres de configuration et exécuter le script updatemultilingual.php. Ce script doit être exécuté même si votre site ne comporte qu'une seule langue.

Configuring languages / Configurer les langues

Before running the upgrade script you need to configure how the languages must be displayed on your site.
Avant de lancer le script de mise à jour vous devez configurer la manière dont les langues sont affichées sur votre site .

For the public siteaccess(es) where only specific languages should be shown, add the following lines into the "[RegionalSettings]" section of the "settings/siteaccess/example/site.ini.append.php" file (replace "example" with the actual name of the siteaccess):
Pour les siteaccess publics pour lesquels seules certaines langues doivent être affichées, ajoutez les lignes suivantes à la section [RegionalSettings] du fichier settings/siteaccess/example/site.ini.append.php (remplacez example par le nom de votre siteaccess):

SiteLanguageList[]
SiteLanguageList[]=<my-first-language>
SiteLanguageList[]=<my-second-language>
ShowUntranslatedObjects=disabled

e.g. for British English and German languages you would do:
e.g. pour les langues British English et German vous devrez avoir:

SiteLanguageList[]
SiteLanguageList[]=eng-GB
SiteLanguageList[]=ger-DE
ShowUntranslatedObjects=disabled

This will tell the system that English has the highest priority and German is the second language. Any other languages will not be shown.
Ceci indique au système que la langue anglaise est la langue de plus haute priorité et que l'allemand est la seconde langue. Aucune autre langues ne sera affichée.

For the siteaccess(es) like administration interface where all languages should be shown, add the following lines into the "[RegionalSettings]" section of the "settings/example_admin/site.ini.append.php" file (replace "example_admin" with the actual name of the siteaccess):
Pour les siteaccess d'administration pour lesquels toutes les langues doivent être affichées, ajoutez les lignes ci-dessous à la section [RegionalSettings] du fichier settings/siteaccess/example_admin/site.ini.append.php (remplacez example_admin par le nom de votre siteaccess d'administration):

SiteLanguageList[]
SiteLanguageList[]=<my-first-language>
SiteLanguageList[]=<my-second-language>
ShowUntranslatedObjects=enabled

e.g. for British English and German languages you would do:
e.g. pour les langues British English et German vous devrez avoir:

SiteLanguageList[]
SiteLanguageList[]=eng-GB
SiteLanguageList[]=ger-DE
ShowUntranslatedObjects=enabled

This will tell the system that English has the highest priority and German is the second language. All other languages will still be shown (and editable) but will have less priority. The "ShowUntranslatedObjects" setting controls whether all languages are shown or not.
Ceci indique au système que la langue anglaise est la langue de plus haute priorité et que l'allemand est la seconde langue. Toutes les autres langues seront affichées (et pourront être éditées) mais auront une priorité inférieure. Le paramètre ShowUntranslatedObjects définit si, oui ou non, toutes les langues doivent être affichées.

Running the upgrade script / Exécuter le script de mise à jour

The "updatemultilingual.php" script should be run for all siteaccesses that use different databases. If you only have a public and an administration siteaccess (which is the most typical/usual case), then you will only need to run the script for one of the siteaccesses. If the siteaccess isn't specified, the default siteaccess will be used. Note that you will need to either publish or remove all the unpublished drafts in your system before launching this script.
Le script updatemultilingual.php doit être exécuté pour tous les siteaccess utilisant leur propre base de données. Si vous n'avez qu'un siteaccess public et un d'administration (ce qui représente le cas le plus fréquent) alors vous ne devez exécuter ce script que pour l'un de ces deux siteaccess. Si le siteaccess n'est pas spécifié, le siteaccess par défaut sera utilisé. Retenez que vous devez, soit publier soit supprimer tous les brouillons non publiés avant de lancer ce script.

The following example shows how to run the script:
L'exemple qui suit montre comment exécuter le script:

  1. Navigate into the eZ publish 3.8.0 directory
    Placez-vous dans le répertoire d'installation de la version 3.8.0 de eZ publish.
  2. Run the script (replace "example" with the actual name of your siteaccess)
    Lancez le script (remplacez example par le vrai nom de votre siteaccess):

    php update/common/scripts/updatemultilingual.php -s example

It is strongly recommended to read the information the script provides before continuing. If unsure press Control + C on your keyboard while the shell/console is active.
Il est fortement conseillé, lors de son exécution, de lire les informations produites par le script avant de poursuivre. Si vous n'êtes pas sûr, vous pouvez interrompre son exécution avec la combinaison de touches Ctrl + c.

RSS import enhancements (optional) / Améliorations de l'importation des flux RSS (optionnel)

The 3.8.0 version of eZ Publish introduces more generic RSS import that allows using custom RSS import definitions. If you are using the RSS import functionality on your site, you will have to run the "updaterssimport.php" script. This script should be run for all siteaccesses that use different databases. If you only have a public and an administration siteaccess (which is the most typical/usual case), then you will only need to run the script for one of the siteaccesses. If the siteaccess isn't specified, the default siteaccess will be used.
La version 3.8.0 d'eZ Publish introduit un système d'i mportation de flux RSS plus complet permettant de définir des importations RSS personnalisées. Si vous utilisez l'importation de flux RSS sur votre site, vous devez exécuter le script updaterssimport.php pour chaque site ayant sa propre base de données. En revanche, si vous n'utilisez qu'un siteaccess public et d'administration (ce qui est le cas le plus fréquent) vous ne devez alors exécuter ce script que pour l'un de ces deux siteaccess. Si le siteaccess n'est pas spécifié, le siteaccess par défaut sera utilisé

  1. Navigate into the eZ publish 3.8.0 directory.
    Placez-vous dans le répertoire d'installation de la version 3.8.0 de eZ publish
  2. Run the script (replace "example" with the actual name of your siteaccess):
    Lancez le script (remplacez example par le vrai nom de votre siteaccess):

    php update/common/scripts/updaterssimport.php -s example

Étape 4: Updating the system configuration / Mettre à jour la configuration du système

Treemenu configuration / Configuration du menu

In eZ publish 3.8, the default configuration for the left treemenu in the administration interface has changed i.e. only folder, forum, gallery and user group objects are visible in the menu by default. (In previous versions, objects of any class were shown in the treemenu and this could cause problems when the number of objects in the system increased.)
Dans la version 3.8.0 d'eZ Publish, la configuration par défaut du menu gauche de l'interface d'administration a changé, c'est à dire que seuls les objets folder, forum, gallery et user group sont affichés par ce menu. Dans les précédentes versions, les objets de toutes les classes étaient affichés mais cela pouvait poser des problèmes à mesure qu'augmentait le nombre d'objets sur le système.

The classes that the visible objects belong to are determined by the "ShowClasses[]" array located under the "[TreeMenu]" section of the "settings/contentstructuremenu.ini" configuration file. The following configuration is used by default:
Les classes auxquelles appartiennent les objets affichés par le menu sont définies par le tableau ShowClasses[] de la section [TreeMenu] du fichier de configuration settings/ contentstructuremenu.ini. La configuration suivante est celle utilisée par défaut:

[TreeMenu]
ShowClasses[]
ShowClasses[]=folder
ShowClasses[]=forum
ShowClasses[]=gallery
ShowClasses[]=user_group

If you want to display other objects in the treemenu, e.g. user and article objects, do the following:
Si vous souhaitez afficher d'autres objets dans ce menu, c'est à dire des objets user ou article, alors faites ce qui suit:

  1. Open the "contentstructuremenu.ini.append.php" configuration file located in the "settings/override" or "settings/siteaccess/example_admin" directory (replace "example_admin" with the actual name of your admin siteaccess) and edit it. If the file does not exist, create it.
    Editez le fichier de configuration contentstructuremenu.ini.append.php situé soit dans le répertoire settings/override/ soit dans settings/siteaccess/example_admin/ (remplacez example_admin par le nom de votre siteaccess d'administration). Si ce fichier n'existe pas, créez-le.
  2. Add the following lines under the "[TreeMenu]" section:
    Ajoutez les lignes suivantes sous la section [TreeMenu]:

    [TreeMenu]
    ShowClasses[]=user
    ShowClasses[]=article

    where "user" and "article" are class identifiers.
    user et article sont des identifiants de classes.

It is possible (but not recommended) to make the treemenu showing objects of all classes as in previous versions of eZ publish. To do this, use the following configuration in the "contentstructuremenu.ini.append.php" file:
Il est possible (mais non recommandé) de faire en sorte que le menu affiche, comme dans les précédentes versions d'eZ Publish, toutes les classes. Pour cela, configurez ainsi le fichier contentstructuremenu.ini.append.php:

[TreeMenu]
ShowClasses[]

Binary files indexing configuration / Configuration de l'indexation des fichiers binaires

In eZ publish versions prior to 3.8.0, the following default settings for binary file indexing were specified in the "binaryfile.ini" configuration file:
Dans les versions d'eZ Publish antérieures à la version 3.8.0, sont présents, dans le fichier de configuration binaryfile.ini, les paramètres par défaut ci-dessous concernant l'indexation des fichiers binaires:

[HandlerSettings]
MetaDataExtractor[text/plain]=plaintext
MetaDataExtractor[application/pdf]=pdf
MetaDataExtractor[application/msword]=word

In eZ publish 3.8.0, the default settings for binary file indexing have been changed. This is how the new settings look like:
Dans eZ Publish 3.8.0, les paramètres par défaut relatifs à l'indexation des fichiers binaires ont changé. Voici à quoi ils ressemblent:

[HandlerSettings]
MetaDataExtractor[text/plain]=ezplaintext
MetaDataExtractor[application/pdf]=ezpdf
MetaDataExtractor[application/msword]=ezword

If you have overridden these settings in your "binaryfile.ini.append.php" then you need to review your settings.
Si vous avez surchargé ces paramètres dans votre fichier binaryfile.ini.append.php, alors vous devez les revoir/adapter.

Default configuration of unique user emails / Configuration par défaut relative aux mails unique des utilisateurs

In eZ publish versions prior to 3.8.0, the default configuration does not allow different users to be registered with the exact same email address. This is just a built-in precaution mechanism which can be easily turned off by setting the "RequireUniqueEmail" directive within the [UserSettings] block of a configuration override for "site.ini" to "false". However, this default configuration has been accidentally changed in eZ Publish version 3.8.0 (refer to http://issues.ez.no/9643 for more information). The change is reverted in eZ Publish version 3.8.7. If you are going to use eZ Publish 3.8.0-3.8.6, it is recommended to add the following line to the [UserSettings] block of the "override/site.ini.append.php" configuration file:
Dans les versions d'eZ Publish antérieures à la version 3.8.0, la configuration par défaut n'autorise pas que plusieurs utilisateurs ayant une même adresse e-mail puissent être enregistrés. Ceci n'est rien d'autre qu'une précaution par défaut pouvant être facilement désactivée en positionnant à false le paramètre RequireUniqueEmail de la section [UserSettings] du fichier de configuration site.ini. Cependant, cette configuration par défaut a été accidentellement modifiée dans la version 3.8.0 (voir la page http://issues.ez.no/9643 pour plus d'informations). Cette erreur est réparée dans la version 3.8.7, mais si vous utilisez une des versions 3.8.0 à 3.8.6 il est alors recommandé d'ajouter la ligne suivante à la section [UserSettings] du fichier de configuration général override/ site.ini.append.php:

RequireUniqueEmail=true

Étape 5: Clearing the caches / Vider les caches

Whenever an eZ publish solution is upgraded, all caches must be cleared in a proper way. This should be done from within a system shell:
Chaque fois qu'une version de eZ publish est mise à jour, tous les caches doivent être correctement "nettoyés" avec la commande suivante:

  1. Navigate into the eZ publish 3.8.0 directory
    Placez-vous dans le répertoire d'installation de la version 3.8.0 de eZ publish.
  2. Run the clear cache script:
    Exécutez le script de nettoyage de cache:

    bin/shell/clearcache.sh --clear-all

Make sure that all caches are cleared. Sometimes the script is unable to clear caches because of restrictive file/directory permission settings. Make sure that all caches have been cleared by inspecting the contents of the various cache subdirectories within the "var" directory.
Assurez-vous que tous les caches sont bien vides. Il arrive parfois que le script soit incapable de vider les caches en raison de permissions restrictives sur certains fichiers ou répertoires. Assurez-vous que tous les caches on bien été vidés en inspectant le contenu des différents sous-réperoires du répertoire var/



Table des matières

  1. eZ Publish : Mise à jour vers les versions 3.8 et 3.9
  2. Backup and consistency checks / Sauvegarde et contrôles de cohérence
  3. eZ Publish : généralités sur la procédure de mise à jour
  4. eZ Publish : modifications apportées à la base de données
  5. eZ Publish : mise à jour de 3.9.x vers 3.9.y
  6. eZ Publish : mise à jour de 3.8.x vers 3.9.0
  7. eZ Publish : mise à jour de 3.8.x vers 3.8.y
  8. eZ Publish : mise à jour de 3.6.x (3.7.x) vers 3.8.0

Commentaires