29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
29-01-2012 : Parce que nous sommes un peuple debout, agissons pour rester dignes et responsables !
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Pour débuter / eZ publish: les fichiers de configuration





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox

eZ publish: les fichiers de configuration

Date de publication: le mercredi 2 mai 2007 à 18h00
Dernière modification: par Pascal BOYER le mercredi 8 août 2007 à 22h36
» Article suivant: eZ publish: les siteaccess

Emplacements

Les fichiers de configuration sont situés dans le répertoire settings, lui-même situé à la racine du répertoire d'installation de eZ publish.

Il y a trois emplacements distincts où trouver ces fichiers:

  1. à la racine du répertoire settings/
  2. à la racine des différents siteaccess de votre système:

    Si je donne de la nourriture aux pauvres, on me traite de saint.
    Si je demande pourquoi les pauvres n'ont pas de nourriture, on me traite de communiste.

    Dom Helder Camara
    1. settings/siteaccess/siteaccess_public/
    2. settings/siteaccess/siteaccess_admin/
    3. settings/siteaccess/autre_siteaccess/
    4. etc...
  3. à la racine du répertoire de surcharge générale:
    1. settings/override/

:
Il existe encore un autre endroit où trouver des fichiers de configurations: dans certains sous-répertoires du répertoire extension/ (lui-même placé à la racine du répertoire d'installation de eZ publish).
Comme son nom l'indique, le répertoire extension/ est le répertoire réservé à l'installation des extensions (aussi appelé plugins) que nous créons ou que nous téléchargeons depuis la partie Contributions du site officiel ez.no de eZ publish.
Cependant, comme nous sommes supposés débuter sous eZ publish, nous n'irons pas plus loin dans les détails à propos du contenu du répertoire extension/ et pouvons sans problème laisser ceci de côté pour l'instant.

Extensions

Les fichiers de configuration dont il est question ici peuvent avoir deux extensions relativement semblables:

  1. fichier_machin.ini
  2. fichier_machin.ini.append.php

La différence fondamentale entre ces deux extensions est que la première ( .ini) désigne toujours les fichiers de configuration par défaut. C'est à dire ceux qui contiennent le fonctionnement par défaut (non spécifique, non personnalisé) de eZ publish. Ce sont les fichiers de configurations disponibles une fois l'installation de eZ publish terminée.

:

  • Il ne faut jamais modifier les fichiers de configuration qui se terminent par .ini
  • Les fichiers de configuration qui se terminent par .ini sont écrasés et remplacés par de nouveaux fichiers lorsque nous procédons à la mise à jour de eZ publish.
  • Les fichiers de configuration .ini ne contiennent aucune donnée sensible sur l'environnment de eZ publish (login, mot de passe, etc...)

Les autres fichiers de configuration, tous ceux qui se terminent par .ini.append.php, contiennent les paramètres de fonctionnement spécifiques à notre site. Ils définissent donc toujours un comportement personnalisé du site.

:

  • Les fichiers de configuration se terminant par .ini.append.php sont les seuls que nous devons modifier.
  • Les fichiers de configuration se terminant par .ini.append.php ne sont pas écrasés ou remplacés par d'autres lors d'une mise à jour de eZ publish.
  • Les fichiers de configuration des extensions (plugin) doivent avoir pour extension .ini.append.php

En français, append signifie, entre autres, ajouter. C'est un bon moyen de se souvenir que les fichiers .ini.append.php sont les seuls dans lesquels on peut ajouter (ou rétirer) du contenu.

Sécurité

Certains fichiers de configuration .ini.append.php contiennent des informations non cryptées très sensibles (par exemple le login et le mot de passe d'accès à la base de données).

La partie .php de l'extension de ces fichiers de configuration, ainsi que la syntaxe de leur première et dernière ligne, permettent à leur contenu de ne pas être affiché par le navigateur d'un visiteur malveillant (pour plus de détails voir le paragraphe Structure interne ci-dessous).

Pour se prémunir de l'affichage du contenu des fichiers de configuration .ini il faut recourir au fichier .htaccess_root situé à la racine du répertoire d'installation de eZ publish. Cela dit, ces fichiers ne contenant aucune donnée sensible, il n'y a pas péril en la demeure...

Les droits

Si nous observons le contenu de l'archive ezpublish-3.9.1-gpl.tar.gz nous constatons qu'il existe une liste assez importante de fichiers de configuration à la racine du répertoire settings/ (exactement 51 fichiers .ini) et quelques uns dans le répertoire settings/siteaccess/admin/ (exactement 5 fichiers .ini.append.php).

Pendant la phase d'installation, tous ces fichiers sont copiés à l'identique dans le système de fichier de notre installation eZ publish.

Par contre, nous pouvons voir que quelques nouveaux fichiers de configuration .ini.append.php existent dans:

  • settings/override/
  • settings/siteaccess/siteaccess_public/
  • settings/siteaccess/siteaccess_admin/

Ces fichiers ont été créés par le système lors de la phase d'installation et contiennent des informations spécifiques à notre environnement ainsi que certaines de celles que nous avons données lors de la phase d'installation.

De ceci il faut retenir:

  • que le système écrit uniquement dans les fichiers de configuration .ini.append.php (jamais dans les fichiers .ini)
  • qu'à la fin de l'installation ces fichiers de configuration sont placés
    • soit dans settings/override/
    • soit dans settings/siteaccess/siteaccess_public/
    • soit dans settings/siteaccess/siteaccess_admin/
  • que les fichiers de configuration placés dans le siteaccess settings/siteaccess/admin/ ne sont pas utilisés (nous pouvons les supprimer)
  • que des droits suffisants doivent être affectés à ces fichiers pour que le système puisse les modifier.

Nous ne sommes donc pas seuls à modifier le contenu de nos fichiers de configuration. Le système lui-même les modifie si besoin est.

Rôles et fonctionnement

Les fichiers de configuration, que ce soit les fichiers .ini ou .ini.append.php, contiennent l'ensemble des informations ou paramètres dictant le fonctionnement interne de eZ publish.

Le fonctionnement interne de eZ publish n'est pas le fonctionnement qui gère les contenus des objets publiés sur le site public et le design. La frontière n'est pas toujours franche et évidente. Disons qu'il y a d'un côté:

  • les fichiers de configurations, c'est à dire les siteaccess, qui servent à définir, entre autres choses, quels fichiers doivent être appelés, utilisés par le système

et d'un autre côté:

  • ces fichiers qui définissent les contenus devant être affichés et le design du site. Sous eZ publish ces fichiers s'appellent des templates et sont situés dans les designs du système.

Nous reviendrons sur les templates dans l'article consacré à la gestion du design.

:

  • Le système, pour fonctionner correctement, utilise les valeurs des paramètres des fichiers de configuration .ini et .ini.append.php
  • Les fichiers de configuration .ini et .ini.append.php sont hautement complémentaires.

Les fichiers de configuration .ini sont appelés:

  • les fichiers de configuration par défaut

Les fichiers de configuration .ini.append.php portent, quant à eux, un nom particulier faisant référence à un concept fondamental de eZ publish. Ce nom est:

  • fichier de configuration de surcharge

Le concept qui ce cache derrière le nom fichier de surcharge est:

  • système de surcharge (en français)
  • override system (en anglais)

:
Le système de surcharge est associé uniquement aux fichiers de configuration.

Le système de surcharge est assorti de l'ordre de lecture suivant des fichiers de configuration:

  1. settings/fichier_machin.ini
  2. settings/siteaccess/siteaccess_public/fichier_machin.ini.append.php
  3. extention/nom_extension/settings/fichier_machin.ini.append.php
  4. settings/override/fichier_machin.ini.append.php

Le système commence donc toujours par regarder le contenu des fichiers de configuration par défaut (les fichiers .ini à la racine de settings/) puis regarde s'il existe une surcharge de ce fichier dans le répertoire du siteaccess courant, puis regarde s'il existe une surcharge dans l'une des extensions du système et enfin s'il existe une surcharge dans le répertoire de surcharge générale settings/override/.

:

  • C'est toujours la dernière surcharge trouvée qui est prise en compte,
  • Les fichiers de surcharge présents dans le répertoire de surcharge générale settings/override/ sont prioritaires sur tous les autres,
  • Les paramètres des fichiers de surcharge du répertoire de surcharge générale s'appliquent indistinctement à tous les siteaccess.

Structure interne

Les fichiers .ini

Si nous prenons la peine d'éditer quelques fichiers de configuration .ini, nous voyons que les premières lignes sont toutes à peu près identiques:

1 #?ini charset="iso-8859-1"?
2 # eZ publish configuration file for content module
3 #
4 # NOTE: It is not recommended to edit this files directly, instead
5 #       a file in override should be created for setting the
6 #       values that is required for your site. Either create
7 #       a file called settings/override/content.ini.append or
8 #       settings/override/content.ini.append.php for more security
9 #       in non-virtualhost modes (the .php file may already be present
10 #       and can be used for this purpose).
  • Toute ligne qui commence par un dièse (#) est un commentaire
  • Ligne 1: indique le jeu de caractères devant être utilisé dans le fichier
  • Ligne 2: est un synopsis du contenu du fichier
  • Lignes 3 à 10: rappellent qu'il n'est pas recommandé d'éditer directement ce fichier et qu'à la place il est préférable de créer un fichier de surcharge.

Pour le reste, et mis à part les fichiers de configuration:

  • override.ini
  • override.ini.append.php

...les contenus des fichiers de configuration par défaut ou de surcharge reposent tous sur la même syntaxe:

  • Le nom d'une rubrique placé entre crochets
  • Des noms:
    • de paramètres (un paramètre contient une seul valeur)
    • et/ou de tableaux (ces derniers sont suivis des crochets ouvrant et fermant). Un tabeau peut contenir plusieurs valeurs)
  • Des valeurs pour ces paramètres ou ces tableaux
  • Des commentaires

Voici un exemple qui illustre tout cela:

46 [MenuContentSettings]
47 # This list contains the identifiers of the classse
48 # that are allowed to be shown in top menues
49 TopIdentifierList[]
50 TopIdentifierList[]=folder
51 TopIdentifierList[]=feedback_form
52 TopIdentifierList[]=gallery
53 TopIdentifierList[]=forum
 
112 [Topmenu_content]
113 URL[]
114 URL[default]=content/view/full/2
115 URL[browse]=content/browse/2
116 NavigationPartIdentifier=ezcontentnavigationpart
  • Ligne 46: déclaration de la rubrique MenuContentSettings placée obligatoirement entre crochets
  • Lignes 47 et 48: ce sont des commentaires. Les lignes sur lesquelles ils sont écrits commencent toujours par un dièse (#). Tous les fichiers de configuration par défaut contiennent de nombreux commentaires en anglais nous permettant de comprendre le sens de la rubrique, des paramètres, des tableaux, etc... Nous trouverons également des exemples de paramétrage, des valeurs possibles, etc...
  • Ligne 49: déclaration du tableau ( array) TopIdentifierList[] Un tableau suivi de [] est un tableau initialisé. Un tableau initialisé est toujours "remis à zéro", c'est à dire vidé de ses éventuelles valeurs précédentes.
  • Ligne 50 à 53: chaque ligne est une nouvelle valeur du tableau
  • Ligne 116: déclaration, dans la rubrique [Topmenu_content], du paramètre NavigationPartIdentifier suivi de sa valeur ezcontentnavigationpart

En ce qui concerne les tableaux:

  • si dans le fichier de surcharge un tableau est initialisé ainsi:
    • NomDuTableau[]

alors le tableau est préalablement vidé d'éventuelles valeurs précédentes et ne contiendra que les nouvelles valeurs qui seront définies dans le fichier de surcharge.

  • Si dans le fichier de surcharge un tableau est initialisé ainsi:
    • NomDuTableau[] = une_valeur

alors le tableau conserve toutes ses valeurs précédentes et contiendra en plus les nouvelles valeurs définies dans le fichier de surcharge.

Les fichiers .ini.append.php

Si nous éditons quelques fichiers de configuration .ini.append.php nous remarquons qu'ils commencent tous par une ligne comme celle-ci:

<?php /* #?ini charset="iso-8859-1"?

et se terminent tous par cette ligne:

*/ ?>

Entre ces deux lignes nous trouvons bien sûr le contenu du fichier.

La syntaxe de ces deux lignes est très importante car elle rend le contenu du fichier impossible à afficher (voir le paragraphe sur la Sécurité ). En effet, <?php et ?> représentent respectivement la balise d'ouverture d'une séquence de code écrit en langage PHP et la balise de fermeture de cette séquence. Donc, tout ce qui est contenu entre ces deux balises sera interprété par le processeur PHP. Mais ici, la balise d'ouverture est suivie par /* et la balise de fermeture précédée par */. Le premier /* correspond, en langage PHP, à la syntaxe marquant le début d'un commentaire multi-lignes. Et */ correspond à la syntaxe marquant la fin du commentaire.

Il apparaît donc clairement que si une personne cherche à afficher dans son navigateur le contenu d'un fichier de configuration .ini.append.php alors ce contenu sera traité par le serveur web comme un commentaire PHP. Or les commentaires, quel que soit le langage, ne sont jamais affichés. Le résultat sera donc une page blanche dans le navigateur.

Bien sûr, si vous utilisez un fichier .htaccess, par exemple une copie du fichier .htaccess_root, vous pouvez alors carrément interdire l'accès de certains répertoires à vos visiteurs.

Surcharge

L'objectif des fichiers de surcharge est de surcharger les valeurs des paramètres des fichiers de configuration par défaut afin d'adapter le comportement de eZ publish à des besoins spécifiques/personnels.

Pour créer une surcharge il faut commencer par relever:

  1. le nom du fichier de configuration par défaut,
  2. le nom, dans ce fichier, de la rubrique dont on souhaite surcharger certains paramètres ou tableaux,
  3. le nom, sous la rubrique, des paramètres ou des tableaux dont on souhaite surcharger les valeurs.

Ensuite:

  1. on définit pour quel siteaccess on souhaite faire une surcharge:
    1. si c'est pour le siteaccess public alors le fichier de surcharge sera placé dans le répertoire settings/siteaccess/siteaccess_public/
    2. si c'est pour le siteaccess d'admin (ce qui est vraiment rare !) alors le fichier de surcharge sera placé dans le répertoire settings/siteaccess/siteaccess_admin/
    3. si c'est pour tous les siteaccess publics ( eZ publish peut gérer de très nombreux siteaccess publics) alors le fichier de surcharge sera placé dans le répertoire de surcharge générale settings/override/
  2. on crée, s'il n'existe pas déjà, un fichier de configuration de surcharge du même nom que le fichier de configuration par défaut et on lui ajoute l'extension .ini.append.php
  3. on crée dans le fichier de surcharge:
    1. la même rubrique que celle du fichier de configuration par défaut
    2. les mêmes paramètres ou tableaux que ceux de la rubrique du fichier de configuration par défaut
  4. on met les nouvelles valeurs des paramètres ou des tableaux.

Pour que tous ces changements soient pris en compte il est nécessaire de vider les caches.

A retenir

Cet article présente les connaissances minimum et indispensables que nous devons posséder sur la gestion des fichiers de configuration de eZ publish.

La partie la plus ardue, non décrite ici, étant bien sûr de savoir maintenant quel fichier de surcharge il faut modifier ou créer pour obtenir le résultat escompté. Et surtout: quelle rubrique, quel paramètre faut-il surcharger ? Pour cela, seule la pratique nous l'apprendra. Mais aussi la lecture des commentaires des fichiers de configuration par défaut !

site.ini.append.php

Ce fichier de surcharge est un des fichiers de configuration les plus importants. Il est donc indispensable d'en regarder de très près le contenu.

Commentaires