ssh root@xx.xxx.xxx.xx
mysql -uroot -pREMOTE_MYSQL_ROOT_PASSWORD
create database REMOTE_DBNAME COLLATE 'utf8_unicode_ci';
show databases;
exit
ssh ubuntu@xxx.xxx.x.x
mysql -uroot -pLOCAL_MYSQL_ROOT_PASSWORD
create database LOCAL_DBNAME COLLATE 'utf8_unicode_ci';
show databases;
exit
In local server
ssh ubuntu@xxx.xxx.x.x
Dump and import to remote server
mysqldump -uMYSQL_USER -pLOCAL_MYSQL_ROOT_PASSWORD LOCAL_DBNAME | ssh root@xx.xxx.xxx.xx mysql -uroot -p'REMOTE_MYSQL_ROOT_PASSWORD' REMOTE_DBNAME
ctrl+d
In remote server
ssh root@xx.xxx.xxx.xx
cd /var/www/PROJECT_NAME
wp search-replace LOCAL_PROJECT_URL REMOTE_PROJECT_URL --allow-root
wp user list --allow-root
wp user update 1 --user_pass=NEW_PASSWORD --allow-root
ctrl+d
In developer pc
Copy wp-config.php
and .htaccess
file to remote server
cd LOCAL_PROJECT_PATH
scp -r wp-config.php root@xx.xxx.xxx.xx:/var/www/PROJECT_NAME
scp -r .htaccess root@xx.xxx.xxx.xx:/var/www/PROJECT_NAME
Sync local project folder to remote server project folder
rsync -chavzP --stats LOCAL_PROJECT_PATH/UPLOADS_FOLDER_PATH root@xx.xxx.xxx.xx:/var/www/PROJECT_NAME/UPLOADS_FOLDER_PATH
In local server
ssh ubuntu@xxx.xxx.x.x
Dump local database for backup (optional)
cd ~/Documents
mysqldump -u MYSQL_USER -pLOCAL_MYSQL_ROOT_PASSWORD LOCAL_DBNAME --compatible=mysql40 > LOCAL_DBNAME.$(date +%Y-%m-%d-%H.%M.%S).sql
Dump and import to local server
ssh root@xx.xxx.xxx.xx mysqldump -u root -pREMOTE_MYSQL_ROOT_PASSWORD REMOTE_DBNAME | mysql -uMYSQL_USER -pLOCAL_MYSQL_ROOT_PASSWORD LOCAL_DBNAME
ctrl+d
In developer pc
cd LOCAL_PROJECT_PATH
wp search-replace REMOTE_PROJECT_URL LOCAL_PROJECT_URL
wp user list
wp user update 1 --user_pass=NEW_PASSWORD
Sync local project folder to remote server project folder
rsync -avuz --progress root@xx.xxx.xxx.xx:/var/www/PROJECT_NAME/UPLOADS_FOLDER_PATH LOCAL_PROJECT_PATH/UPLOADS_FOLDER_PATH