After migration of WordPress website I can't access the admin (white page)
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');
AndreaNobili
Updated on July 17, 2022Comments
-
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 about 11 yearsdid you update your
.htaccess
andwp-config.php
files? -
AndreaNobili about 11 yearsI 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 about 11 yearsActually 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 about 11 yearsmmm also this thing...what do you mean with "pretty urls"? and how to turnin on error-reporting?
-
-
Revious about 9 yearsActually 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 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 about 9 years@Revious It's certainly possible depending on your setup.
-
zen about 7 yearssame 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 about 7 yearsGive that man a cookie! This is the full and most correct answer!
-
PHP Mentor about 7 years@Noamiko Thanks
-
Paul De Jong almost 6 yearsThe complete instructions are here: link
-
Alexandro Giles about 3 yearsAfter 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!