J'ai installé un blog WordPress dans mon système local. Mais lorsque j'essaie d'ajouter des plugins à l'administrateur, cela demande un accès FTP. Que dois-je configurer pour que WordPress puisse télécharger sans FTP?
118
Essayez d'ajouter le code dans wp-config.php:
define('FS_METHOD', 'direct');
FS_METHOD
est courteFILESYSTEM_METHOD
. Lorsque vous définissez pourdirect
-ly modifier les fichiers - c'est-à-dire ne pas utiliser FTP, vous obligez WordPress à essayer de modifier les fichiers directement sur le site.Si vous utilisez Ubuntu.
la source
www-data
voir ici: codex.wordpress.org/Hardening_WordPress ou ici: stackoverflow.com/questions/18352682/…«Chaque fois que vous utilisez le panneau de configuration WordPress pour installer, mettre à niveau ou supprimer automatiquement des plugins, WordPress doit apporter des modifications aux fichiers sur le système de fichiers.
Avant d'apporter des modifications, WordPress vérifie d'abord s'il a ou non accès pour manipuler directement le système de fichiers.
Si WordPress ne dispose pas des autorisations nécessaires pour modifier directement le système de fichiers, il vous sera demandé des informations d'identification FTP afin que WordPress puisse essayer de faire ce dont il a besoin via FTP. "
Solution: afin de savoir quel utilisateur votre instance d'Apache s'exécute, créez un script de test avec le contenu suivant:
Pour moi, c'était démon et non www-data. Ensuite, corrigez l'autorisation en:
la source
<?php echo(exec("id")); ?>
ce qui vous fournira même des données de groupe au-delà de l'ID utilisateur:uid=5018(web27) gid=5012(client7) groups=5012(client7),5002(sshusers)
whoami
pour voir les mêmes informations:sudo chown -R `whoami` /path/to/your/local/www/folder
Sur OSX, j'ai utilisé ce qui suit et cela a fonctionné:
_www est l'utilisateur sous lequel PHP s'exécute sur Mac.
(Vous devrez peut-être également chmod certains dossiers. J'avais fait cela en premier et cela ne l'a pas résolu. Ce n'est que lorsque j'ai exécuté la commande chown que cela a fonctionné, donc je ne suis pas sûr que c'était la commande chown seul, ou une combinaison de chmod et chown.)
la source
J'ai changé la propriété du dossier wordpress en www-data de manière récursive et redémarré apache.
Ça a marché comme sur des roulettes!
la source
Dès le premier coup sur Google :
C'est plutôt normal dans la plupart des environnements d'hébergement partagé - les fichiers sont stockés en tant qu'utilisateur et Apache s'exécute en tant qu'utilisateur
apache
ouhttpd
. C'est en fait une bonne précaution de sécurité, donc les exploits et les hacks ne peuvent pas modifier les fichiers hébergés. Vous pouvez contourner cela en définissant tous les fichiers WP sur la sécurité 777, mais cela signifie aucune sécurité, donc je vous déconseille fortement cela. Utilisez simplement FTP, c'est la solution de contournement automatiquement conseillée avec une bonne raison.la source
Si lors de l'installation d'un plugin, Wordpress vous demande votre nom d'hôte ou vos détails FTP. Suivez ensuite ces étapes:
Connectez-vous à votre serveur et accédez à / var / www / html / wordpress / . Ouvrez wp-config.php et ajoutez cette ligne après define ('DB_COLLATE')
Si vous obtenez l'erreur "Impossible de créer le répertoire". Donnez des autorisations d'écriture à votre répertoire wordpress de manière récursive comme
REMARQUE. Pour des raisons de sécurité, révoquez ces autorisations une fois que vous avez installé un plugin en tant que
la source
Accédez d'abord à votre dossier d'installation (par exemple)
Nous allons maintenant modifier votre répertoire htdocs:
Entrez votre mot de passe root lorsque vous y êtes invité, puis terminez-le par un appel chmod:
la source
J'ai fait une installation locale de WordPress sur Ubuntu 14.04 en suivant les étapes décrites ici et en exécutant simplement:
a résolu mon problème de téléchargement de plugins. La seule raison pour laquelle je laisse ce message ici est que lorsque j'ai recherché mon problème sur Google, c'était l'un des premiers résultats et cela m'a conduit à la solution de mon problème.
J'espère que celui-ci aide à n'importe qui!
la source
Nous avons eu le même problème dans le cadre d'un problème plus important. La solution suggérée de
cache cette fenêtre, mais nous avons encore eu des problèmes avec le chargement des thèmes et des mises à jour, etc. Il est lié aux autorisations, mais dans notre cas, nous avons résolu le problème en passant du fournisseur de php OS mod_php à l' application FastCGI du fournisseur de système d'exploitation php plus sécurisé .
la source
Le moyen le plus simple de résoudre ce problème consiste à ajouter les informations FTP suivantes à votre
wp-config.php
FTP_BASE est le chemin complet vers le dossier "base" (ABSPATH) de l'installation WordPress FTP_CONTENT_DIR est le chemin complet vers le dossier wp-content de l'installation WordPress. FTP_PLUGIN_DIR est le chemin complet du dossier plugins de l'installation WordPress.
la source
Comme mentionné par Niels, cela se produit parce que l'utilisateur du processus serveur ne peut pas écrire dans le dossier Wordpress.
Mais voici ce que beaucoup d'articles n'expliquent pas. C'est le propriétaire du processus php, pas du processus nginx. Si vous essayez de changer le propriétaire de nginx, cela ne résoudra pas le problème.
Pour le résoudre, essayez d'exécuter
ps aux
pour voir quel utilisateur possède le processus php-fpm. Vérifiez ensuite que l'utilisateur est le même utilisateur que le propriétaire du dossier wordpress, ou qu'il peut au moins y écrire. Si l'utilisateur ne peut pas y écrire, vous devrez modifier les autorisations et / ou la propriété du dossier; ou mettez les deux utilisateurs (propriétaire du serveur et propriétaire du dossier wordpress) dans un groupe commun qui peut écrire dans le dossier; ou remplacez la propriété "user" de php.ini par un utilisateur qui peut écrire dans le dossier.la source
Il y a beaucoup de réponses similaires à cette question, mais aucune d'entre elles n'aborde complètement la cause profonde. Le commentaire de Sebastian Schmid sur le message original y touche mais pas complètement. Voici ma prise en date du 06/11/2018:
Cause première
Lorsque vous essayez de télécharger un plugin via l'interface d'administration de WordPress, WordPress appellera une fonction appelée "get_filesystem_method ()" (ref: /wp-admin/includes/file.php:1549 ). Cette routine tentera d'écrire un fichier à l'emplacement en question (dans ce cas le répertoire du plugin). Il peut bien sûr échouer ici immédiatement si les autorisations de fichier ne sont pas correctement configurées pour permettre à l'utilisateur WordPress (pensez à l'identité de l'utilisateur exécutant le php) d'écrire le fichier à l'emplacement en question.
Si le fichier peut être créé, cette fonction détecte alors le propriétaire du fichier temporaire, ainsi que le propriétaire du fichier actuel de la fonction (réf: /wp-admin/includes/file.php:1572 ) et compare les deux. S'ils correspondent alors, selon les termes de WordPress, "WordPress crée des fichiers avec le même propriétaire que les fichiers WordPress, cela signifie qu'il est sûr de modifier et de créer de nouveaux fichiers via PHP" et votre plugin est téléchargé avec succès sans l'invite des informations d'identification FTP. S'ils ne correspondent pas, vous obtenez l'invite des informations d'identification FTP.
Corrections
Assurez-vous que l'identité qui exécute votre processus php est le propriétaire du fichier pour:
a) Tous les fichiers d'application WordPress, ou ...
b) Au minimum le fichier /wp-admin/includes/file.php
Commentaires finaux
Je ne suis pas trop enclin à appliquer spécifiquement la propriété des fichiers au file.php pour contourner ce problème (cela me semble un peu piraté pour dire le moins!). Il me semble à ce stade que la base de code WordPress tend à nous faire exécuter le processus PHP sous le même principal utilisateur que le propriétaire du fichier pour les fichiers d'application WordPress. Je serais heureux de recevoir des commentaires de la communauté à ce sujet.
la source
J'étais confronté au même problème! J'ai ajouté le code ci-dessous dans le fichier wp-config.php (dans n'importe quelle ligne) et cela fonctionne maintenant!
la source