迁移WordPress网站后,我无法访问管理员(白页)

时间:2013-03-21 20:44:25

标签: php wordpress content-management-system

我正在尝试将WordPress网站从本地服务器移动到在线服务器。

问题是,在迁移之后,如果我尝试打开管理页面(wp-admin),我只会获得一个白页,如您所见:http://scorejava.com/wordpress/wp-admin/。其他所有内容似乎都在主页上有效:http://scorejava.com/wordpress/

在我的本地网络服务器中,我将WP网站放入文件夹:/var/www/wordpress。我已将其移至 wordpress 文件夹,该文件夹位于我的在线网络服务器的根目录中。

我还使用MySql将本地数据库导入到onlyne数据库中,然后我使用搜索和替换WordPress数据库脚本将所有http://localhost/wordpress次出现自动更改到数据库中表http://scorejava.com/wordpress/

11 个答案:

答案 0 :(得分:12)

您的网站上存在错误,您需要了解发生了什么。

WordPress网址

迁移URL更改的WordPress网站时,您需要告诉WordPress有关新网址的信息。 WordPress将该信息存储在数据库中,因此如果您对此感到满意,可以在数据库的wp_options表中找到正确的条目并更新其值。

我将展示标准WordPress安装的一些修复程序(网站网址是WordPress根目录),但可能需要为homesiteurl使用不同的值如果你有不同的设置。

通过SQL修复网址

您需要更新数据库中的相关字段,这些字段是wp_options option_namesiteurlhome的{​​{1}}条目。您可以使用phpmyadmin,mysql-workbench或其他数据库管理工具找到这些字段,或者您可以使用以下查询,将URL更改为您自己的URL。

UPDATE `wp_options` SET `option_value`='http://www.myurl.com' WHERE `option_name` IN ('siteurl', 'home');

通过wp-config.php

修复网址

但是,您也可以通过wp-config.php执行此操作,我觉得这样更舒服。只需打开wp-config.php并添加以下行:

// Site URLS (override DB settings)
define('WP_HOME','http://www.myurl.com');     //<-- NO TRAILING /
define('WP_SITEURL','http://www.myurl.com');  //<-- NO TRAILING /

显然,您需要提供正确的网址。

这可能是您遇到的唯一错误,在将这些行添加到wp-config.php后,您将能够正常登录并使用您的网站。

调试WordPress错误

但是,如果您仍然遇到问题,并且在您开发网站的任何时候,您都希望看到错误输出。您可以检查服务器日志以获取有关错误的信息,但您可能会发现WordPress更方便地只显示页面中的错误。要启用错误显示,请将以下设置更改为true中的wp-config.php

define('WP_DEBUG', true);

现在,WordPress将直接在网页中显示遇到的任何错误。请务必将设置更改为false,以便在生产站点上使用。

使用wp-config.php

此文件将位于wordpress安装的根目录中。要进行此处提到的任何更改,您可以直接在服务器上编辑文件(例如,通过ssh),或者使用FTP客户端下载文件,使用文本编辑器进行更改,然后上传再次归档。

在进行任何更改之前保留备份副本也是一个好主意,以防您在工作时破坏某些内容。

参考

您可以阅读有关更改docs page上的WordPress网站网址的所有内容。

答案 1 :(得分:6)

迟到聚会,我最近经历过这个,我设法解决了这个问题。这就是我所做的。

第1步:WP_DEBUG文件<{1}}将true设置为wp-config.php

第2步:我尝试了domain.com/wp-login.php而不是domain.com/wp-admin,因此我能够获得至少登录表单和Warning: Cannot modify header information - headers already sent by

的错误

第3步:我在第一行ob_start();之后的wp-login.php文件中添加了<?php,当然是为了让我进入一段时间。< / p>

第4步:此技巧有效。我已经禁用了所有插件,错误消失了。

步骤5:逐个激活所有插件,找出哪个插件导致错误,以便我可以修复特定插件中的错误。就像有一个插件在wp_enqueque_style之前添加样式所以我将它设置为一个函数并正确挂钩。

还有一些小错误,就像deprecated个函数一样。无论您是要更正它还是使用备用插件,都取决于您。

并且不要忘记从ob_start文件中删除wp_login.php。不应更改核心文件。

希望这有助于像我这样的人。

答案 2 :(得分:5)

在WordPress仪表板的设置中,有两个名为“WordPress地址(URL)”和“站点地址(URL)”的字段。这些也称为您网站的“主页”和“网站网址”设置。这些值需要与您实际运行的服务器匹配。

如果您无法访问管理员,可以使用phpmyadmin,进入您的数据库,找到wp_options表中的字段,并确保它们反映您的域名。

在大多数情况下应该足够了。

答案 3 :(得分:4)

我自己曾几次打过可怕的“死亡之白”。您可以浏览Wordpress Support Site处的帖子以收集一些建议,或者谷歌搜索许多人的故事和建议。我不能为此推荐单一的权威参考。

在我的大多数情况下,它是由于我的开发服务器和生产服务器之间的换行方案的更改(通常是插件)中引入的关闭?>标记后的空格引起的。

您也可以尝试将Wordpress加入debug mode或将error_reporting(E_ALL);添加到网站/wp-admin/admin.php文件的第一行,看看这些文件是否为您提供了任何提示。

我个人能够通过使用XCloner plugin在我的Win dev机器和* nix生产服务器之间进行传输来避免这些(触摸木板)。

答案 4 :(得分:2)

编辑wp-content / themes / active-theme-folder / function.php并在之前添加此代码:

<?php
define('WP_HOME','http://www.myurl.com');     //<-- NO TRAILING /
define('WP_SITEURL','http://www.myurl.com');

答案 5 :(得分:0)

迁移到本地服务器后,我遇到了同样的问题。 第一次尝试失败,因为数据库中有许多硬编码的文件路径。 所以我再次尝试并注意创建与实时服务器相同的路径以及相同的主机名和数据库名。现在网站很好,但是wp-login给了白屏。

使用wp-debug我发现问题是由在config.php中硬编码完整文件路径的wp-super-cache插件引起的 将此路径更改为完整的本地路径就可以了。

答案 6 :(得分:0)

将以下行添加到wp-config.php文件中:

define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);

define('WP_SITEURL', WP_HOME . '/');

答案 7 :(得分:0)

这些是我通常遵循的步骤。

  1. 上传文件和数据库。
  2. 设置正确的文件权限。
  3. 更新wp-config.php文件中的数据库配置以匹配服务器db登录。
  4. 更新wp_options表以更新网站网址和主网址。
  5. 如果一切顺利,您应该可以使用wp-login.php作为网址登录管理员。
  6. 接下来要做的第一件事是转到固定链接并单击“保存”,它将自动更新.htaccess文件。如果没有写入权限,它将显示您可以复制它并通过ftp编辑文件。
  7. 接下来,您可以使用名为velvet urls的插件轻松更新所有网址。使用它多年。它将更新数据库中的所有其他URL。
  8. 如果一切正常,所有这些步骤就足够了。

    如果您获得空白页面或其他内容,您可以打开错误报告并从wp配置文件本身写入日志。您可以尝试其中一些进行调试。

    1. 只需逐个删除文件夹中的插件即可。
    2. 删除您正在使用的自定义主题。
    3. 除非您主要编辑核心文件,否则它将解决问题。只有其他机会是php或mysql的版本不匹配,这也是迁移时需要注意的重要事项。希望这有助于某人。

答案 8 :(得分:0)

在许多情况下,将文件迁移到其他服务器时,仅是由于其中一个PHP文件中的一个小错误而导致出现此问题。错误是关闭文件后还有其他字符?> PHP标记。这些可能只是简单的空格或返回,但通常可能是导致死亡的白屏的原因。

罪魁祸首是WordPress主题中的functions.php文件。在纯文本文件编辑器(通常对于大多数托管帐户可用)中进行查看,并确保删除结束标记后的所有行。

如果该文件中没有该文件,请使用错误报告来识别罪魁祸首文件,该文件可能位于主题中的插件或其他文件中。

如乔恩·瑟雷尔(Jon Surrell)启用错误显示所提到的,请在wp-config.php中将以下设置更改为true。

define('WP_DEBUG', true);

答案 9 :(得分:0)

我正在将此答案添加到战斗中,希望它可能对其他人有所帮助。我遵循以上所有建议均无济于事。实际上,我不得不破解PHP文件以强制管理员访问面板。通过该面板,我发现未为管理员帐户分配管理员角色。

这是我对“ wp-includes / capabilities.php”的攻击

function current_user_can( $capability ) {
    $current_user = wp_get_current_user();

    if ( empty( $current_user ) ) {
        return false;
    }

return true;  // HACK to get superuser power to any logged in user

    $args = array_slice( func_get_args(), 1 );
    $args = array_merge( array( $capability ), $args );

    return call_user_func_array( array( $current_user, 'has_cap' ), $args );
}    

这允许出现管理员面板,并具有对https://example.com/wp-admin/users.php的访问权限,然后我可以分配角色。然后,我已经为我分配了“管理员”,然后我便解除了capabilities.php的权限,以确保所有用户都具有正确的权限。

答案 10 :(得分:0)

每个人。几天前,我通过BlogVault移植了WordPress多站点实例。流程进行得很顺利,站点可以按需工作。但是我无法进入控制台,始终收到错误消息“您的浏览器不支持cookie,请启用它们并重试”。我花了几天的时间进行研究,发现错误是由于“ wp_options”页面的代码中的输入而发生的。

原始站点使用该行

define ('COOKIE_DOMAIN', strtolower (stripslashes ($ _SERVER ['HTTP_HOST'])));

但新服务器使用该行

define ('COOKIE_DOMAIN', mydomain.com);"

替换代码行解决了该问题。希望对别人有帮助)