J'ai installé la pile LAMP et Wordpress sur un serveur Apache2 local à l'aide des didacticiels suivants.
Mais quand j'essaye de télécharger un fichier multimédia (image/son), je reçois l'erreur.
The uploaded file could not be moved to wp-content/uploads/2015/01.
Quel est le problème? J'ai ajouté mon utilisateur au groupe www-data et chown 'd le répertoire /var/www/ aussi.
Vous pouvez utiliser ce script pour corriger l'autorisation wordpress:
#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro <mike [at] conigliaro [dot] org>
#
WP_OWNER=www-data # <-- wordpress owner
WP_GROUP=www-data # <-- wordpress group
WP_ROOT=$1 # <-- wordpress root directory
WS_GROUP=www-data # <-- webserver group
# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;
# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php
# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;
enregistrez-le dans un fichier, exécutez-le et transmettez-le à votre répertoire d'installation wp:
wget https://Gist.github.com/Adirael/3383404/raw/6c5446d56477426faeb709e5b807f00422acdea2/fix-wordpress-permissions.sh
chmod +x fix-wordpress-permissions.sh
Sudo ./fix-wordpress-permissions.sh /var/www/html
Espérons que cela aide à résoudre votre problème et explique ce qui se passe, pour vous aider à l'avenir aussi. Lorsque vous accédez au wordpress "tableau de bord" et que vous téléchargez des fichiers, "l'utilisateur" qui modifie le système de fichiers est www-data
(c'est-à-dire libapache2-mod-php5 via le serveur Web Apache). Par conséquent, afin d'apporter des modifications dans wp-content/uploads/2015/01.
, www-data
doit soit disposer d'autorisations en écriture sur le répertoire, soit propre le répertoire. Cela signifie que vous pouvez soit donner des autorisations générales au dossier en lançant:
chmod -R 777 wp-content/uploads
Remarque: vous devrez d'abord cd
dans le répertoire wordpress, et si vous ne possédez pas actuellement le dossier, vous devrez utiliser Sudo
.
Toutefois, selon mon expérience, cela entraînera des problèmes, c'est-à-dire que dès que vous aurez résolu ce problème d'autorisation, vous rencontrerez probablement d'autres problèmes lorsque wordpress essaie d'écrire des fichiers dans d'autres répertoires, par exemple. quand il met à jour, de nouveaux plugins, etc., alors dans ce cas, je voudrais utiliser:
Sudo chown -R www-data <wordpress-parent-directory>
et laissez www-data
posséder le dossier entier.
Remarque: ce n’est pas un gros problème pour l’installation locale, mais lorsque vous passez sur un serveur de production, vous devez faire attention aux autorisations et ne donnez en général qu’un serveur Web absolu minimum les autorisations dont il a besoin pour faire son travail.
Le répertoire wp-content est-il vraiment celui que vous pensez?
Je remarque que l'article en question a créé un répertoire dans /var/www/html/
mais wordpress sera dans le répertoire wordpress que vous avez extrait du fichier compressé. Dans mon cas, c'était /var/www/html/wordpress/wp-content
qui était un lien symbolique vers un autre répertoire. Une fois que j'avais réparé les privilèges et la propriété à cet endroit, cela a fonctionné pour moi.