web-dev-qa-db-fra.com

Problème d'autorisations lors de la mise à niveau de Wordpress vers la version 3.2 via l'interface d'administration

J'utilise le serveur 10.04. J'essaie de mettre à niveau Wordpress via l'interface d'administration. J'ai un serveur vsftpd en cours d'exécution et il accepte les connexions locales. Pour mes informations d'identification FTP, j'ai fourni les éléments suivants:

  • Nom d'hôte: 127.0.0.1:21
  • Nom d'utilisateur et mot de passe: l'utilisateur fourni a un accès en écriture à la structure de répertoires/var/www.
  • Utilisation d'un simple serveur FTP, non sécurisé.

Lorsque je soumets la mise à niveau, le message suivant est renvoyé au bout d'un moment (1-2 minutes):

Downloading update from http://wordpress.org/wordpress-3.2.Zip…

Unpacking the update…

Could not create directory.: /var/www/wordpress/wp-content/upgrade/wordpress-3.tmp

Installation Failed

Je suppose que c'est un problème d'autorisations, mais je n'ai pas été capable de le résoudre. Même la configuration des répertoires chmod 777 ne fonctionne pas. Des idées? Merci!

Edit: Test avec ftp 127.0.0.1 donne ce qui suit:

$ ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.2.2)
Name (127.0.0.1:wpuser): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir /var/www/wordpress/wp-content/upgrade/test/
550 Permission denied.

Peut-être que quelque chose ne va pas avec mes paramètres vsftpd? Voici le fichier vsftpd.conf:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

Modifier la partie 2:

Je ne peux pas encore répondre car je n'ai pas assez de réputation. Voici comment j'ai résolu le problème:

J'ai finalement résolu le problème, bien que ce ne soit peut-être pas la meilleure solution. Gardez à l'esprit que le service FTP n'est pas accessible par Internet extérieur.

Donc, Wordpress essaie d'utiliser FTP pour créer les répertoires et les fichiers nécessaires à la mise à niveau. Cela se produit également lors du téléchargement de plugins ou de thèmes. Comme je ne pouvais pas non plus créer un répertoire via FTP, j'ai décidé d'essayer ce qui suit dans la configuration de vsftpd:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

J'ai redémarré le serveur et tout a fonctionné. Maintenant, je suppose que cela peut être un problème de sécurité, mais le compte anon est désactivé (anonymous_enable = NO).

De plus, en guise de commentaire et de réponse aux deux autres suggestions concernant les autorisations de répertoire, voici ce que j'ai essayé d'autoriser les autorisations sur le serveur.

  • Tous les répertoires wordpress 775
  • Tous les fichiers wordpress 664
  • Propriétaire: mon utilisateur, groupe: utilisateurs
  • utilisateur de www-data ajouté au groupe d'utilisateurs (juste un test, ne fonctionnait évidemment pas)

Donc, je pense www-data avait un accès en écriture aux répertoires nécessaires, mais cela ne fonctionnait toujours pas. C'est pourquoi j'ai commencé à explorer les problèmes du serveur FTP.

Je me réjouis de tout commentaire à ce sujet.

3
Magicked
chown -R ftpuser.ftpuser /var/www/yourwebsite/wp-content/upgrade/

chmod 755 /var/www/yourwebsite/wp-content/upgrade/
2
raswan

Ce document peut vous aider à comprendre comment les autorisations doivent être appliquées pour votre fichiers/dossiers afin de Wordpress travailler sans problème.

D'après mon expérience personnelle, donner 755 autorisations au dossier WordPress fait l'affaire, mais certains dossiers nécessiteront d'avoir 777, peu importe ce que WordPress dit, plusieurs plugins et/ou mises à jour (même sur le noyau WP) ne fonctionnera pas si ces dossiers ne disposent pas des autorisations 777.

Citation du document que je mentionne en haut de cette réponse:

  1. Tous les fichiers doivent appartenir au compte de l'utilisateur réel et non au compte d'utilisateur utilisé pour le processus httpd.
  2. La propriété de groupe n'est pas pertinente, sauf si des exigences de groupe spécifiques sont définies pour la vérification des autorisations de processus du serveur Web. Ce n'est généralement pas le cas.
  3. Tous les répertoires doivent être 755 ou 750.
  4. Tous les fichiers doivent être au format 644 ou 640. Exception: wp-config.php doit avoir la valeur 600 pour empêcher les autres utilisateurs du serveur de le lire.
  5. Aucun répertoire ne devrait jamais recevoir 777, même les répertoires de téléchargement. Depuis que le processus php est lancé en tant que propriétaire des fichiers, il obtient les autorisations de ces propriétaires et peut même écrire dans un répertoire 755.

Cette réponse: Règles générales pour traiter les autorisations de fichiers sera utile pour une meilleure compréhension des autorisations dans un système basé sur Ubuntu. Dans le cas où il s'agirait d'un serveur local, il ne sera pas nécessaire d'accéder à un client FTP pour effectuer la tâche, mais à l'aide d'un terminal.

Si vous avez besoin d'informations supplémentaires à ce sujet, n'hésitez pas à laisser un commentaire. Mon WP blog peut être atteint via http://geppettvs.x10.mx/blog et j'ai rencontré ce problème à maintes reprises dans le passé pour des serveurs distants et locaux.

Glossaire de ma réponse:

  1. Le serveur local doit être considéré comme un ordinateur que je peux brancher avec un clavier ou une souris pour interagir directement avec son système d'exploitation.
  2. Le serveur distant est un ordinateur qui n'est pas physiquement devant moi et je ne peux pas y brancher un clavier ou une souris pour pouvoir fonctionner avec celui-ci. OS.
2

Avez-vous examiné votre espace disque disponible? C'était mon problème lorsque j'essayais de mettre à jour certains plugins. J'ai augmenté le quota et le problème a été résolu.

0
Christopher

Avez-vous essayé de changer le propriétaire et le groupe du répertoire. Généralement, /var/www devrait avoir www-data en tant que propriétaire et groupe. Changez le propriétaire et le groupe de /var/www/wordpress... en utilisateur ftp que vous utilisez. La commande ressemble à celle ci-dessous,

chown -R www-data:www-data /var/www/wordpress

Et essayez également d'utiliser l'adresse IP à la place 127.0.0.1

0
user3215