WordPress ends up with wrong upload directory after moving servers

If you’ve moved WordPress from one server (or home directory) to another, everything looks fine until you come to upload a file. It then complains that it can’t write to the upload directory. Something like:

Unable to create directory /usr/home/username/wp-content/uploads/xxx/yy. Is its parent directory writable by the server?

A search through the PHP config files doesn’t reveal a path to the upload directory, and if it’s possible to change it from the Dashboard I’ve yet to find where.

The only remaining option was the mySQL database, and fishing around in the likely sounding wp_option table I found a option_name of “upload_path”. A quick query showed this was the home directory.

To save you fishing, here’s the SQL needed to set things right. Obviously select the appropriate database with “use” first!

update wp_options
set option_value='<path-to-your-wordpress-installation>/wp-content/uploads'
where wp_options.option_name='upload_path';

This is how you do it using straight SQL from the command line. If you’re using some sort of restricted web hostinig account “See your system administrator” and point them here.

One Reply to “WordPress ends up with wrong upload directory after moving servers”

  1. I’ve since found an entry for this in WordPress 3+ – it’s under Tools/Media of all places. It might have been around when I wrote this but I did look. The point is that you can’t set it from the PHP, and probably never need to set it unless you move servers but the data stored in the SQL database is actually the absolute path on the original installation.

Leave a Reply

Your email address will not be published. Required fields are marked *