I recently tried to access a website I’d created for a South Korean start-up over 2 years ago only to find that the entire contents of the web directory had been deleted. Within a day or two of this realization, the CEO contacted me and asked me to “fix” it.
Luckily for me, Dreamhost had updated the site in the last year and had created a complete archive of the site at
/sitename.com.old. But, I didn’t want to run into this situation again in the future without a backup, so I decided to create a staging site for it. This was to accomplish 3 things:
- To maintain a FULL copy of the functioning website (as it is now)
- To teach me how to create a staging site so I can repeat the process with my personal sites
- To allow me to make changes to my websites that are not “live” – to test and debug them before implementing the changes on my “live” sites
1. Create a
Dreamhost provides FREE subdomains on the
.dreamhosters.com domain to its customers. This is a recommended location to create a staging site. The following article outlines this process:
When you create the
.dreamhosters.com subdomain, be sure to assign the same user to it as you are using for the original site. This will make the next step much easier.
2. Copy ALL files to the new subdomain
Personally, I’ve found it much much faster and easier to
ssh into my site and copy all the files using the command line (rather than via FTP). For this to work, you’ll need to keep a few things in mind:
- Your FTP user needs Shell access (Enabling Dreamhost Shell Access).
- The same user needs access to BOTH the original site and the new subdomain so that when you
sshin, you can run the Linux copy command from the root folder.
- Now, in a Terminal window,
sshinto the site, and run the following command to copy all site contents to the new subdomain.
[server]$ cp -a originalsite.com/. staging.dreamhosters.com
We’re copying the files over NOW because Dreamhost Shared hosting won’t allow us to create and download large archives with the Duplicator plugin. So it’s better to do the Two-Part Install instead of relying on Duplicator for the entire process.
1. Install & run Duplicator on the original site
Dreamhost has a helpful article that lays out this process.
But, rather than downloading the FULL SITE archive, we need to run the Two-Part Install – downloading only the database archive and installer file.
2. Create a new Database on Dreamhost
Complete step #8 from the previous article to create a new MySQL database on Dreamhost:
3. Upload & run
installer.php on the staging site
Continue the Migration tutorial from step #9. Upload BOTH the
archive.zip and the
installer.php files from Duplicator to your staging site via FTP. Then, navigate to the installer on your staging site:
When it asks for your database details, be sure to “Test Database” to make sure you can connect. Then run through the rest of the steps in the installer.
Also remember to “Remove installer files” after logging into your new
/wp-admin area (there will be a link).
Review & Resources
Overall, the process of setting up a WordPress Staging Site with Dreamhost and Duplicator was much easier than I’d originally anticipated. Here is a condensed list of the steps and resources covered in the tutorial above.
- Create a
.dreamhosters.comsubdomain (with the same user)
- Copy over ALL original site files (via
sshand the command line)
- Install Duplicator and run it to archive “Database Only”
- Upload the
installer.phpto your subdomain
- Create a new MySQL database in Dreamhost (same user)
- Navigate to
- Run through the remainder of the steps in the tutorial
- Dreamhost’s Migration tutorial
- Duplicator’s Two-step Install tutorial
- See also: Staging a DreamPress overview for tips on best practices:
Bonus: Get $50 off Dreamhost’s Unlimited shared hosting plan by clicking this link, or any of the other Dreamhost links above!
Disclaimer: (I will make a small commission if you decide to sign up for a Dreamhost plan using one of these links)