Checklist for moving a PHP-based site from one server to another


  • Make sure server configuration is the same. Install missing php extensions and modules. (A good way of comparing is by diffing the output of phpinfo() between the two servers.)
  • Check the mail configuration on the new server. (Is it Sendmail, Postfix or something else? Is any configuration required to get the mail() function working?)


  • Move files (Best ways are either to pack them in an archive (.tar.gz) or moving the files via sshfs.
  • Set file permissions (files should typically be owned by the web server unless you run some sort of suexec config.)
  • Move databases and create database users on the new server.
  • Move CRON jobs (Crontab, etc)
  • Update DNS records (Don’t forget the MX records for mail, and any SPF records you may have.)

Application-specific: WordPress

  • Disable caching plugins (If you figure this out too late, just comment out define(‘WP_CACHE’, true); from wp-config.php and then Disable -> Enable -> Activate your caching plugin through wp-admin.


  • Run CacheCheck to see if your DNS has propagated
  • Monitor site via Pingdom or similar service for errors after the move. (And not only timeout, make sure you check for non-200 HTTP code errors too!)

Anything missing? Post a comment!

Leave a Reply

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

Markdown is allowed in comments.