私はブログのWordPressバージョンをアップグレードしようとしています、そしてそれは失敗します。 FTP情報(ホスト、ユーザー、パス、タイプ)を入力するとメッセージが表示されます。
WordPressのルートディレクトリが見つかりません。
インストールに失敗しました。
このブログは、Windows 2008 Enterprise Host上で実行されています(私の責任であれば、間違いなくLinuxサーバー上でホストされると思います)。私の最初の考えは、パスがE:\home\<Host_username>\Web
であるために起こっていることです。
WordPressの管理者からプラグインをインストールまたはアップグレードすることもできません。それはWindowsサーバ上でホストされているために起こりますか?
Wp-config.phpでWP_DEBUGをtrueに設定して、もう一度アップグレードしようとしました。次のメッセージが数回繰り返されました。
PHPに関するお知らせ:未定義の変数:E:¥Home¥<Host_username>¥Web¥wordpress¥wp-admin¥includes¥class-wp-filesystem-ftpext.php内の334行
PHPに関するお知らせ:未定義の変数:E:¥Home¥<Host_username>¥Web¥wordpress¥wp-admin¥includes¥class-wp-filesystem-ftpext.php内の337行
334行目と337行目で何が間違っているのかを確認するために、wp-admin\includes\fileクラスwpファイルシステムftpext.phpを調べました。以下は334行目から337行目までのコードです。
if ( $b['islink'] )
$b['name'] = preg_replace( '/(\s*->\s*.*)$/', '', $b['name'] );
return &b;
問題のブログはAkismet 2.5.8のみが有効です。 Jetpack 2.3.3はそこにあります、しかしそれはアクティブではありません。これはWP 3.5.2から始まる新しいブログです。だから間違いなくプラグインが問題の原因になってはいけません。
そしてもちろん、私はFTP経由で新しいバージョンのファイルをアップロードするWordPressをアップグレードできることを知っています。私のポイントは、WordPressをアップグレードできず、プラグインを自分の管理者からインストール/アップグレードできないという問題を解決したいということです。
それを修正する方法についての任意のアイデア?
私はそれを修正するための別の方法があると確信しています、しかしあなたはいつでも新鮮なインストールをすることを試みることができます。データベースとテーマファイルは必ずバックアップしてから、新しいインストールにドロップしてください。
最も雄弁な解決策ではありませんが、私が他の方法を考えることができなかったとき、それは過去に私のために働きました。
this functionを試しましたか?
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;
}
それから、あなたはこのようなwpルートパスを得ることができます:
<?php echo fs_get_wp_config_path(); ?>
WebサイトがPHP 7で実行されている場合は、 SSH SFTP Updater Support をインストールすると問題が解決する可能性があります。このプラグインはPHP 7バグを回避します。