Mise à jour automatique de WordPress via FTP impossible

WordPress-logo-brokenLa mise à jour automatique de WordPress utilise le protocole FTP pour récupérer chaque dossier et fichier de la nouvelle version.

Cette action est effectuée dans un processus PHP unique et donc assez long.

De plus, un contrôle et une mise à jour des droits des fichiers copiés est systématiquement effectuée, ce qui allonge énormément le processus et qui est inutile.

Si la mise à jour est en échec sur votre CMS, vous pouvez modifier la methode « chmod » de la class. Voici comment procéder :

– Ouvrez le fichier « /wp-admin/includes/class-wp-filesystem-ftpext.php » dans votre editeur de code.
– en ligne 149 (pour la version 3.5 de WordPress) remplacez le code suivant :

function chmod($file, $mode = false, $recursive = false) {
if ( ! $mode ) {
if ( $this->is_file($file) )
$mode = FS_CHMOD_FILE;
elseif ( $this->is_dir($file) )
$mode = FS_CHMOD_DIR;
else
return false;
}

// chmod any sub-objects if recursive.
if ( $recursive && $this->is_dir($file) ) {
$filelist = $this->dirlist($file);
foreach ( (array)$filelist as $filename => $filemeta )
$this->chmod($file . '/' . $filename, $mode, $recursive);
}

// chmod the file or directory
if ( ! function_exists('ftp_chmod') )
return (bool)@ftp_site($this->link, sprintf('CHMOD %o %s', $mode, $file));
return (bool)@ftp_chmod($this->link, $mode, $file);
}

par :

function chmod($file, $mode = false, $recursive = false) {
return(true);
}

Si votre site passe en maintenance à la fin de la mise à jour, il faut supprimer le fichier .maintenance en racine de votre répertoire FTP.