J'utilise WordPress sur mon serveur live qui utilise uniquement SFTP en utilisant une touche SSH .
Je souhaite installer et mettre à niveau des plugins, mais il semble que vous deviez entrer votre identifiant FTP pour installer les plugins. Existe-t-il un moyen d'installer et de mettre à niveau des plugins en téléchargeant manuellement les fichiers au lieu de laisser WordPress gérer l'intégralité du processus?
WordPress ne vous demandera que les informations de votre connexion FTP lors de la tentative d'installation de plugins ou d'une mise à jour de WordPress s'il ne peut pas écrire directement dans /wp-content
. Sinon, si votre serveur Web dispose d'un accès en écriture aux fichiers nécessaires, il se chargera des mises à jour et de l'installation automatiquement. Cette méthode ne nécessite pas d’accès FTP/SFTP ou SSH, mais requiert des autorisations de fichiers spécifiques configurées sur votre serveur Web.
Il essaiera différentes méthodes dans l’ordre et retombera sur FTP si les méthodes Direct et SSH ne sont pas disponibles.
https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912
WordPress va essayer d'écrire un fichier temporaire dans votre répertoire /wp-content
. Si cela réussit, il compare la propriété du fichier à son propre uid et, s'il y a correspondance, cela vous permettra d'utiliser la méthode 'directe' d'installation de plugins, de thèmes ou de mises à jour.
Maintenant, si pour une raison quelconque vous ne voulez pas vous fier à la vérification automatique de la méthode de système de fichiers à utiliser, vous pouvez définir une constante, 'FS_METHOD'
dans votre fichier wp-config.php
, soit 'direct', 'ssh', 'ftpext' or 'ftpsockets'
, qui utilisera cette méthode. N'oubliez pas que si vous définissez cette option sur "direct" mais que votre utilisateur Web (le nom d'utilisateur sous lequel votre serveur Web s'exécute) ne dispose pas des autorisations d'écriture appropriées, vous recevrez une erreur.
En résumé, si vous ne souhaitez pas (ou ne pouvez pas) modifier les autorisations sur wp-content afin que votre serveur Web dispose d'autorisations en écriture, ajoutez ceci dans votre fichier wp-config.php:
define('FS_METHOD', 'direct');
Autorisations expliquées ici:
Comme indiqué précédemment, aucun des correctifs permanents ne fonctionne plus. Vous devez modifier les permanentes en conséquence ET mettre les informations suivantes dans votre wp-config.php
:
define('FS_METHOD', 'direct');
Je voulais juste ajouter que vous ne devez JAMAIS définir l'autorisation wp-content
ou l'autorisation d'un dossier sur 777
.
C'est ce que je devais faire pour:
1) Je règle (récursivement) la propriété du dossier wordpress sur l'utilisateur Apache, comme suit:
# chown -R Apache wordpress/
En cas d'Ubuntu, Mint ou Debian # chown -R www-data:www-data wordpress/
2) J'ai changé la propriété du groupe du dossier wordpress (récursivement) en groupe Apache, comme suit:
# chgrp -R Apache wordpress/
Passer cette étape pour Ubuntu, Mint ou Debian
3) donner au propriétaire tous les privilèges sur le répertoire, comme ceci:
# chmod u+wrx wordpress/*
Et cela a fait le travail. Mon dossier wp-content
a les autorisations 755
, btw.
Version TL; DR:
# chown -R Apache:apache wordpress
# chmod u+wrx wordpress/*
wp-config.php
ajouter define('FS_METHOD', 'direct');
wp-content/
, wp-content/plugins/
.wp-content/plugins
).Travaillé sur la version 3.2.1
Juste un changement rapide en wp-config.php
define('FS_METHOD','direct');
C’est fini, profitez de vos mises à jour wordpress sans ftp !
Méthode alternative:
Il y a des hôtes qui empêcheront cette méthode de fonctionner pour faciliter votre mise à jour de WordPress. Heureusement, il existe un autre moyen de empêchez cet organisme nuisible de vous demander votre nom d'utilisateur et votre mot de passe FTP.
Encore une fois, après les déclarations de connexion MYSQL dans votre fichier wp-config.php, ajoutez ce qui suit:
define("FTP_Host", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
Afin de permettre l'utilisation de SSH2 pour vos mises à jour et vos envois de thèmes, vous devez générer vos clés SSH et installer le module PHP SSH. Ensuite, WordPress détectera que vous avez SSH2 disponible et vous verrez une option différente (SSH2) affichée lors d’un téléchargement/d’une mise à niveau.
1.) Assurez-vous que le module PHP installé pour Debian est:
Sudo apt-get install libssh2-php
2.) Générer des clés SSH, l'ajout d'une phrase secrète est facultatif:
ssh-keygen
cd ~/.ssh
cp id_rsa.pub authorized_keys
3.) Modifiez l'autorisation de sorte que WordPress puisse accéder à ces clés:
cd ~
chmod 755 .ssh
chmod 644 .ssh/*
Maintenant, vous aurez l'option SSH2 lorsque vous effectuez un téléchargement/une mise à niveau/un plugin .
4.) Pour plus de facilité, vous pouvez configurer les valeurs par défaut dans votre wp-config.php
, ce qui pré-remplira les informations d'identification SSH dans la fenêtre de téléchargement WordPress.
define('FTP_PUBKEY','/home/<user>/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/<user>/.ssh/id_rsa');
define('FTP_USER','<user>');
define('FTP_PASS','passphrase');
define('FTP_Host','domain.com');
La "phrase secrète" est facultative, si vous ne configurez pas de phrase secrète pendant ssh-kengen
; alors ne l'ajoutez pas dans wp-config.php
Cela a résolu mon problème. Et je n'avais pas du tout à faire la chown
. Mais j'ai vu cette méthode référencée dans d'autres endroits.
Références:
Habituellement, vous pouvez simplement télécharger votre plugin dans le répertoire wp-content\plugins
. Si vous n'avez pas accès à ce répertoire via SFTP, j'ai bien peur que vous soyez bloqué.
Vous pouvez l'obtenir très facilement en tapant la commande suivante sur la commande promt
Sudo chown -R www-data:www-data your_folder_name
ou copiez et collez le code suivant dans votre fichier wp-config.php.
define('FS_METHOD', 'direct');
Où "your_folder_name" est le dossier dans lequel WordPress est installé dans ce dossier.
Ajoutez le code suivant à wp-config
define('FS_METHOD', 'direct');
FS_METHOD force la méthode du système de fichiers. Ce ne devrait être que direct, ssh2, ftpext ou ftpsockets. En règle générale, vous ne devriez changer cela que si vous rencontrez des problèmes de mise à jour. Si vous le changez et que cela ne vous aide pas, changez-le/supprimez-le. Dans la plupart des cas, le réglage sur 'ftpsockets' fonctionnera si la méthode automatiquement choisie ne fonctionne pas.
(Préférence principale) "direct" l'oblige à utiliser les requêtes d'E/S de fichier directes de PHP, ce qui entraîne de nombreux problèmes de sécurité sur les hôtes mal configurés. Cette option est automatiquement choisie si nécessaire.
(Secondary Secondary) "ssh2" force l'utilisation de l'extension SSH PHP s'il est installé
(3ème préférence) "ftpext" consiste à forcer l'utilisation de l'extension FTP PHP pour l'accès FTP, et enfin
(4ème préférence) "ftpsockets" utilise la classe de classes PHP pour l'accès FTP.
Pour plus d'informations, visitez: http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
Exécutez le code suivant dans le terminal
Sudo chown -R www-data /var/www
Pour plus de détails, visitez Wordpress sur les plugins d'installation Ubuntu sans accès FTP
WordPress 2.7 vous permet de télécharger directement un fichier Zip (il y a un lien au bas de la page des plugins) - aucun accès FTP nécessaire. Ceci est une nouvelle fonctionnalité de la version 2.7, et cela fonctionne uniquement pour les plugins (pas encore les thèmes).
Essaye ça
1) Dans le fichier wp-config.php, ajoutez define ('FS_METHOD', 'direct');
2) Définissez le répertoire "wp-content" sur 777 pour pouvoir écrire.
3) Maintenant, installez le plugin.
Ressusciter un ancien fil de discussion, mais il existe un nouveau plugin fantastique appelé SSH SFTP Updater Support qui ajoute des fonctionnalités SFTP sans avoir à modifier votre fichier wp-config.php
. En outre, l'implémentation SFTP de Wordpress repose sur des modules PHP quelque peu obscurs qui ne sont souvent pas activés sur les serveurs; ce plugin contient un plugin SFTP PHP différent, vous évitant ainsi de configurer quoi que ce soit du côté d'Apache.
J'avais eu beaucoup de problèmes à faire fonctionner le support SFTP - ce plugin les a tous résolus et est tout simplement fantastique.
Oui, installez directement le plugin dans WordPress.
autre option
La réponse de stereointeractive couvre toutes les options. Je voulais juste mentionner un autre moyen d’utiliser FTP. Je devine que la raison pour laquelle vous n'autorisez pas l'accès FTP est pour la sécurité. Une façon de résoudre ces problèmes de sécurité consiste à exécuter votre serveur FTP uniquement à l’écoute sur 127.0.0.1.
Cela vous permet d’utiliser FTP à partir de WordPress et vous pourrez installer des plugins sans l’exposer au reste du monde. Ceci peut également être appliqué à d'autres applications Web populaires telles que Joomla! et Drupal. C’est ce que nous faisons avec nos appliances BitNami et serveurs cloud et fonctionne très bien.
Je recommande également le plug-in SSH SFTP Updater Support . Je viens de résoudre tous mes problèmes aussi ... surtout en ce qui concerne la suppression des plugins via l’administrateur. Installez-le simplement de la manière habituelle, et la prochaine fois que WordPress vous demandera des détails FTP, vous aurez des champs supplémentaires pour copier/coller votre clé SSH privée ou télécharger votre fichier PEM.
Le seul problème que j'ai, c'est de le rappeler à la clé (essayé les deux méthodes). Je n'aime pas l'idée de devoir le trouver et le saisir à chaque fois que je dois supprimer un plugin. Mais au moins, c'est une solution solide pour le moment.
php_mod
à fastcgi
avec cgi
& SuEXEC
activé ne pas oublier si cela ne fonctionne pas essayer de changer
change le contenu de wp en 775 en tant que root
chmod -R 775 ./wp-content
ajouter à wp-config.php
define ('FS_METHOD', 'direct');
j'espère que ca fonctionne
Nous utilisons SFTP avec SSH (sur nos serveurs de développement et réels) et j’ai essayé (pas trop fort) d’utiliser la fonctionnalité de téléchargement WordPress. Je suis d'accord avec Toby, chargez vos plugins dans le répertoire wp-content/plugins
, puis activez-les à partir de là.
Il est possible d'utiliser SFTP ou SSH pour mettre à jour automatiquement les plugins dans WordPress, mais vous devez avoir l'extension ssh2 pecl. Vous pouvez trouver comment le faire en utilisant le tutorial suivant
J'ai vu beaucoup de gens recommander de définir l'autorisation sur 777. J'avais le même problème il y a deux jours et je n'ai fait que l'ajouter à wp-content
define('FS_METHOD', 'direct');
et
définir l'autorisation à 775 pour le dossier du plugin
Cela a résolu mon problème de demande de login/mot de passe d'accès FTP.
Avant cela, je devais ajouter le plugin manuellement en ajoutant le fichier .Zip au dossier du plugin, puis aller à wp-admin/plugins
et je devais l’installer.
Essayez ceci Vérifiez si la permission correcte est donnée au dossier wp-content.
Editez le wp-config.php ajoutez la ligne suivante
define('FS_METHOD', 'direct');
chmod le répertoire "wp-content" vers www-data pour un accès complet.
Maintenant, essayez d'installer le plugin.
configurer une connexion ftp ou même une connexion SFTP ou chmod 777 est une mauvaise façon d’agir autrement que dans un environnement local. L'ouverture même d'une méthode SFTP introduit plus de risques de sécurité qui ne sont pas nécessaires.
ce qu'il faut, c'est une autorisation en écriture pour/wp-content/uploads &/wp-content/plugins/par le propriétaire de ces répertoires. (linux ls -la vous montrera la propriété).
L'utilisateur par défaut d'Apache qui s'exécute est www-data.
chmod 777 permet à n'importe quel utilisateur de la machine de modifier ce fichier, pas uniquement à l'utilisateur du thread Apache/php.
SFTP, si vous ne l'utilisez pas déjà, introduira un autre point d'échec possible provenant d'une source externe. Alors que vous n’avez besoin que de l’utilisateur local exécutant le processus Apache/php pour atteindre l’objectif.
N'ayant vu personne expliquer ces arguments, j'ai pensé proposer ces informations pour vous aider à résoudre nos problèmes de sécurité en ligne WP.
S'il vous plaît ajouter define('FS_METHOD','direct');
dans wo-config.php
Voici une méthode simple.
Exécutez les commandes suivantes.
Cela activera votre module mod_rewrite pour Apache
$Sudo a2enmod rewrite
Cette commande changera le propriétaire du dossier en www-data
$Sudo chown -R www-data [Wordpress Folder Location]
Après avoir exécuté les commandes ci-dessus, vous pouvez installer n’importe quel thème sans FTP.
Oui tu peux le faire.
Vous devez ajouter
define('METHOD','direct');
dans votre config wp. Mais cette méthode ne sera pas préférable car elle a des problèmes de sécurité.
Merci,
WPCLI est le meilleur moyen d’installer le plugin à l’aide de SSH.
Notez que l'accès SSH est obligatoire pour utiliser les commandes CLI WP. Avant de l'utiliser, vérifiez si la CLI WP est installée sur votre serveur ou machine d'hébergement.
Comment vérifier: wp --version
[La version de wp cli sera affichée]
S'il n'est pas installé, comment l'installer: Avant d'installer WP-CLI, veuillez vous assurer que l'environnement répond à la configuration minimale requise:
Environnement de type UNIX (OS X, Linux, FreeBSD, Cygwin); support limité dans l'environnement Windows . PHP 5.4 ou version ultérieure WordPress 3.7 ou version ultérieure. Les versions antérieures à la dernière version de WordPress peuvent avoir une fonctionnalité dégradée
Si les points ci-dessus sont satisfaits, veuillez suivre les étapes suivantes: URL de référence: WPCLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
[ download the wpcli phar ]
php wp-cli.phar --info [ check whether the phar file is working ]
chmod +x wp-cli.phar [ change permission ]
Sudo mv wp-cli.phar /usr/local/bin/wp [ move to global folder ]
wp --info [ to check the installation ]
Maintenant, WP CLI est prêt à être installé.
Maintenant, vous pouvez installer n’importe quel plugin disponible dans WordPress.org en utilisant les commandes suivantes:
wp install plugin plugin-slug
wp delete plugin plugin-slug
wp deactivate plugin plugin-slug
NOTE: wp cli ne peut installer que les plugins disponibles sur wordpress.org