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 :

sudo adduser wordpress

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

sudo usermod -a -G wordpress user

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

sudo nano /etc/apache2/envvars

on repère les lignes

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

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

export APACHE_RUN_USER=wordpress
export APACHE_RUN_GROUP=wordpress

puis on redémarre apache

sudo service apache2 restart

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

cd /home/user
sudo chown -R user:wordpress www/

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

sudo find ./www -type d -exec chmod 0755 {} ; # applique 755 sur les dossiers 
sudo find ./www -type f -exec chmod 0644 {} ; # applique 644 sur les fichiers

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

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s