簡體   English   中英

Wordpress 儀表板:將實時網站移動到本地主機后,“抱歉,您不允許訪問此頁面”

[英]Wordpress dashboard : "Sorry you are not allowed to access this page" after moving live website to localhost

我嘗試手動備份我的 Wordpress 網站。

  1. 我備份了我的 htdocs 文件夾。
  2. 我導出了我的數據庫的 a.sql 文件備份,其中以“mas”為前綴。 (后面沒有下划線)
  3. 我在我的所有數據庫(使用 PowerShell)中為新的 URL 更新了舊的 URL。
  4. 我更新了 wp-config.php 文件。
  5. 我在本地主機服務器上創建了一個同名的新數據庫。
  6. 我在 PhpMyAdmin 上導入了 .sql 文件。

在那之后,我意識到我無法以管理員身份訪問儀表板。

我收到以下信息:Désolé, vous n'avez pas l'autorisation d'accéder à cette page。

法語相當於:對不起,您無權訪問此頁面。

所以我停用了我所有的插件。 我將 .htaccess 文件更改為 .htaccess.old。

在我的數據庫中,我的表 usermeta 是為我的用戶帳戶配置的。 出於某種原因,我有兩次“prefix_capabilites”和“prefix_user_level”:

元密鑰 元值
可粉化劑 a:1:{s:13:"管理員";b:1;}
masuser_level 10
wp_capabilities a:1:{s:13:"管理員";b:1;}
wp_user_level 10

然后,我嘗試使用 PHPStorm 調試我的網站。

這是我發現的:

// plugin.php

function user_can_access_admin_page() {
    global $pagenow, $menu, $submenu, $_wp_menu_nopriv, $_wp_submenu_nopriv,
        $plugin_page, $_registered_pages;

    $parent = get_admin_page_parent();

// I omitted some functions here...

if ( empty( $parent ) ) { // $parent is empty ""
        if ( isset( $_wp_menu_nopriv[ $pagenow ] ) ) { // $pagenow is "index.php"
            return false; // It returns here.
        }

然后,它返回這里:

// menu.php

if ( ! user_can_access_admin_page() ) {

    /**
     * Fires when access to an admin page is denied.
     *
     * @since 2.5.0
     */
    do_action( 'admin_page_access_denied' );

    wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 ); // And displays this.
}

因此,據我了解,我的頁面 index.php 對於表 $_wp_menu_nopriv[] 被認為是 TRUE。

它在某種程度上證實了用戶無法訪問管理頁面。

但我不明白這個變量 $_wp_menu_nopriv[] 是什么意思?

你能幫助我嗎?

更新 1:

我試圖將我的用戶 wp_capabilites 值更改為:'a:1:{s:13:"administrator";s:1:"1";}'

但它也沒有奏效。

當我嘗試使用備份插件備份我的網站時,總會在某些時候出現錯誤。

更新 2:

我從這個網站找到了我的問題的解決方案。

當您(在某些時候)使用也更改了數據庫中的功能記錄的實用程序更改了數據庫前綴時,就會發生這種情況。

要修復它,請記下您當前的數據庫前綴。 默認值為“wp_”,為簡單起見,我們假設目標前綴為“wp_”。 如果您希望使用的數據庫前綴不同,請確保將所有“wp_”實例替換為您的新前綴。

在 Plesk 中為數據庫使用 phpMyAdmin 並完成這些搜索(使用 LIKE %...%):

在 wp_options 表中,查找以“user_roles”結尾的 option_name 並將其前綴更改為“wp_user_roles” 在 wp_usermeta 表中,查找以錯誤前綴開頭的所有條目並將不正確的前綴替換為 wp_ 現在登錄或刷新頁面,您應該會發現您的用戶權限已返回。

您可以嘗試更改 wp_capalities

update wp_usermeta
set meta_value = 'a:1:{s:13:"administrator";s:1:"1";}'
where user_id = YOUR USER ID
and meta_key = 'wp_capabilities';

否則,您可以考慮使用插件安裝和遷移全新的 wordpress: https://wordpress.org/plugins/all-in-one-wp-migration/

我從另一個網站找到了我的問題的解決方案:

當您(在某些時候)使用也更改了數據庫中的功能記錄的實用程序更改了數據庫前綴時,就會發生這種情況。

要修復它,請記下您當前的數據庫前綴。 默認值為“wp_”,為簡單起見,我們假設目標前綴為“wp_”。 如果您希望使用的數據庫前綴不同,請確保將所有“wp_”實例替換為您的新前綴。

在 Plesk 中為數據庫使用 phpMyAdmin 並完成這些搜索(使用 LIKE %...%):

在 wp_options 表中,查找以“user_roles”結尾的 option_name 並將其前綴更改為“wp_user_roles” 在 wp_usermeta 表中,查找以錯誤前綴開頭的所有條目並將不正確的前綴替換為 wp_ 現在登錄或刷新頁面,您應該會發現您的用戶權限已返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM