web-dev-qa-db-fra.com

Impossible de localiser le répertoire racine de WordPress

J'essaie de mettre à jour la version WordPress d'un blog et cela échoue. Je saisis les informations FTP (hôte, utilisateur, passe et type), puis je reçois le message suivant:

Impossible de localiser le répertoire racine de WordPress.

L'installation a échoué.

Ce blog fonctionne sous Windows 2008 Enterprise Host. (Si cela ne tenait qu'à moi, il serait sans doute hébergé sur un serveur Linux.) Mon premier réflexe était que cela se passait car le chemin est E:\home\<Host_username>\Web

Je ne peux pas non plus installer ou mettre à jour les plugins à partir de l'administrateur WordPress. Cela se produit-il parce qu'il est hébergé sur un serveur Windows?

J'ai défini WP_DEBUG sur true sur wp-config.php et j'ai essayé de mettre à jour à nouveau. Le message suivant répété plusieurs fois:

Avis de PHP: Variable non définie: b dans E:\Home\<nom_hôte>\Web\wordpress\wp-admin\includes\class-wp-filesystem-ftpext.php à la ligne 334

Avis de PHP: Variable non définie: b dans E:\Home\<nom_utilisateur_Hôte>\Web\wordpress\wp-admin\includes\class-wp-filesystem-ftpext.php à la ligne 337

J'ai vérifié le wp-admin\includes\file class-wp-filesystem-ftpext.php pour voir ce qui pourrait ne pas être correct sur les lignes 334 et 337. Vous trouverez ci-dessous le code des lignes 334 à 337:

if ( $b['islink'] )
  $b['name'] = preg_replace( '/(\s*->\s*.*)$/', '', $b['name'] );

return &b;

Akismet 2.5.8 n’est actif que sur le blog en question. Jetpack 2.3.3 est là, mais ce n'est pas actif. C'est un nouveau blog, démarré à partir de WP 3.5.2. Il est donc clair que les plugins ne doivent pas être la cause du problème.

Et bien sûr, je sais que je peux mettre à jour WordPress en téléchargeant des fichiers de la nouvelle version via FTP. Mon point est que je veux résoudre le problème de ne pas pouvoir mettre à jour WordPress et installer/mettre à jour des plugins à partir de son propre administrateur.

Des idées sur la façon de résoudre ce problème?

1
tpires

Je suis sûr qu'il existe un autre moyen de résoudre ce problème, mais vous pouvez toujours essayer de faire une nouvelle installation. Assurez-vous bien de sauvegarder votre base de données et vos fichiers de thème, puis déposez-les simplement dans la nouvelle installation.

Pas la solution la plus éloquente, mais cela a fonctionné pour moi dans le passé, quand je ne pouvais pas penser à autre chose.

1
igloude

Avez-vous essayé cette fonction ?

function fs_get_wp_config_path()
{
    $base = dirname(__FILE__);
    $path = false;

    if (@file_exists(dirname(dirname($base))."/wp-config.php"))
    {
        $path = dirname(dirname($base))."/wp-config.php";
    }
    else
    if (@file_exists(dirname(dirname(dirname($base)))."/wp-config.php"))
    {
        $path = dirname(dirname(dirname($base)))."/wp-config.php";
    }
    else
    $path = false;

    if ($path != false)
    {
        $path = str_replace("\\", "/", $path);
    }
    return $path;
}

Ensuite, vous pouvez obtenir le chemin racine wp comme ceci:

<?php echo fs_get_wp_config_path(); ?>
0

Si votre site Web est exécuté sur PHP 7, l'installation du support de SSH SFTP Updater peut résoudre votre problème. Ce plugin fonctionne autour d'un bogue PHP 7.

0
Omer Zak