Une installation WordPress va demander un accès FTP pour installer ou mettre à jour un(e) Thème/Extension dans le cas où PHP tourne sous l’utilisateur Apache (mod_php or CGI) qui ne possède pas les droits sur l’installation WordPress.

Avec un accès SSH :

WordPress accès FTP

Chercher l’utilisateur PHP et lui attribuer les droits sur l’installation WordPress :

ps aux | grep php

Va retourner quelques lignes :

root      1249  0.0  0.1 290648  5956 ?        Ss   Sep17   0:01 php-fpm: master process (/etc/php/php-fpm.conf)              
http      1278  0.0  1.0 374340 39492 ?        S    Sep17   0:21 php-fpm: pool www                                            
http      1279  0.0  1.1 374808 41460 ?        S    Sep17   0:12 php-fpm: pool www                                            
http      3934  0.0  1.0 374852 38048 ?        S    Sep17   0:17 php-fpm: pool www

Dans ce cas l’utilisateur php est “http”, pour attribuer les droits sur l’installation WordPress à l’utilisateur “http” :
$ sudo chown -hR http:http CHEMIN_VERS_LE_DOSSIER_WORDPRESS

-> Remplacer “http” par l’utilisateur identifié par le retour de commande ci-dessus. Par défaut l’utilisateur PHP sous Ubuntu est “www-data”, mais cela peut être “admin” pour d’autres installations.

 

Sans accès SSH :

WordPress FTP

Il va s’agir d’ajouter les informations de connexion FTP dans le fichier wp-config.php de WordPress, juste pour éviter d’avoir à les renseigner à chaque mise à jour ou installation de thème ou d’extension WordPress. Cela ne corrige pas vraiment le problème.

Données à ajouter dans le fichier wp-config.php :

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/mon-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/mon-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/mon-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'mon-utilisateur-ftp');
define('FTP_PASS', 'mon-mot-de-passe-ftp');
define('FTP_HOST', 'ftp.hote-de-mon-site.example.com');
// define('FTP_SSL', false);

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *