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?
Réponses
Trop de publicités?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
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.
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.
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
- S'assurer que le répertoire du plugin est accessible en écriture par l'identité exécutant votre processus php.
-
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.
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.