Skip to content

Instantly share code, notes, and snippets.

@dharma017
Last active September 16, 2015 05:14
Show Gist options
  • Save dharma017/2ed90c291bdfb01a9d4c to your computer and use it in GitHub Desktop.
Save dharma017/2ed90c291bdfb01a9d4c to your computer and use it in GitHub Desktop.
Setup wordpress project in office for first time to work between development and staging server

Project Setup

Create Database on Staging Server

ssh root@xx.xxx.xxx.xx
mysql -uroot -pREMOTE_MYSQL_ROOT_PASSWORD
create database REMOTE_DBNAME COLLATE 'utf8_unicode_ci';
show databases;
exit

Create Database on Local Server

ssh ubuntu@xxx.xxx.x.x
mysql -uroot -pLOCAL_MYSQL_ROOT_PASSWORD
create database LOCAL_DBNAME COLLATE 'utf8_unicode_ci';
show databases;
exit

Sync assets and database from local PC to staging server (1.3 to 99)

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

Sync assets and database from staging server to local PC (99 to 1.3)

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment