After migration of WordPress website I can't access the admin (white page)

77,280

Solution 1

There is an error on your site, and you need to find out what's happening.

WordPress URLs

When migrating WordPress sites where the URL changes, you will need to tell WordPress about the new URL. WordPress stores that information in the database, so if you're comfortable with that, you could find the correct entry in the wp_options table in your database and update its value.

I will show some fixes for standard WordPress installs (where the site URL is the WordPress root), but you may need to use different values for home and siteurl if you have a different setup.

Fix URLs via SQL

You will need to update the relevant fields in the DB, those being the entries of wp_options where the option_name is siteurl or home. You can find these fields using phpmyadmin, mysql-workbench, or another database management tool, or you can use the following query, changing the URL to be your own.

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

Fix URLs via wp-config.php

However, you can also do this via wp-config.php, which I find to be much more comfortable. Just open wp-config.php and add the lines:

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

Obviously you'll need to supply your correct URL.

It's possible that this is the only error you're having, and after adding those lines to wp-config.php, you will be able to log in and use your site normally.

Debugging WordPress errors

However, if you continue to experience problems, and any time you're working on developing a website, you will want to see error output. You can check your server logs for information about the errors, but you may find it more convenient for WordPress to simply display the errors in the page. To enable error display, change the following setting to true in wp-config.php.

define('WP_DEBUG', true);

Now WordPress will display any errors it encounters directly in the webpage. Be sure to change the setting to false for use on a production site.

Working with wp-config.php

This file will be located in the root directory of your wordpress installation. To make any of the changes mentioned here, you may either edit the file directly on the server (via ssh for example), or download the file with an FTP client, make your changes using a text editor, and upload the file again.

It's also a good idea to keep a backup copy before making any changes in case you break something while you're working.

References

You can read all about changing the WordPress site URL on the docs page.

Solution 2

Late To the party, I've experienced this recently and I managed to solve the issue. Here is what I've done.

Step 1: Set WP_DEBUG to true from the wp-config.php file

Step 2: I tried domain.com/wp-login.php instead of domain.com/wp-admin by this I was able to get atleast login form and some errors of Warning: Cannot modify header information - headers already sent by

Step 3: I've added ob_start(); in wp-login.php file after <?php in first line, of course to get me in for a while.

Step 4: This trick worked. I've disabled all the plugins, and errors are gone.

Step 5: Activated all the plugins one by one to find which plugin is causing error, So that I can fix the error in particular plugin. Like there was one plugin adding style before wp_enqueque_style so I set it to a function and hook it properly.

There were some minor errors too like deprecated functions. Its up to you whether you want to correct it or use alternate plugin.

And Don't forget to remove ob_start from wp_login.php file. The core files should not be changed.

Hope this helps someone like me.

Solution 3

Inside your settings for your WordPress dashboard there are two fields named "WordPress address (URL)" and "Site address (URL)". These are also known as the "Home" and the "Site URL" settings for your website. The values need to match the server you're actually running on.

If you can't get to the admin, you can use phpmyadmin, go into your database, find the fields kin the wp_options table, and make sure they reflect your domain.

It should be enough in most of cases.

Solution 4

I've fought the dreaded "White Screen of Death" myself a few times. You can browse the threads at the Wordpress Support Site to glean some suggestions, or Google it for lots and lots of people's stories and advice dealing with these. I can't recommend a single, authoritative reference for this.

In most of my cases it was caused by whitespace after a closing ?> tag that got introduced because of changes in newline schemes between my dev and production servers, usually in a plugin.

You might also try putting Wordpress into debug mode or adding error_reporting(E_ALL); to the first line of your site's /wp-admin/admin.php file to see if these give you any hints.

I've personally been able to avoid these (touch wood) by using the XCloner plugin to make transfers between my Win dev machine and *nix production server.

Solution 5

Edit wp-content/themes/active-theme-folder/function.php and add this code just before:

<?php
define('WP_HOME','http://www.myurl.com');     //<-- NO TRAILING /
define('WP_SITEURL','http://www.myurl.com');
Share:
77,280
AndreaNobili
Author by

AndreaNobili

Updated on July 17, 2022

Comments

  • AndreaNobili
    AndreaNobili almost 2 years

    I am trying to move a WordPress site from my local server to the online server.

    The problem is that, after the migration, if I try to open the administration page (wp-admin) I only obtain a white page, as you can see here: http://scorejava.com/wordpress/wp-admin/. Everything else seems work well in the homepage: http://scorejava.com/wordpress/.

    In my local web server I have the WP site into the folder: /var/www/wordpress. I have moved it into a wordpress folder that is into my root directory of my online web server.

    I have also import the local database into the onlyne database using MySql and then I have use the Search and Replace for WordPress Databases Script to change automatically all the http://localhost/wordpress occurrence into the database tables with http://scorejava.com/wordpress/.

    • Jared
      Jared about 11 years
      did you update your .htaccess and wp-config.php files?
    • AndreaNobili
      AndreaNobili about 11 years
      I have updated wp-config.php but I have not update .htaccess Where is this .htaccess file? and what I have to do to update it?
    • Jared
      Jared about 11 years
      Actually you may not have an .htaccess if you are not using pretty urls. Try turning error-reporting on to shed some light on the issue.
    • AndreaNobili
      AndreaNobili about 11 years
      mmm also this thing...what do you mean with "pretty urls"? and how to turnin on error-reporting?
  • Revious
    Revious about 9 years
    Actually I've discovered that a lot of strings into the DB contains the domain hardcoded.. my solution was a total search and replace inside the .sql file containing the export of the database.
  • Jon Surrell
    Jon Surrell about 9 years
    @Revious I've also experienced that, especially with images, but I think that's outside the scope of this question.
  • Jon Surrell
    Jon Surrell about 9 years
    @Revious It's certainly possible depending on your setup.
  • zen
    zen about 7 years
    same issue, got fixed by deleting white space after ?> In my case it is located on my Child theme's function.php. Hope this help somebody
  • Noamiko
    Noamiko about 7 years
    Give that man a cookie! This is the full and most correct answer!
  • PHP Mentor
    PHP Mentor about 7 years
    @Noamiko Thanks
  • Paul De Jong
    Paul De Jong almost 6 years
    The complete instructions are here: link
  • Alexandro Giles
    Alexandro Giles about 3 years
    After many tries, change the htaccess multiple times, hardcode the siteUrl to the database etc. This was the only thing that makes my site work again!