web-dev-qa-db-fra.com

Pourquoi One Click Update échoue-t-il sur localhost via FTP avec les autorisations 777 sur les fichiers de site?

Je peux avec succès télécharger/supprimer des médias, ajouter/supprimer des plugins et éditer des fichiers de thème dans admin CP. La seule chose que je ne puisse pas faire dans le CP administrateur est une mise à jour normale en un clic à partir de WordPress 3.7.1 à 3.8. Des idées?

Le message d'erreur lorsque j'essaie d'exécuter des mises à jour:

Téléchargement de la mise à jour à partir de https://wordpress.org/wordpress-3.8-new-bundled.Zip

Déballer la mise à jour…

La mise à jour ne peut pas être installée car nous ne pourrons pas copier certains fichiers. Cela est généralement dû à des autorisations de fichiers incohérentes: wp-admin/includes/update-core.php

L'installation a échoué

À des fins de test, tous les répertoires et fichiers du parent avec 777 autorisations et utilisateur: propriété du groupe sont définis sur l'utilisateur de mon serveur Web www-data.

-rwxrwxrwx 1 www-data www-data every-freakin-file.php

La sortie de grep www-data /etc/group affiche mon utilisateur vsftpd et mon identifiant principal.

www-data: x: 33: ftps, ryan

Les fichiers de site se trouvent dans un répertoire utilisateur compatible avec les sites, situé en dehors de/var/www. Il est installé sur un hôte local privé LAMP avec ports.conf configuré comme suit.

NameVirtualHost *: 80 Écouter 127.0.0.1:80

# Si vous ajoutez NameVirtualHost *: 443 ici, vous devrez également changer
# l’instruction VirtualHost dans/etc/Apache2/sites-available/default-ssl
# à
# Indication du nom du serveur pour les hôtes virtuels nommés SSL n'est pas
# pris en charge par MSIE sous Windows XP.
Écoutez 443


Écoutez 443

Remarques finales: un autre utilisateur doit-il être ajouté au groupe www-data? Avoir des autorisations 777 sur chaque fichier et répertoire exclut les autorisations comme raison de l'échec de la mise à jour?

Je vois un fil résolu avec une réponse sélectionnée sur un fichier de configuration "vsftp", mais c'est trop vague pour être utile. Ma configuration /etc/vsftpd.conf fonctionne très bien sauf lorsque j'essaie de mettre à jour en un clic.
WP La mise à niveau ne peut pas créer de répertoire, même si les permanentes sont 777

Mise à jour: Mon phpinfo.php indique Apache_RUN_USER et Apache_RUN_GROUP est www-data. J'ai confirmé que cet utilisateur: le groupe possède tous les fichiers avec des autorisations de lecture/écriture/exécution.

2
iyrin

Ce problème est résolu. Le problème de l'autorisation concerne la manière dont les fichiers sont téléchargés sur le site WordPress lors de la mise à jour. Pour l'instant, la solution suPHP est ma solution préférée, car elle est plus simple et nécessite moins d'autorisations sur les fichiers, mais si vous ne souhaitez pas le faire, vous devrez veiller à ce que votre utilisateur FTP s'exécute correctement avec WordPress.

solution suPHP
Depuis que j'ai posté cette question, j'ai migré vers suPHP, ce qui permet au serveur Web de s'exécuter en tant qu'utilisateur local au lieu d'utiliser l'utilisateur FTP. Une fois que suPHP a été configuré (voir: Installer suphp avec Apache sous Ubuntu ), j'ai désactivé le constantes de mise à niveau de WordPress dans wp-config afin de ne plus utiliser FTP.

Maintenant, la mise à jour en un clic fonctionne car les fichiers de mise à jour sont gérés par l'utilisateur local au lieu du groupe auquel l'utilisateur FTP appartient. Cela signifie que les autorisations de fichier de 644 et les autorisations de répertoire de 755 devraient fonctionner, car l'accès en écriture du groupe n'est plus nécessaire.

2
iyrin

Erreur:

La mise à jour ne peut pas être installée car nous ne pourrons pas copier certains fichiers. Cela est généralement dû à des autorisations de fichiers incohérentes.

Solution:

  1. Vérifiez SELinux, assurez-vous qu’il est désactivé et sinon, vous devriez le désactiver. Dans PuTTY, #sestatus, la sortie doit être désactivée et sinon, éditez-la à: /etc/selinux/config

  2. Remplacez /var/www/html par 777. Dans PuTTY: # chmod -R 777 /var/www/html

Autres notes:

  1. Si votre serveur Web n'active pas SELinux, dans la plupart des cas, l'erreur sera résolue.

  2. Cette erreur n'a rien à voir avec la propriété d'un fichier ou d'un dossier, ou la propriété d'un groupe. Vous pouvez accéder au sereur ftp via le tableau de bord WordPress avec root ou tout autre nom d'utilisateur que vous avez créé auparavant.

  3. J'ai passé 3 jours à essayer de résoudre ce problème, sans succès de la part de Google. Heureusement, j'ai deux sites Web hébergés, et l'un est SELinux désactivé, et aucun problème de mise à jour en un clic, un autre site Web activé pour SELinux présente le problème de mise à jour en un clic, alors j'ai finalement deviné que c'était peut-être le problème, et c'est la cause fondamentale .

0
pagetrans

J'utilise Apache sur OSX et cela a résolu le problème pour moi:

Sudo chown -R _www:_www mywebfolder
Sudo chmod -R 775 mywebfolder
0
Justin