En finir définitivement avec les problèmes de permissions de WordPress

Bonjour à toutes et tous, cet article fait écho à celui que j’avais écrit il y a un petit moment de ça, et qui expliquait comment installer son dossier www dans le home. Le gros soucis est que lorsqu’on procède ainsi, il y a un conflit de droit pour l’écriture des fichiers et dossiers entre le user qui possède le dossier dans home, et le user apache. Mais ça c’était avant !

Quelques explications

Avant de commencer il faut savoir que lorsque l’on effectue une opération via WordPress, comme installer un thème, un plugin ou uploader un fichier dans la bibliothèque de médias, c’est le user Apache qui écrit sur le disque. De fait, si le dossier www de notre site est installé dans le home, la chose devient impossible et on est forcé : soit de lui donner tous les droits (genre 777), soit de le rendre propriétaire du dossier, et dans ce cas là adieu la possibilité de faire des modifications directement en ftp par la user.

La solution

On va procéder par étape et dire que le user qui exécute Apache ne sera plus www-data, mais un user intermédiaire que l’on nommera « wordpress ». On créé donc le user :

On ajoute le user « user » au groupe « wordpress »

On va à présent modifier le user qui exécute apache. On édite le fichier envvars d’apache

on repère les lignes

et on remplace « www-data » par le user « wordpress » comme ceci

puis on redémarre apache

A présent on se rend dans /home et on modifie le propriétaire du dossier www

Le propriétaire est bien configuré, il ne reste plus qu’à configurer les droits sur les fichiers et dossiers

Et c’est tout ! Fini les problèmes d’écriture à la fois par apache et votre user.