www.ezpublish-check.org
Translation in progress... If you want to help us mail : contact@ez-france.org
Toute aide pour traduire et contribuer est la bienvenue !
Some tips and tricks to check before put an eZ Publish site in production environment.
Definition
View Caching is a key cache layer, it must be enabled.
On the one hand, templates, on the other hand content, and wrapping it all together : the layout. View Caching is responsible for caching the result of the template's interpretation, itself performing the content fetches and reads.
Once this cache layer is enabled, the template interpretation/compilation will be performed only once, the result cached, and all subsequent requests to this specific content served the cached result. This significantly boosts performances (read: tremendously).
View Cache expiry and regeneration is smartly handled in eZ Publish. What one needs to keep in mind is that a piece of content cache is generated per content item, further uniquified based on :
- the view mode ( "full" and "sitemap" by default )
- the parameters set in the requested URL ( aka $view_parameters, /(name)/value/ )
- the language
It is expired when :
- the respective content is modified
- one of the direct children nodes is modified or newly published
- another object tagged with the same keywords is modified or newly published ( if both objects have an ezkeyword - "Keyword" attribute )
- a directly, or reverse-related object is updated or newly published
These rules are customizable through the SmartViewCache system.
Enabling the View Cache
This can be done in the site.ini.append.php file :
Available resources on this topic :
- Official documentation : http://ez.no/doc/ez_publish/technical_manual/4_0/features/view_caching
- eZ publish and its caches [FR] : http://pwet.fr/blog/ez_publish_et_son_cache
Définition
Les caches block sont des instructions de templates que l'on utilise le plus souvent dans le pagelayout.
Le résultat de l'interprétation template/données à l'intérieur d'un cache-clock est stocké pour être remonté directement du cache une fois généré.La cache-block fonction prend donc des paramètres: la clé, la date d'expiration, ignore_content_expiry et subtree_expiry.
Ces paramétrés permettent de définir plusieurs caches pas clés et de régler l'expiration.Attention, quand vous ne spécifiez uniquement le paramètre de clef, le cache-block est invalidé à chaque publication de contenu ou 2h après sa génération.
Utilisation
Voici un exemple de pagelayout.tpl :
Ressources disponibles sur les cache-block
- Documentation officielle de l'instruction : http://ez.no/doc/ez_publish/technical_manual/4_0/reference/template_functions/miscellaneous/cache_block
- Optimisation et l'utilisation : http://ez.no/developer/articles/ez_publish_performance_optimization_part_3_of_3_practical_cache_and_template_solutions/cache_blocks_optimization
Voici différents points à vérifier qui vous permettrons de maintenir une certain sécurité sur votre instance :
- utiliser l'opérateur wash() pour éviter les attaques XSS
- Limiter les droits sur votre base de données
- CREATE
- DROP
- ALTER
- INDEX
- DELETE
- INSERT
- SELECT
- UPDATE
- CREATE TEMPORARY TABLES
- LOCK TABLES
- Désactiver les modules inutiles selon vos fonctionnalités (comme s'inscrire sur l'interface d'administration)
-
Vérifier les vues des contenus sans templates ainsi que ceux avec un template par défaut.
Si vous avez donné le droit à l'utilisateur Anonyme de voir la section Média, il est bon (dans la plupart des cas de faire en sorte que les "Folder" dans Média ne soit pas listable)
La vue full par défaut d'une nouvelle classe donnent des informations qui n'ont pas besoin d'être divulgués. - Configurer un groupe "Contributeurs" pour limiter l'accès aux fonctionnalités importantes de l'interface d'administration.
- Mettre à jour eZ Publish au fur à mesure des sorties des versions officielles
Ressources
- Sécuriser un site eZ Publish : http://pwet.fr/blog/securiser_un_site_ez_publish
- Droits nécessaires dans MySQL pour eZ publish : http://pwet.fr/blog/droits_necessaires_dans_mysql_pour_ez_publish
Définission
Certains fonctionnalités d'eZ Publish dépendent d'un ou de plusieurs scripts qui tournent en taches de fond.
Trois blocs de scripts sont importants lors de la mise en production
- le bloc "frequent" à mettre toutes les 15 minutes environ
- notifications
- workflow
- le bloc "infrequent" à mettre toutes les semaines
- vérification les liens du site
- nettoyage les paniers du module shop
- le global à mettre toutes les nuits
- dé publication des contenus quand une date est atteinte
- importation des flux RSS configurés
- indexation des contenus pour le moteur de recherche
- mise en état "caché" contenus quand une date est atteinte
- nettoyage des cache-block qui ont le paramètre "subtree_expiry"
- suppression les brouillons qui ne sont plus utilisés
Configuration
Voci un exemple de contrab qui décrit la liste ci-dessus :
Ressources
- Documentation officielle : http://ez.no/doc/ez_publish/technical_manual/4_0/features/cronjobs
- Traduction disponible : http://luxpopuli.fr/eZ-Publish/Documentation-eZ-publish/Features-Fonctionnalites/Cronjobs-Les-taches-cron
- le bloc "frequent" à mettre toutes les 15 minutes environ
Description
Par défaut eZ Publish nous permet d'avoir des URLs à l'image de l'arborescence des contenus.
Cependant, souvent, il reste des améliorations possibles concernant le début de celle-ci.
Un sans configuration, les urls d'articles dans un blog pour être du style :Configuration
Activer les règles de réécritures
Elles vont permettre de supprimer le "index.php"
Supprimer le SiteAccess par défaut
Une configuration est prévue dans les settings pour que les urls n'incluent pas le nom du SiteAccess (si on est en mode URI dans le choix des SiteAccess)
Dans le fichier site.ini.append.php
Mode Virtualhost
Ce mode est configurable dans le même bloc de configuration que le précédent, il va permettre de définir directement que nous sommes ou non en mode "VirtualHost" c'est à dire que l'instance n'est pas dans un sous répertoire.
Ressources
- Documentation officielle : http://ez.no/doc/ez_publish/technical_manual/4_0/installation/virtual_host_setup
- Rewriting et Virtualhost : http://luxpopuli.fr/eZ-Publish/Trucs-astuces/rewriting-virtualhost
eZ Publish : var/log/error.log
Avant la mise en production il est recommandé de vérifier que l'error.log eZ Publish ne génère pas de ligne pendant l'utilisation du site.
SI tel est le cas, il faut corriger les erreursPHP :error_log
Ce n'est pas spécifique à eZ Publish mais en environnement de production, il faut désactiver l'affichage des erreurs et préférer garder ces éventuels erreurs dans un fichier de log, on peut configurer le serveur ainsi grâce au php.ini
Définition
Les caches d'opcode se chargent de garder en mémoire l'opcode généré par PHP. L'opcode est en fait une sorte d'intermédiaire entre le script et l'exécutable. Avec un cacheur d'opcode on économise la coûteuse transformation du script en opcode.
Ce type de cache nécessite donc une modification interne de PHP mais il permet une accélération notable des temps d'exécution des scripts.
Installation et configuration
La méthode d'installation et configuration se trouve dans un article d'ez.no : ici
Définit ce que va faire eZ Publish lorsque l'édition d'un objet qui a une version de brouillons plus récents que la version actuelle.
Utilisez "showversions" pour sélectionner la version à éditer, ou "usecurrent" pour toujours modifier la version actuelle.Dans le site.ini.append.php
In eZ Publish 4.1, a new file "config.php" is present in the archive under the name config.php-RECOMMENDED
In production environment, there is two lines very interesting to improve performances.
Enable eZ Publish do not check on each time if eZ Components is available.
This new parameters define if eZINI must check if the .ini files have changed.
Ce nouveau paramètre détermine si eZINI doit vérifier si les paramètres ont été mis à jour dans les fichiers *. ini *. Si cette case est désactivée eZ Publish va toujours utilisé le cache des valeurs, en réduisant le montant des appels aux fichiers et donc augmentater en performances.
Vous pouvez aussi la mettre le nom d'un fichier ini, pour définir de toujours vérifier celui-ci mais pas le reste.

