157 votes

WordPress demande mes identifiants FTP pour installer des plugins

J'ai installé un blog WordPress sur mon système local. Mais lorsque j'essaie d'ajouter des plugins à partir de l'administration, il demande l'accès FTP. Que dois-je configurer pour que WordPress puisse téléverser sans FTP?

13voto

Abhishek Rathore Points 355

Si au cours 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')

define('FS_METHOD', 'direct');

Si vous obtenez une erreur "Impossible de créer le répertoire". Donnez des autorisations d'écriture à votre répertoire Wordpress de manière récursive comme suit :

chmod -R go+w wordpress

REMARQUE. Pour des raisons de sécurité, révoquez ces autorisations une fois que vous avez installé un plugin comme suit :

chmod -R go-w wordpress

9voto

Hiren Gohel Points 3069

J'ai effectué une installation locale de WordPress sur Ubuntu 14.04 en suivant les étapes décrites ici et en exécutant simplement :

sudo chown -R www-data:www-data {chemin_vers_votre_dossier_projet}

a résolu mon problème de téléchargement de plugins. La seule raison pour laquelle je laisse ce message ici est parce que lorsque j'ai cherché sur Google mon problème, c'était l'un des premiers résultats et cela m'a conduit à la solution de mon problème.

8voto

Niels Keurentjes Points 19255

De la première réponse sur Google:

WordPress demande vos identifiants FTP lorsque les fichiers ne sont pas accessibles directement. Cela est généralement causé par PHP s'exécutant en tant qu'utilisateur apache (mod_php ou CGI) plutôt que l'utilisateur qui possède vos fichiers WordPress.

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 ou httpd. C'est en fait une bonne mesure de sécurité pour empêcher les exploits et les piratages de modifier les fichiers hébergés. Vous pourriez contourner cela en définissant tous les fichiers WP sur une sécurité de 777, mais cela signifie aucune sécurité, je vous déconseille fortement de le faire. Utilisez simplement FTP, c'est la solution de contournement automatiquement conseillée avec une bonne raison.

8voto

Matt Woodward Points 400

Il y a beaucoup de réponses similaires à cette question, mais aucune d'entre elles ne touche entièrement à la cause première. Le commentaire de Sebastian Schmid sur le post original y touche mais pas complètement. Voici mon point de vue en date du 2018-11-06 :

Cause Première

Lorsque vous essayez de télécharger un plugin via l'interface d'administration de WordPress, WordPress va faire appel à une fonction appelée "get_filesystem_method()" (ref : /wp-admin/includes/file.php:1549). Cette routine va tenter d'écrire un fichier à l'emplacement en question (dans ce cas, le répertoire du plugin). Cela peut bien sûr échouer immédiatement si les permissions du fichier ne sont pas configurées correctement 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 ensuite le propriétaire du fichier temporaire, ainsi que le propriétaire du fichier actuel de la fonction (ref : /wp-admin/includes/file.php:1572) et les compare. S'ils correspondent, alors, selon les termes de WordPress, "WordPress crée des fichiers en tant que même propriétaire que les fichiers WordPress, cela signifie qu'il est sûr de modifier et créer de nouveaux fichiers via PHP" et votre plugin est téléchargé avec succès sans le prompt des identifiants FTP. S'ils ne correspondent pas, vous obtenez le prompt des identifiants FTP.

Corrections

  1. S'assurer que le répertoire du plugin est accessible en écriture par l'identité exécutant votre processus php.
  2. S'assurer que l'identité exécutant votre processus php est le propriétaire du fichier soit de :

    a) Tous les fichiers de l'application WordPress, ou...
    b) Au moins le fichier /wp-admin/includes/file.php

Commentaires Finaux

Je ne suis pas particulièrement enthousiaste à l'idée d'appliquer spécifiquement la propriété du fichier au fichier.php pour contourner ce problème (cela semble un peu débrouillard pour le moins !). Il me semble qu'à ce stade, le code de WordPress penche vers le fait que nous devons exécuter le processus PHP sous le même principe utilisateur que le propriétaire du fichier pour les fichiers d'application WordPress. Je serais ravi d'avoir des commentaires de la communauté à ce sujet.

5voto

purvik7373 Points 2791

La manière la plus simple de résoudre ce problème est d'ajouter les informations FTP suivantes à votre wp-config.php

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');

FTP_BASE est le chemin complet vers le dossier "base" (ABSPATH) de l'installation de WordPress. FTP_CONTENT_DIR est le chemin complet vers le dossier wp-content de l'installation de WordPress. FTP_PLUGIN_DIR est le chemin complet vers le dossier des plugins de l'installation de WordPress.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X