How To Migrate a WordPress instance to a New Server
Backup Site internally
(slice1)
sudo cp -Rf /var/www/www.example.com /home/username/sites
Backup MYSQL database
mysqldump -u root -p www_example_com > www_example_com.sql sudo mv www_example_com.sql /home/username/sites
It is convenient to put everything into one directory so all files can be moved at once. I use /home/username/sites
Copy site and SQL file back to local machine
I use Rsync instead of FTP for security
copy site from server
(slice1)
sudo rsync -azv -e ssh username@slice1.example.com:/home/username/sites /home/username/sites/
copy site to server
(slice2)
sudo rsync -azv /home/username/sites -e ssh username@slice2.example.com:/home/username/sites/
Move Site Internally
(slice2)
sudo mv -Rf /home/username/sites /var/www/
Login to MySQL and create database
mysql -u root -p
in MySQL
>the following commands at MySQL prompt
MySQL Create user
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
MySQL Grant Priveledges
GRANT ALL ON www_example_com.* TO 'username'@'localhost';
log out of MySQL
quit
Import Worpress Database
mysql -u root -p -D www_example_com < www_example_com.sql
Restart MySQL
sudo service mysql restart
if that does not work, something a bit stronger
sudo /etc/init.d/mysql restart
Create Virtual Host
sudo vi /etc/apache2/sites-available/www.example.com
copy this code into the file
<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName www.example.com ServerAlias www.example.com DocumentRoot /var/www/www.example.com/ </VirtualHost>
sudo a2ensite www.example.com sudo /etc/init.d/apache2 restart
WordPress Migration Errors
If you see the error message
- Upload folder is not writable. Export and file upload features will not be functional.
Immediately check (in wordpress) Settings > Media > Store uploads in this folder : the path to the folder may be different than on the prior server