Je suis coincé avec ce problème depuis une semaine maintenant, en parcourant divers sites Web, je n'arrive pas à faire en sorte que cela fonctionne.
J'ai installé Apache2 et un site Web Wordpress, situé dans le dossier d'un utilisateur à l'adresse /home/<user>/www
.
Maintenant, le site Web fonctionne, mais l'installation de plugins à partir de l'interface Web (et de tout autre élément nécessitant un accès en écriture (modification des paramètres, téléchargement de contenu multimédia, etc.) ne fonctionnera pas, car wordpress (plus semblable à Apache) ne fonctionne pas. N'avez pas accès en écriture à ces fichiers.
le répertoire /home/<user>/www
et tout ce qui se trouve en dessous appartiennent à l'utilisateur et au groupe <user>
.
J'ai déjà essayé plusieurs solutions, mais aucune d'entre elles n'a fonctionné, notamment:
Changer le propriétaire de /home<user>/www
en www-data:www-data
. Très bien - honnêtement, je n’ai pas essayé cette solution car je ne la voulais pas. Si vous faites cela pour tous les utilisateurs du serveur, ils auront accès à tous les dossiers, mais ils ne devraient pouvoir accéder qu'à leur dossier personnel, pas aux autres.
Ajout de www-data
au groupe de l'utilisateur. Je pensais que cela pourrait fonctionner, mais apparemment cela ne fonctionne pas. L'utilisateur www-data
est bien dans le groupe d'utilisateurs (vérifié avec la commande id), mais cela ne semble toujours pas fonctionner.
Définition d'une liste de contrôle d'accès sur le répertoire de base de l'utilisateur. Est-ce que cela aussi et donnait www-data
rwx accès au répertoire de base, et pourtant il n'a toujours pas aidé.
Si vous êtes intéressé, le répertoire /home/<user>/
et tous les fichiers/répertoires situés en dessous disposent de l'autorisation 775.
Bon, alors, après avoir continué à me débattre, j'ai finalement trouvé une solution qui fonctionne pour moi.
Voici ce que j'ai fait: Supposons que j'ai créé un nouvel utilisateur appelé dummy
avec son dossier personnel situé à l'adresse /home/dummy
et un dossier dédié à sa présentation Web situé à l'adresse /home/dummy/www
.
Sudo chgrp -R www-data /home/dummy/www
pour changer le groupe du répertoire www
et tout son contenu en www-data
(l'utilisateur par défaut d'Apache pour l'accès Web.).Sudo chmod -R g+wrxs /home/dummy/www
pour donner au groupe www-data
les autorisations d'écriture, de lecture et d'exécution sur le répertoire spécifié et son contenu. La chose importante ici est la partie s
. Cela garantit que le groupe (www-data
) devient propriétaire de tout fichier créé dans le répertoire avec le paramètre s.Pas besoin d'ajouter l'utilisateur dummy
à aucun groupe.
J'espère que cela aidera si quelqu'un rencontre le même problème que moi à l'avenir.
EDIT: Après quelques tests supplémentaires, cela ne semble pas suffire. Outre les deux étapes mentionnées ci-dessus, vous devez également expliquer explicitement à wordpress comment travailler avec des fichiers en ajoutant define('FS_METHOD', 'direct');
au fichier de configuration wordpress.
En outre, pour une configuration plus stricte des autorisations, veuillez vous reporter à l'étape 5 du guide Comment installer WordPress de DigitalOcean avec LAMP sous Ubunt .