Staging is a separate copy of your website used for testing updates and changes. Even if your website is not WordPress, you can still create a staging copy on GARMTECH hosting by using a subdomain such as stage.yourdomain.tld.
Before you start
- Decide the staging hostname (common options:
stage, dev, test).
- If the site uses a database, make sure you know where the database credentials are stored (for example,
config.php, .env, settings.php).
Step 1 — Create a subdomain in Plesk
- Log in to Plesk (open from My.GARMTECH).
- Go to Websites & Domains.
- Click Add Subdomain.
- Enter the subdomain name (for example,
stage).
- Keep the suggested document root or set a clear path such as
/stage.
- Click OK to create it.
Step 2 — Copy website files to the staging document root
You can copy files using:
- Plesk File Manager (fast for small/medium sites)
- FTP‑SSL (recommended for large sites)
Typical approach:
- Open the production document root (usually
httpdocs).
- Create an archive (ZIP) of your website files.
- Upload the archive to the staging document root (for example,
/stage).
- Extract the archive in the staging folder.
Step 3 — Clone the database (if your site uses one)
- In Plesk, go to Databases.
- Create a new database for staging (for example,
yourdb_stage) and a database user.
- Export the production database in phpMyAdmin (Export → Quick/Custom).
- Import the dump into the staging database (phpMyAdmin → Import).
Step 4 — Update configuration for staging
- Update database credentials in your site config file (new DB name/user/password).
- If the site contains absolute URLs, update the base URL to the staging domain (many frameworks store it in config or database).
Step 5 — Protect the staging site
Staging should not be publicly accessible or indexed by search engines.
Step 6 — Enable SSL for the subdomain
Issue/extend a Let’s Encrypt certificate in Plesk and include the staging subdomain so you can test via HTTPS.
Tips
- Use staging for updates first, then apply the same change on production.
- Keep staging data separate (highlight it visually so it is not confused with production).