Un CMS (Content Management System dans la langue de Shakespeare ou Système de Gestion de Contenu dans celle de Molière) est un logiciel installé sur un serveur web et permettant de créer et de gérer des pages web, des blogs etc. directement en ligne. Ainsi grâce au CMS vous n'avez pas à créer ou à modifier une page sur votre ordinateur pour l'uploader ensuite sur votre serveur : tout se fait depuis une interface web, intuitivement et quasi instantanément.
De plus, les CMS permettent la création de plusieurs utilisateurs ayant des niveaux de droits prédéfinis : ceci est très utile dans le cadre d'un site web sur lequel plusieurs personnes différentes sont amenées à faire des mises à jour car elles pourront travailler en même temps, sans se gêner, depuis leur propre poste de travail.
Enfin, l'un des principaux atouts des CMS est l'utilisation d'un système de templates qui permet une séparation complète entre le design des pages du site et les contenus : l'utilisateur final peut ainsi se concentrer sur la rédaction et la mise en page de ses contenus sans se soucier du design des pages au sein desquelles ils seront publiés. Les contenus peuvent alors être affectés à de nouveaux onglets dans les différents menus prévus par le template utilisé.
Forts de leur succès, les CMS se sont multipliés ces dernières années et il n'est pas forcément évident de faire le bon choix selon l'usage du site web que l'on souhaite créer. L'objet de cet article est de vous guider dans ce choix en vous présentant les principaux CMS existants, leurs qualités et leurs défauts, leur adéquation à certains usages.

Je pense qu'il était plus parlant d'aborder cette partie par un graphique : ce que ne montre pas le graphique c'est l'usage des CMS par rapport aux sites traditionnels. Au mois de mars 2012, les CMS, tous confondus, représentent environ 30% des sites web dans le monde. Mais parmi les 70% de sites web n'utilisant pas de CMS Open Source, un certain nombre d'entre eux peuvent utiliser des outils développés en interne, comparables, en termes de fonctionnement, à des CMS.
Sur le marché des CMS on voit que l'un d'entre eux se détache de manière vraiment notable, avec 63% des parts de marché : Wordpress ! Je savais qu'il était de loin le CMS le plus utilisé mais j'avoue avoir été moi-même surpris par l'ampleur de l'écart par rapport aux autres CMS du marché. Viennent ensuite, loin derrière, Joomla (~11%) et Drupal (~9%) qui se talonnent. Ces 3 CMS sont les plus populaires et lors du choix d'un CMS, sa popularité est à prendre en compte : en effet, plus un CMS est populaire et plus sa communauté d'utilisateurs est importante. Ceci permet de s'assurer de mises à jour régulières, d'un support réactif, du développement régulier de nouvelles extensions permettant l'ajout de fonctionnalités à votre site internet.
Conçu au départ comme une plate-forme de blogging (le blogging est un terme anglo-saxon qui désigne l'action de publier des articles sur un blog), Wordpress a énormément évolué et s'est imposé comme un CMS à part entière, puissant et couvrant un large panel d'usages allant du blog au port-folio en passant par les sites vitrines et l'e-commerce. Il est désormais tout à fait possible de créer un site propulsé par Wordpress qui ne ressemblera en rien à un blog. Grâce au choix impressionnant de plug-ins développés pour Wordpress, il est aujourd'hui possible de créer quasiment n'importe quel type de site web avec ce CMS.
Parmi les principaux avantages de Wordpress, citons sa communauté d'utilisateurs et de développeurs particulièrement active, son large choix de templates gratuits ou commerciaux, sa facilité d'installation et de prise en main et enfin ses performances en matière de référencement.
Le principal inconvénient de Wordpress est, à mon sens, sa vulnérabilité aux attaques du fait de sa popularité : c'est en quelques sortes la rançon du succès, Wordpress est devenu l'une des cibles privilégiées des hackers du monde entier.
Toujours parfaitement adapté pour la création de blogs (c'est de loin le meilleur CMS pour cet usage), Wordpress s'avère également être un excellent choix pour la création d'un site vitrine, de petites boutiques en ligne, de sites personnels etc.
Très populaire également, ce CMS a énormément évolué et permet de créer des sites web flexibles, puissants et évolutifs. Joomla est le CMS pour lequel il existe le plus grand nombre d'extensions disponibles, gratuites ou payantes, certaines permettant d'ajouter des fonctionnalités très évoluées à votre site web : multimédia, e-commerce etc. Un peu plus compliqué à installer que Wordpress (certains répertoires nécessitent notamment des droits particuliers sur le serveur pour que l'ensemble des fonctionnalités puisse fonctionner), Joomla reste néanmoins très simple d'utilisation une fois installé et correctement paramétré.
Il y a sur internet une gigantesque quantité de ressources disponibles pour Joomla : documentation, extensions, templates etc. Sa communauté d'utilisateurs et de développeurs est, elle aussi, très développée ce qui permet au noyau du CMS d'être mis à jour très régulièrement (important pour les failles de sécurité notamment).
Joomla permet de développer des sites de taille moyenne mais aussi de gros sites à fort trafic, possédant plus de 1000 pages, avec des besoins avancés en multimédia. Certaines extensions Joomla permettent également une gestion très précise des catégories avec de nombreux niveaux : K2, par exemple, permet de créer une arborescence avec un nombre illimité de niveaux et propose une gestion plus poussée des utilisateurs.
Le principal défaut de Joomla est que l'on peut très vite se perdre dans la jungle des extensions existantes : certaines extensions gratuites sont de mauvaise qualité, d'autres ne sont plus supportées au bout de quelques mois et peuvent mettre en péril la stabilité et la sécurité de votre site internet. De plus, comme pour Wordpress, Joomla est victime de son succès et est fréquemment visé par des cyber-attaques. Enfin, les différentes versions majeures de Joomla ne sont pas compatibles entre elles et le passage à une version supérieure ne permet pas de réutiliser l'ensemble des extensions installées. Certaines seront développées plus tard pour la nouvelle version, d'autres ne seront parfois jamais adaptées.
Joomla est certainement le CMS le plus adapté à la création de moyens à gros sites dynamiques, évolutifs, multimédia et nécessitant une administration facile à prendre en main par l'utilisateur final. Joomla est notamment idéal pour la création de sites institutionnels tels que des sites de communautés de communes, de mairies, de conseils régionaux etc. mais également pour des sites complexes tels que des plate-formes de locations, des sites de petites annonces ou des annuaires grâce aux extensions spécifiques à ces usages.
Des 3 CMS les plus populaires à l'heure actuelle, Drupal est le plus robuste, le plus stable, le plus puissant mais c'est également le plus complexe tant à installer et paramétrer qu'à utiliser.
S'il y a bien un problème récurrent que tout le monde rencontre ou a été amené à rencontrer avec Joomla c'est la gestion des droits en écriture des répertoires.
En effet, Joomla a un mode de fonctionnement assez particulier à ce niveau là et c'est à mon sens son plus grand défaut.
Nous allons essayer de décrypter la gestion des droits en écriture sous Joomla de A à Z pour que ce ne soit définitivement plus un problème.
Cet article viendra s'étoffer au fil du temps (oui il y a tellement à dire sur ce sujet que je n'écrirai pas tout d'une traite!) alors n'hésitez pas à sauver son adresse dans un coin et à y revenir régulièrement si le cas de figure qui vous intéresse n'a pas encore été traité.
Et n'hésitez pas non plus à me faire part de situations que je n'ai pas évoquées ou à partager votre expérience.
vous avez modifié un fichier d'une extension Joomla afin de l'adapter à vos besoins (une feuille de style par exemple) ou de corriger un bug. Lorsque vous tentez d'uploader votre fichier modifié à l'aide de votre client Ftp préféré (Filezilla par exemple), vous vous apercevez que le transfert échoue et vous avez le message "operation not permitted" (ou équivalent).
Ce problème provient du fait que lorsque vous installez une extension Joomla depuis l'installateur du backend, des droits "apache" sont attribués aux fichiers et répertoires de l'extension concernée. Or les fichiers ou répertoires envoyés via Ftp se voient quant à eux attribuer des droits "utilisateurs" différents de ceux d'Apache (propres à chacun des sites hébergés sur le serveur, pour des raisons de sécurité)
Parmi les solutions proposées, il va falloir distinguer plusieurs cas de figure selon que vous possédez votre propre serveur dédié ou que vous êtes sur un hébergement mutualisé.
Il y a 2 points essentiels à vérifier quel que soit votre hébergement afin de réduire significativement les risques de rencontrer des problèmes sur vos sites propulsés par Joomla. Ces précautions, notamment depuis Joomla 1.5 (et plus vraisemblablement encore avec l'arrivée de Joomla 1.6) peuvent être redondantes mais je vous conseille néanmoins d'essayer de les mettre en oeuvre toutes les 2.
1-1-1-1 Le paramètre php safe modeD'abord une petite explication "technique" : le safe mode est un paramètre php censé renforcer la sécurité en désactivant un certain nombre de fonctionnalités susceptibles d'être détournées par des personnes malveillantes pour exécuter des scripts à distance par le biais de votre hébergement. Les premières versions de Joomla étaient incapables de fonctionner correctement avec ce paramètre activé : en effet l'installation d'extensions était tout simplement impossible.
Depuis Joomla 1.5, il est possible de faire fonctionner correctement son installation avec ce paramètre activé en passant par la couche Ftp de Joomla (que nous allons aborder dans le paragraphe suivant).
Néanmoins, je vous recommande de veiller à ce que ce paramètre soit désactivé. D'une part parce qu'il est obsolète depuis la sortie de la version 5.3.0 de PHP. D'autre part parce que, malgré l'utilisation de la couche Ftp de Joomla, il m'est arrivé d'être confronté à des problèmes dûs au safe mode activé, notamment avec certaines extensions au fonctionnement un peu particulier.
Si vous êtes sur un hébergement mutualisé et que le safe mode est activé, vous pouvez essayer 2 choses :
Essayez d'abord la première solution, puis la suivante. Si aucune des 2 ne fonctionne, vous pouvez éventuellement demander à votre hébergeur de mettre sur "off" le safe mode mais la plupart d'entre eux refusent donc essayez les 2 solutions proposées avant de contacter votre hébergeur à ce sujet ;).
1-1-1-2 La couche Ftp de JoomlaDepuis Joomla 1.5, il est possible de configurer une "couche ftp" qui permet que tous les fichiers ou répertoires créés par Joomla se voient attribuer des droits "utilisateur" et non plus des droits apache.
Avant d'activer la couche ftp de Joomla, il faut vous assurer que votre hébergeur permette l'ouverture de plusieurs sessions ftp simultanées. Rassurez-vous, c'est presque tout le temps le cas (à l'exception de certains hébergement "gratuits").
Pour activer la couche ftp de Joomla, munissez vous de vos paramètres ftp (hôte, nom d'utilisateur, mot de passe) puis rendez-vous dans le backend de Joomla, dans le menu allez sur "site" puis cliquez sur "configuration générale". Rendez vous ensuite sur l'onglet "serveur" puis dans la partie "Paramètres Ftp" remplissez les champs :

Validez vos changements en cliquant sur le bouton "Sauver" : si vous n'avez pas de message d'erreur en rouge et que le message suivant : "La configuration a été mise à jour avec succès !" s'affiche en haut alors la couche Ftp de Joomla est bien activée.
D'abord, selon votre hébergeur, vous ne serez pas forcément concernés par ces problèmes de droits.
En effet, certains hébergeurs ont choisi d'activer un module Apache appelé suPHP (mod_suPHP) qui permet d'exécuter les scripts php directement avec les droits utilisateurs de leur propriétaire plutôt qu'avec les droits apache.
Concrètement, cela signifie que vous n'aurez pas à donner de droits 777 aux fichiers et répertoires de votre installation Joomla et de ses extensions pour qu'ils puissent fonctionner correctement car ils possèderont les droits nécessaires. C'est donc un gage de sécurité (car pour ceux qui ne le sauraient pas, malgré le fait que de nombreuses extensions Joomla le demandent, il est très dangereux de laisser sur un serveur des fichiers ou des répertoires avec des droits 777).
De plus vous pourrez également modifier sans aucun problèmes les fichiers et répertoires de votre installation Joomla via Ftp.
Pour résumer, si vous êtes sur un hébergement mutualisé, commencez par demander à votre hébergeur si suPHP est activé. S'il est activé alors en théorie vous ne devriez pas être confronté aux problèmes de droits. S'il ne l'est pas, vous pouvez tenter de demander à votre hébergeur de l'activer. Néanmoins vos chances d'obtenir satisfaction sont très faibles car bien souvent, si suPHP n'est pas activé...c'est qu'il y a une raison. En effet, suPHP ne présente pas que des avantages : il a comme principal inconvénient d'être très gourmand en ressources et de ralentir de ce fait l'affichage des pages de votre site.
Vous n'avez pas encore trouvé d'hébergeur et vous en cherchez un avec lequel vous n'aurez pas de problèmes de droits ? Parmi ceux que je connais (et que j'utilise), je vous recommande la formule "Hebergement Pro" chez OVH ainsi que le "Forfait HostPapa". J'utilise ces 2 hébergements mutualisés pour tous mes sites "en cours de développement" et je n'ai rencontré jusqu'à ce jour aucun problème de droits sur mes installations Joomla. Il y en a peut-être (sûrement!) d'autres mais je ne les connais pas donc je ne m'aventurerai pas à conseiller quelque chose sans l'avoir essayé. Si parmi vous il y en a qui ont des retours d'expérience à partager, ils sont bien entendu les bienvenus ;).
Si l'interface Plesk peut s'avérer simple d'utilisation pour les débutants, elle présente malheureusement quelques gros défauts de conception. Et parmi ces défauts, il y en a un qui, vous l'aurez compris, concerne la gestion des droits sous Joomla...
En effet, certaines des solutions proposées plus haut ne fonctionne pas sur les serveurs utilisant Plesk. L'installation de suPHP notamment est fortement déconseillée car Plesk cohabite mal avec (sic!). J'ai passé beaucoup de temps à faire des recherches sur les forums français et étrangers et je suis arrivé à mettre en place une sorte de "procédure" permettant de ne plus avoir de problèmes de droits tout en ne compromettant pas la sécurité. Il existe des solutions moins contraignantes mais dont la mise en oeuvre est techniquement beaucoup plus compliquée et plus risquée donc je ne les développerai pas ici (je ne veux pas être responsable de "gros dégâts" causés sur votre installation serveur ;)).
Voici donc comment je procède :
D'abord, si vous aviez changé les droits de certains répertoires ou fichiers en 777, repassez les en 755 pour les répertoires et 644 pour les fichiers. En effet, une fois que nous aurons modifié le propriétaire de ces répertoires et de ces fichiers, vous ne pourrez plus changer leurs droits via ftp, il faudra vous loguer en root (donc tant qu'à faire autant prendre ses précautions au préalable).
Loguez vous en root via ssh puis exécutez la commande suivante sur chacun des répertoires qui, malgré l'activation de la couche ftp de Joomla, nécessitent des droits en écriture :
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/downloads
Voici quelques unes des extensions concernées : (je ne détaillerai pas toutes les étapes de configuration dans le backend car je pars du principe que si vous possédez un serveur dédié, vous êtes à l'aise avec la configuration des extensions de Joomla)
Pour Akeeba Backup, créez un répertoire nommé par exemple "akeebatemp" et un répertoire nommé "backups" à la racine de votre site puis en ssh tapez les commandes suivantes :
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/akeebatemp
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/backups
Rendez-vous ensuite dans le backend de Joomla puis dans la configuration d'Akeeba Backup saisissez httpdocs/backups comme répertoire des sauvegardes et httpdocs/akeebatemp comme répertoire temporaire (n'oubliez pas de renseigner le chemin absolu avant "httpdocs"). Sauvez et vous verrez que la configuration du composant Akeeba Backup permet désormais la sauvegarde sans qu'il ait été nécessaire de mettre les répertoires en 777.
Le composant MorfeoShow nécessite des droits en écriture dans plusieurs répertoires afin notamment de pouvoir générer les thumbs des images et il ne sait pas passer par la couche ftp de Joomla.
Pour connaître les répertoires concernés, il suffit de vous rendre sur l'onglet "configuration" du composant MorfeoShow et vous verrez tous les répertoires et fichiers qui nécessitent des droits en écriture.
Il suffit alors de taper, en ssh :
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/images/morfeoshow
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/components/com_morfeoshow
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/administrator/components/com_morfeoshow
Et tous les répertoires sont désormais modifiables (vous pouvez le vérifier depuis la configuration de MorfeoShow en raffraichissant la page).
Le plugin MultiThumb demande lui aussi des droits en écriture sur certains répertoires pour la génération automatique des thumbs.
En ssh :
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/plugins/content/multithumb/thumbs
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/plugins/content/multithumb/images
1-2-4 Sobi2
Le composant Sobi2 (indétronable pour mettre en place un annuaire efficace sur un site propulsé par Joomla) demande également des permissions sur certains de ses répertoires.
Mais il y a une petite particularité, c'est que par défaut il utilise le répertoire "/images/stories" pour stocker les images associées aux catégories. Or si nous attribuons des droits apache au répertoire "/images/stories" alors il ne sera plus possible d'uploader d'image dans ce répertoire via ftp (ni même depuis l'éditeur de Joomla puisqu'il utilise la couche ftp).
Heureusement, Sobi2 permet de modifier le répertoire de stockage de ces images : rendez-vous dans le backend de Joomla et cliquez sur "Sobi2" dans la liste des composants. Dans la colonne de gauche, cliquez sur "Configuration" puis sur "Editeur de registres" :

Dans le champ "cat_images_folder", remplacez le répertoire /images/stories/ par un autre répertoire de votre choix que vous aurez préalablement créé. Par exemple : /images/stories/sobi2cat/
!!! Pensez a bien mettre le "/" final !!!
Tapez les commandes suivantes en ssh :
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/images/stories/sobi2cat
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/components/com_sobi2
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/administrator/components/com_sobi2
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/images/com_sobi2/clients
chown -R apache:apache /var/www/vhosts/votredomaine.fr/httpdocs/media
Ensuite rendez-vous sur l'onglet "A propos du système" (dans la colonne de gauche) puis cliquez sur l'onglet "Effectuer vérification système" puis sur le bouton "Effectuer vérfication système" : en bas, tous les répertoires doivent être marqués "inscriptible" et l'état (state OK ?) "Perfect". Le tour est joué!
Vous verrez que
Nous proposons aux artisans, commerçants ou professionnels indépendants la création d'un site vitrine clé en main à un tarif calculé au plus juste : 500€ TTC Ce tarif inclut pour une durée d'un an l'achat du nom de domaine de votre choix ainsi que l'hébergement de votre site web ; les années suivantes le nom de domaine sera facturé 15€ TTC par an et l'hébergement 40€ TTC par an. Il vous est tout à fait possible de passer sur un hébergement supérieur en cours d'année si le nombre de visiteurs de votre site web devient plus important et que vous trouvez que l'accès à votre site n'est pas assez rapide : rendez-vous sur notre page "hébergement" pour consulter nos différentes formules.
Le pack site vitrine Mini
Le site vitrine tel que proposé dans cette formule comprend au maximum 10 pages dont une page d'accueil comportant une présentation de votre activité, une page "contact" (un formulaire contact à remplir en ligne permettant aux visiteurs de vous envoyer un E-mail directement depuis votre sit), une page "localisation" (une carte Google permettant de situer géographiquement votre lieu d'implantation). Vous pouvez ensuite choisir (mais nous pouvons vous y aider, vous conseiller!) le contenu des autres pages : une galerie de photos, une page de news, une page événements, une ou plusieurs pages mettant en valeur votre savoir-faire ou détaillant votre activité etc.
Nous incluons votre logo (ou nous pouvons nous charger de vous en créer un à tarif préférentiel si vous n'en n'avez pas ou si vous souhaitez en changer : cf. création de logo) et vous nous indiquez les couleurs dominantes que vous souhaitez sur votre site. Si vous n'avez pas d'idées pour les couleurs nous pouvons vous les proposer.En revanche dans cette formule vous n'avez pas la possibilité de choisir la disposition des éléments du site : nous vous proposons plusieurs "designs" qui nous semblent les mieux adaptés à votre activité et vous en choisissez un. Une fois votre choix effectué et le travail commencé il n'est pas possible de revenir en arrière.
Vous l'aurez compris cette formule est idéale pour tous les professionnels qui ressentent la nécessité de communiquer sur leur activité via internet mais qui n'ont pas de compétence en ce domaine et qui souhaitent ne pas avoir à s'en préoccuper. Les clients qui étaient dans cette situation et qui nous ont fait confiance sont entièrement satisfaits de nos services et nous recommandent autour d'eux.
Quelques exemples de sites vitrines que nous avons créés dans le cadre de cette formule :
Duis dictum pellentesque magna. Ut vestibulum dolor et est. Nulla feugiat laoreet nulla. Morbi est lacus, auctor ut, blandit quis, posuere et, ante.
Phasellus eros. Etiam orci diam, placerat et, pulvinar eget, egestas ut, lectus. Sed aliquet lectus in pede.
Sed eu sem vitae massa sagittis posuere. Quisque ut nisl non tellus iaculis cursus. Donec porta pellentesque magna.
Sed eu sem vitae massa sagittis posuere. Quisque ut nisl non tellus iaculis cursus. Donec porta pellentesque magna. Duis dictum pellentesque magna. Ut vestibulum dolor et est. Nulla feugiat laoreet nulla. Morbi est lacus, auctor ut, blandit quis, posuere et, ante. Phasellus eros. Etiam orci diam, placerat et, pulvinar eget, egestas ut, lectus. Sed aliquet lectus in pede.
Sed eu sem vitae massa sagittis posuere. Quisque ut nisl non tellus iaculis cursus. Donec porta pellentesque magna. Duis dictum pellentesque magna. Ut vestibulum dolor et est. Nulla feugiat laoreet nulla. Morbi est lacus, auctor ut, blandit quis, posuere et, ante. Phasellus eros. Etiam orci diam, placerat et, pulvinar eget, egestas ut, lectus. Sed aliquet lectus in pede.