Puissant pour les pros
Simple pour les utilisateurs

CMS Made Simple, un CMS open source, permet la gestion rapide et facile des contenus d'un site web. Ce CMS est adapté aussi bien pour les petites sociétés que pour les grandes entreprises.

Proposer son article

[Traduction] Boostez à mort votre installation (1/2)

19 April 2010
Catégorie : Astuces et Conseils
Posté par : admin
On le sait, Cms Made Simple (en plus d'être simple) est rapide à exécuter et n'éprouve pas le serveur sur lequel il est installé, mais savez vous que si l'on est capable de laver plus blanc que blanc, on sait également faire tourner plus rapidement un CmsMS qu'il ne le fait déjà de nature ?

 

Préambule

Premier article sur les deux qui se pencheront sur la modification en profondeur de Cms Made Simple, c'est également le premier article issu d'une traduction d'un travail formidable réalisé par Cyberman que je tiens encore une fois à remercier pour son travail pour la rédaction du billet original en Allemand (et merci aussi à Google Traduction sans qui vous n'étiez pas près à me voir jouer le traducteur Germano-Français .... )

attentionLors de la validation de ce billet des réflexions ont fusées de la part de mes collègues concernant certaines modifications proposées ci dessous, réflexions d'autant plus percutantes qu'elles sont tout à fait fondées : rappelez vous que toute modifications du noyau de Cms Made Simple peuvent entrainer de lourdes conséquences, inutile donc de vous préciser que ce qui suit doit faire l'objet de multiples tests en local avant d'être poussés sur des sites en production.






Chers tous,

Rien de bon ne peut être amélioré. Aussi pour CMSMS il existe un certain nombre d'optimisation pour les performances. Ils sont expliqués plus en détail dans le texte suivant.

REMARQUE: Si un bout d'optimisation se réfère à une ligne particulière dans le code source, méfiez vous : elles ont peut être déjà été changé après une nouvelle version de CMSMS, vérifiez donc toujours avant de vous lancer tête baissée dans une modification à l'aveugle !

C comme config.php

URL Hiérarchisée

Depuis la version 0.13 de Cms Made Simple pouvez afficher l'URL correspondant à la structure hiérarchie des pages, c'est à dire, par exemple,

http://siteweb.fr/menuParent/menuFils/pageDuMenuFils

Bien que cela semble sympa aux premiers abords cela a également des coûts de performance. Pour gagner en rapidité, restez sur la valeur par défaut de Cms Made Simple :

$config['use_hierarchy'] = false;

Connexions persistantes

A propos du fichier config.php,il est possible de définir que CMSMS se connecte à la base de donnée de façon permanente. Ceci est fait en utilisant le paramètre $config[ 'persistent_db_conn']. Par défaut la valeur est à faux.

Les connexions persistantes sont des liens SQL qui ne ferment pas, ainsi lorsque l'exécution d'un script/d'une page se lance, une connexion persistante est demandée, PHP vérifie si une connexion persistante identique n'existe pas déjà (car restée ouverte précédemment). Si elle existe il l'utilisera, sinon et seulement dans ce cas il crée une nouvelle connexion.

Par conséquent, le paramètre suivant peut contribuer à accélérer :

$config['persistent_db_conn'] = true;

Pour plus d'informations: http://www.php-resource.de/manual.php?p=features.persistent-connections

NOTE: Cette valeur n'est pas acceptée par tous les hébergeurs et peut entraîner des problèmes.

"Beautiful" Pretty URLs

La même chose s'applique ici comme dans l'option "structure hiérarchie des pages". Le plus paramètre le plus rapide reste celui par défaut du système :

$config['internal_pretty_urls'] = false;

REMARQUE: Pour voir les changements dans "config.php" soit efficace il faut penser à vider le cache du site web (menu Administration Administration> Paramètres globaux > options avancées > vider le cache).

C comme contentcache.php

Il y a quelque temps le fichier contentcache.php a été introduit dans le répertoire /tmp/cache est créé. Il est sensé sérialiser l'ensemble du contenu des pages Web pour accélérer le tout. Ce n'est pas le cas.

Pour désactiver la création du fichier, ouvrir le fichier class.contentoperations.inc.php depuis le répertoire /lib/classes et à la ligne 497 trouver

$usecache = true;

et remplacer par

$usecache = false;

Source : http://translate.google.com/translate?hl=de&sl=de&tl=fr&u=http%3A%2F%2Fforum.cmsmadesimple.org%2Findex.php%2Ftopic%2C7645.0.html

E pour les Extensions

CMS Made Simple fonctionne avec de nombreux modules (répertoire /modules, voir le menu d'administration 'Extensions > Module') et de nombreuses Balises (répertoire /plugins, voir le menu d'administration 'extensions > balise')

Il y a plein de bonnes raisons pour installer un module pour une tâche spécifique. Mais quand on a le choix, il est préférable de ne conserver QUE les modules utilisés tous les jours pour libérer les ressources systèmes (quitte à réinstaller ponctuellement les autres suivant le besoin)

Un bon exemple est le formulaire de contact : soit on utilise le module FormBuilder soit on utilise la balise {contact_form} mais il est inutile de conserver les deux

attentionNote du traducteur : Je tiens à préciser que depuis la rédaction de ce billet en Allemand, la balise {contact_form} est devenue obsolète, bien que toujours présente dans nos nouvelles installation et donc toujours consommatrice de ressources.

J'aime l'index.php

La compression en sortie

attentionNote du traducteur : Attention : des modifications dans le fichier index.php sont toujours dangereuses. De plus la compression qui est évoquée ci dessous est maintenant gérable directement depuis le fichier config.php en mettant à TRUE la ligne $config['output_compression'] . Pourquoi ne pas en profiter ?

Si votre hébergeur offre la compression zip (ce qui peut se vérifier facilement via la fonction phpinfo() ) alors le changement suivant est à peu près incontournable:

Ouvrez le fichier index.php dans un éditeur, puis allez à la ligne 35, il devrait y avoir quelque chose comme :

@ob_start();

Selon l'hébergeur, il faut mettre :

@ob_start('gzhandler');

@ob_start('ob_gzhandler');

@ob_start('gz_handler');

Essayez simplement...

Qu'est-ce qui s'est exactement passé? Le serveur charge tous les fichiers avec l'algorithme de compression Zip pour compresser et seulement après les envoie au client. Le fichier compressé est alors décompressé par le navigateur du client et enfin affiché à l'écran. En raison de la compression, la taille des fichiers est moindre, d'où une économie de bande passante, un transfert plus rapide et donc un affichage plus rapide sur l'ordinateur.

On peut également rendre l'administration plus rapide en reproduisant la manipulation sur le fichier admin/header.php que l'on ouvrira avec un éditeur pour changer la ligne 5 comme décrit ci-dessus.

ATTENTION: Si le module TinyMCE est utilisé (qui utilisent également la compression zip), cela peut entraîner des problèmes. La compression de TinyMCE doit être dans ce cas désactivée.

attentionNote du traducteur : à noter que maintenant TinyMCE est de toute façon installé par défaut dans les nouvelles version.



Réglage du cache des entêtes HTTP

Dans l'en-tête HTTP de chaque page HTML, on peut déterminer la durée de vie d'une page en cache dans le navigateur du visiteur. Cette valeur peut être ajoutée en entête du fichier index.php.

Dans le fichier index.php, trouver

header("Content-Type: [...]

Ajoutez sur la ligne suivante :

header("Cache-Control: public, max-age=60, s-maxage=60");

Ceci afin que la page soit mise en cache pendant 60 secondes. Ces valeurs peuvent bien entendu être ajustées en fonction des besoins, ce qui rend l'opération très intéressante pour des pages relativement statique.

REMARQUE: Cette modification n'est pas recommandée pour les pages générées dynamiquement (utilisation du module CustomContent)

Si vous ne voulez toujours pas de renoncer à cette possibilité, sachez que l'on peut insérer individuellement ce code dans les pages de Cms Made Simple au cas par cas en utilisant les META-TAG. La balise META ressemblera à ceci:

Couper le moteur de compilation Smarty

A chaque invocation de l'application PHP, Smarty fait un test pour voir si le gabarit courant a été modifié (date de dernière modification différente) depuis sa dernière compilation. S'il a changé, le gabarit est recompilé. Si le gabarit n'a pas encore été compilé, il le sera quelque soit la valeur de ce réglage. Par défaut cette valeur est à TRUE.

Quand une application est mise en production (les gabarit ne changent plus), cette vérification n'est pas nécessaire. Assurez-vous de mettre $compile_check à FALSE pour des performances maximales.

Dans le fichier index.php, trouver

$smarty->compile_check = true;

remplacer par

$smarty->compile_check = false;

Notez que si vous mettez ce paramètre à FALSE et qu'un gabarit est modifié, vous ne verrez *pas* le changement car le gabarit ne sera *pas* recompilé. Si le processus de cache est activé et que $compile_check l'est aussi, alors les fichiers du cache seront regénérés si un gabarit concerné ou un fichier de configuration concerné est modifié.

Source: http://www.smarty.net/manual/fr/variable.compile.check.php

Et pour tous ceux qui ne le savent pas encore ? CMS Made Simple c'est également Facebook, Twitter et même un flux RSS pour rester constamment au courant des nouveautés, des annonces et des préviews de la communauté ! Alors aucune excuse pour dire que vous n'étiez pas au courant :)

  Flux Rss Twitter Facebook