Configurer et optimiser Drupal pour serveur mutualisé
Ces conseils ne sont pas exclusifs pour les serveurs mutualisés, ce sont des conseils pour optimiser la configuration de Drupal, notamment de la base de données, du serveur PHP et du fonctionnement de Drupal lui-même. C'est particulièrement important de garder un oeil sur quelques configurations sur un serveur mutualisé parce qu'il y a quelques limitations qui peuvent être très restrictives. Sur un serveur mutualisé vous n'avez pas accès à la configuration du serveur (bien sûr, puisqu'il est mutualisé, donc partagé entre plusieurs utilisateurs) et vous avez certainement des limitations par rapport à la taille de la base de données et au nombre de connexions simultanées. Je vais couvrir ces sujets et quelques autres conseils utiles que vous pouvez suivre tant que vous y êtes.
Vérifier ses informations PHP
Pour commencer vous avez besoin de savoir quelles sont les configurations de votre hébergeur autrement vous êtes simplement dans le noir. Ceci est très simple à faire et vous ne devez pas avoir peur du nombre d'informations à laquelle vous aurez accès, apprenez une configuration à la fois et ne vous inquiétez pas trop de tout apprendre d'un coup.
Si votre site Drupal n'est pas encore installé, faites le maintenant. Nous allons travailler directement sur Drupal.
Créez une nouvelle page, tapez le texte suivant dedans '<?php phpinfo() ; ?>' (sans les guillemets), choisissez l'option de format de texte 'code PHP' (assurez vous d'avoir activé le module 'filtre PHP' dans votre liste de modules), décochez les cases d'option de publication (vous ne voulez pas exposer les configurations de votre serveur à qui que ce soit) puis enregistrez la page.
Vous aurez sous vos yeux tout ce que vous devez savoir à propos de votre serveur. Vérifiez par exemple si register_globals est on=1 ou off=0. Si Drupal fonctionne il est certainement à 0. Continuez à lire pour connaître d'autres configurations à savoir sur cette page. C'est une bonne pratique d'effacer cette page une fois que vous aurez fini vos configurations, vous ne voulez pas exposer accidentellement les configurations de votre serveur.
1 – Configurer l'environnement PHP
Sur un serveur mutualisé vous n'avez pas accès au célèbre fichier php.ini pour configurer votre serveur donc vous aurez besoin d'apprendre quelques astuces en utilisant le fichier .htaccess.
Ouvrez le fichier .htaccess qui est situé à la racine de votre installation Drupal. Remarquez que dans votre ordinateur ce fichier est probablement caché et vous ne le verrez peut être pas dans votre installation locale de Drupal (même si le fichier est forcément placé dans la racine du site).
-La première chose que vous devez faire, autrement Drupal vous affichera une erreur, est de mettre register_globals à '0' ou off. Ceci est une question de sécurité donc si votre serveur est confiture avec register_globals activé vous devez ajouter la ligne suivante à votre ficher .htaccess :
SetEnv REGISTER_GLOBALS 0
La commande SetEnv vous permet de modifier votre environnement PHP pour tout ce qui se trouve à l'intérieur du dossier ou vous allez placer le fichier .htaccess (y compris les dossiers à l'intérieur de ce dossier). Vous pouvez même mettre un fichier .htaccess dans chaque dossier du site si vous voulez des configurations différentes dans chaque dossier.
-Vous aurez peut être besoin de forcer la version de PHP pour faire tourner votre distribution de Drupal. En général, les serveurs mutualisés utilisent des versions anciennes de PHP pour s'assurer que tout le monde pourra l'utiliser mais Drupal exige une version récente de PHP. Pour établir la version PHP5 vous devez ajouter :
SetEnv PHP_VER 5
-Pour des raisons de sécurité et pour des raisons pratiques c'est toujours une bonne idée de désactiver les magic quotes. Drupal n'a pas besoin des magic quotes et globalement, les magic quotes ont toujours été une mauvaise idée.
SetEnv MAGIC_QUOTES 0
-Pour accélérer un peu les choses vous pouvez activer Zend Optimizer sans trop vous poser de questions. Les pages se chargent deux fois plus vite et il n'y a aucun inconvénient en contrepartie. Donc activez Zend Optimizer à moins que vous avez une raison très précise pour ne pas le faire.
SetEnv ZEND_OPTIMIZER 1
2 – Optimisez votre base de données
L'optimisation de votre base de données peut être faite à l'intérieur de votre installation de Drupal avec l'aide de quelques modules. Il y a deux modules qui optimisent votre base de données régulièrement, poormanscron (qui fait maintenant partie de Drupal 7) et db maintenance.
Poormanscron permet à votre site d'avoir votre cron déclenché dans un intervalle de temps donné. La routine cron va s'occuper de déclencher DbMaintenance à son tour. Notez que poormanscron placera un petit code JavaScript dans chaque page de votre site pour vérifier si l'intervalle de temps est dépassé ou pas. Dans la cas où l'intervalle est dépassé il lancera les tâches cron et remet le compteur à zéro. Ceci signifie que les tâches cron ne seront déclenchés que si quelqu'un visite votre site. Normalement le fait d'avoir cron qui tourne en arrière plan n'a aucune influence sur la navigation du site. Il nettoiera le cache et le overhead optimisant ainsi votre base de données et évitant qu'elle devienne trop grande et encombrée. Vous pouvez le comparer à vider votre corbeille et défragmenter votre disque dur de votre ordinateur.
Ces deux modules sont assez droit au but, vous les téléchargez, installez et configurez. Ne perdez pas de temps en cherchant poormanscron, il n'ajoutera rien directement dans votre page d'administrateur, il sera situé dans les 'informations du site' de votre menu administrateur.
Si vous sentez que votre base de données a encore des performances faibles ou que vous avez souvent le message que max_user_connections vous pose des problèmes, vous devez réduire l'utilisation de la base de données par votre installation de Drupal.
La première chose que vous pouvez faire facilement et qui est immédiate est de désactiver DataBase Logging dans votre menu de modules. Remarquez que décocher cette case n'est possible qu'à partir de Drupal 6. Database Logging ajoute dans votre base de données tout ce qui se passe sur votre site. Ceci est très utile, n'est-ce pas ? Oui, effectivement mais ça implique que Drupal fera constamment des requêtes à votre base de données et c'est une opération qui devient vite très lourde. Vous pouvez utiliser d'autres programmes qui font ce même travail comme par exemple Munin.
Décochez aussi la case Syslog car selon la documentation ce n'est pas conseillé de l'utiliser dans un environnement mutualisé.
Ensuite vous devez sans doute regarder vos configurations MySQL dans le fichier phpinfo que nous avons crée au début de ce tutoriel. Regardez si :
mysql.allow_persistent est off. Des connexions persistantes n'expireront jamais et peuvent facilement surcharger un serveur SQL bridé.
mysql.connect_timeout n'est pas -1 (pas de délai d'expiration) et que sa valeur n'excède pas, disons, 60 (=1 minute).
mysql.max_links doivent être le plus élevés possible. Drupal peut avoir besoin de beaucoup de connexions simultanés, vous aurez plus de chances de votre côté si ce chiffre est aux alentours de 100 mais parfois 5 à 10 connexions sont suffisantes dans un site peu visité ou qui a une configuration plutôt légère.
Normalement ces configurations ne peuvent pas être changes dans un serveur mutualisé car elles font partie du contrat que vous signez avec votre hébergeur mutualisé. Pensez à changer d'hébergement ou d'hébergeur si ces configurations sont trop limitées pour vous. Vous pouvez commencer par les contacter et expliquer votre problème dans un premier temps.
Une autre option que vous avez pour accélérer votre site est d'utiliser le module Boost. Ce n'est pas vraiment une optimisation dans le sens où le cœur de votre site ne sera pas plus rapide. Ce qu'il fait est de créer un cache de vos pages et d'afficher le cache à l'utilisateur. Ceci va accélérer l'affichage des pages à l'utilisateur final mais remarquez que ce module ne sera pas adapté à des sites qui changent de contenu rapidement ni si vous utilisez un site en plusieurs langues avec l'option 'fallback' (dans Drupal 6 uniquement).
Dans le cas où, malgré tout cela, vous avez encore des problèmes pensez que votre site peut avoir des surcharges quand un moteur de recherche est en train d'indexer vos pages et est en train de faire des centaines de requêtes dans un intervalle de temps très court. Mais cela ne doit pas être un obstacle au fonctionnement de votre site car tous les jours les moteurs de recherche indexeront votre site, heureusement.
3 – Quelques bonnes pratiques :
Après avoir fait toutes ces démarches élaborées, n'oubliez pas les actions les plus simples pour maintenir votre site au taquet :
Décochez tous les modules que vous n'utilisez pas et n'oubliez pas de les désinstaller et mettre à jour votre base de données. Pour chaque module installé Drupal devra faire un peu plus de travail même si ces modules ne sont pas utilisés !
Prenez en compte que chaque bloque, chaque image, widget ou application que vous ajoutez à votre page a le même effet de ralentir vos pages un petit peu. Utilisez les avec parsimonie.
Quelques thèmes sont aussi plus lents à charger que d'autres. Évitez simplement les thèmes avec des images ou animations lourdes pour que vos pages se chargent rapidement.
Donc, j'espère avoir couvert la plupart des questions que vous vous posiez avant d'avoir lu ce tutoriel. Ci ce n'est pas le cas, posez des questions dans les commentaires ou lances une discussion dans le forum. Je reviens ici régulièrement pour répondre aux questions quand je peux et mettre à jour le tutoriel pour que toute la communauté puisse en profiter.
Amusez vous et bonne administration de site !


Ajouter un commentaire