web-dev-qa-db-ja.com

変更せずにこのページにアクセスするための十分な権限がありません

私はWordpressに取り組んでいます。プロジェクトをローカルで完了しました。それをライブサーバーに移動し、何も変更しませんでした。構成ファイル(データベース名、ユーザー名、パスワード)。

現在、私のサイトはフロントエンドで正常に動作していますが、エラーメッセージが表示されるたびに管理パネルにアクセスできません。

このページにアクセスするための十分な権限がありません。

Google検索では、ほとんどのエラーはプレフィックスの変更が原因で発生したことが示されていますが、私の場合はローカルと同じです。また、ディレクトリの許可は755で、ファイルの許可は644ですが、それでも同じ問題に直面しています。

これを修正するにはどうすればよいですか?

20
Kashif Waheed

データベーステーブルのプレフィックスを変更しましたか?これがあなたの問題であることは90%確信しています。

問題は、WordPressは$table_prefix変数を使用してオプションとユーザーメタキーの名前を形成し、そこでロールと機能の情報を格納することです。したがって、プレフィックスを変更したら、データベースを更新すると、このエラーが発生します。これを修正する方法は次のとおりです。このSQLコマンドをphpMyAdminを介して実行するか、DBと対話するための別のインターフェイスを使用します(PHP ):

UPDATE `{%TABLE_PREFIX%}usermeta` SET `meta_key` = replace(`meta_key`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');

どこ:

  • {%TABLE_PREFIX%}は現在の$table_prefixです(wp-config.phpで設定)
  • {%OLD_TABLE_PREFIX%}は以前の$table_prefixです
  • {%NEW_TABLE_PREFIX%}は、新しい(現在の)$table_prefixです-ほとんどの場合、{%TABLE_PREFIX%}と同じになります。

したがって、古い$table_prefixwp_test_で、新しいものがwp_である場合、次のクエリを実行します。

UPDATE `wp_usermeta` SET `meta_key` = replace(`meta_key`, 'wp_test_', 'wp_');
UPDATE `wp_options` SET `option_name` = replace(`option_name`, 'wp_test_', 'wp_');

編集:@Francisco Corralesが指摘したように、作成した管理ページにアクセスできない場合(PHPを作成しない場合、これはあなたのケースではありません)、このリンクをチェックアウトできます: Wordpress Error whileプラグインの開発-「このページにアクセスするための十分な権限がありません。」


編集2:@Kasper Sourenが指摘したように、オプションのUPDATEクエリにWHERE句を追加することができます。同様に(最後の%の後に%}を削除しないでください):

UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}') WHERE option_name like '{%OLD_TABLE_PREFIX%}%';
88