Everything you need to know about backing up, restoring, and migrating your WordPress site with BackupRidge.
Three Pro destinations support one-click OAuth in BackupRidge → Remote Storage. You sign in with your cloud account; BackupRidge stores a refresh token for backups. No Client ID or secret is required on your site when Quick connect is configured by your license or hosting provider.
| Provider | Tier | Setup |
|---|---|---|
| Google Drive | Pro | OAuth — Quick connect or your own Google Cloud app |
| Dropbox | Pro | OAuth — Quick connect or your own Dropbox app |
| OneDrive | Pro | OAuth — Quick connect or your own Azure app |
| Amazon S3, Cloudflare R2, FTP, SFTP | Free | API keys / host credentials — not OAuth |
| Backblaze B2 | Pro | Application key — not OAuth |
If Connect shows Quick connect is not configured, switch to Use your own app (Client ID and secret) and follow the provider section below (register an OAuth app, then Connect again).
Google Drive: even with Quick connect, the Google Cloud project must have the Google Drive API enabled or uploads fail after Connect.
BackupRidge uploads backups to Amazon S3 using an IAM access key (not OAuth). Create a dedicated bucket and IAM user with list and object permissions on your backup prefix, then enter credentials in Remote Storage.
eu-west-1).Create an IAM user (for example backupridge-s3) with programmatic access. Attach a policy that allows at least:
s3:ListBucket on the bucket (optionally limited to prefix backups/*)s3:PutObject, s3:GetObject, s3:DeleteObject on arn:aws:s3:::YOUR-BUCKET/backups/*s3:AbortMultipartUpload and s3:ListMultipartUploadParts for large backupsCreate an access key and copy the Access key ID and Secret access key (shown once). For a dedicated backup bucket, allow s3:ListBucket on the bucket and object read/write on arn:aws:s3:::YOUR-BUCKET/* so you can change Remote path in WordPress without editing IAM. BackupRidge creates the remote folder in S3 when you test or upload.
/backups; trailing slashes are optional).s3:ListBucket).PutObject but not ListBucket on the prefix; extend the policy.More detail: Troubleshooting → Amazon S3 storage.
BackupRidge uploads backups to Cloudflare R2 using the S3-compatible API and an R2 API token (not OAuth). Create a dedicated R2 bucket and credentials with object read/write access, then enter the access key, secret, bucket name, and account S3 API endpoint URL in Remote Storage (signing region auto is applied automatically).
https://<account_id>.r2.cloudflarestorage.com.backupridge), and create the bucket.On the same R2 Overview page, use the Account details panel on the right:
https://<account_id>.r2.cloudflarestorage.com).Open the token page via Account details → { } Manage on R2 Overview, or via Manage account → Account API tokens in the profile menu. Both show the same screen.
https:// and do not add :9000)./backups). BackupRidge creates this prefix in the bucket when you test or upload.https and account ID).auto for R2, not us-east-1.More detail: Troubleshooting → Cloudflare R2 storage.
BackupRidge FTP and SFTP remote storage use native PHP extensions. They are not available on every WordPress host unless those extensions are installed for the same PHP SAPI that serves WordPress (Apache mod_php, PHP-FPM, etc.).
Other destinations (Amazon S3, Cloudflare R2, Backblaze B2, Google Drive, Dropbox, OneDrive) use HTTPS and work on typical WordPress stacks without extra PHP modules. If FTP or SFTP is greyed out in Remote Storage, the plugin detected a missing extension — use the steps below before configuring a provider.
| Provider | PHP extension | Notes |
|---|---|---|
| FTP | ftp | Plain FTP and FTPS (ftp_ssl_connect) need the ftp extension. FTPS also needs OpenSSL (usually already enabled). |
| SFTP | ssh2 (PECL) | Installed via PECL (pecl install ssh2) on many custom and Docker images; rarely enabled on budget shared hosting. |
From WP-CLI (replace with your site path if needed):
wp eval 'var_export(function_exists("ftp_connect"));'
wp eval 'var_export(function_exists("ssh2_connect"));'Both should print true for the provider you want. You can also use a temporary phpinfo() page and search for ftp and ssh2. If you use PHP-FPM, run checks against FPM's php.ini, not only the CLI binary (wp eval uses CLI — if CLI and FPM differ, ask your host which SAPI serves WordPress).
Linux (Debian/Ubuntu) — install distro packages for your PHP version, then restart PHP-FPM or Apache:
# FTP (example for PHP 8.3)
sudo apt-get install php8.3-ftp
sudo systemctl restart php8.3-fpm # or apache2
# SFTP — PECL ssh2 needs build headers, then enable in php.ini
sudo apt-get install php-pear php8.3-dev libssh2-1-dev
sudo pecl install ssh2-1.4.1
echo "extension=ssh2.so" | sudo tee /etc/php/8.3/mods-available/ssh2.ini
sudo phpenmod ssh2
sudo systemctl restart php8.3-fpmOn some builds the ftp extension is compiled in but disabled. In php.ini (or a drop-in under conf.d), ensure a line like extension=ftp is present and not commented out. For PECL ssh2, you typically add extension=ssh2.so after pecl install.
Stock wordpress:php*-apache (and FPM variants) images do not include ftp or ssh2. Extend the image, for example:
FROM wordpress:6.9-php8.3-apache
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends libssh2-1-dev; \
docker-php-ext-install -j"$(nproc)" ftp; \
pecl install ssh2-1.4.1; \
docker-php-ext-enable ssh2; \
apt-get purge -y --auto-remove libssh2-1-dev; \
rm -rf /var/lib/apt/lists/*Rebuild your image and redeploy the WordPress container. Outbound TCP from that container to your FTP/SFTP server (ports 21 or 22, or your host's custom ports) must be allowed.
BackupRidge uploads backups to your FTP or FTPS server using the PHP ftp extension. Configure host, port, credentials, remote path, and connection options in Remote Storage.
ftp extension loaded for the WordPress PHP SAPI (see FTP/SFTP PHP requirements).ftp_ssl_connect); requires OpenSSL on PHP./backups/) — must exist and be writable.ftp on the host; see Docker or php.ini steps.BackupRidge uploads backups over SSH file transfer using the PHP ssh2 (PECL) extension. Use password or PEM private key authentication.
ssh2 extension loaded (see FTP/SFTP PHP requirements).atmoz/sftp) chroot the home directory — use a subdirectory such as /upload/backups/ rather than the chroot root./backups/ or /upload/backups/ on chrooted servers).ssh2; see Docker or php.ini steps./upload/).BackupRidge Pro stores backups in Google Drive using OAuth. Use Quick connect to sign in with one click when your site supports it, or register your own Google Cloud OAuth app. The Google Drive API must be enabled on the OAuth project or uploads fail after Connect.
Creating an OAuth client is not enough. Uploads and Test connection use the Google Drive API.
If the API is disabled, Connect with Google may still work (OAuth tokens refresh), but Test connection fails with Connection succeeded but file upload test failed.
https://YOUR-DOMAIN/wp-admin/admin.php?page=backupridge-storage&action=oauth-callbackLocal example: http://localhost:8080/wp-admin/admin.php?page=backupridge-storage&action=oauth-callbackQuick connect (recommended): leave Quick connect (sign in with your account) selected, click Connect with Google, sign in, then name the provider, set remote path (for example /backups), optional Folder ID, Test connection, and Save.
Use your own app: select that connection method, enter Client ID and secret (or define BACKUPRIDGE_OAUTH_GDRIVE_CLIENT_ID / BACKUPRIDGE_OAUTH_GDRIVE_CLIENT_SECRET in wp-config), then Connect with Google — do not skip Connect; the plugin needs a refresh token.
More detail: Troubleshooting → Google Drive storage.
BackupRidge Pro stores backups in Dropbox using OAuth. Use Quick connect when available, or create a Dropbox app with scoped permissions enabled and submitted before Connect (own app only).
Apps/<app name>/) or Full Dropbox — both work with BackupRidge.Open your app → Permissions → enable:
files.metadata.read is required with it)Scroll down and click Submit. Until you submit, OAuth shows No scope requested can be granted and uploads fail after Connect.
https://YOUR-DOMAIN/wp-admin/admin.php?page=backupridge-storage&action=oauth-callbackLocal example: http://localhost:8080/wp-admin/admin.php?page=backupridge-storage&action=oauth-callback
Quick connect: default connection method → Connect with Dropbox → sign in → remote path → Test connection → Save.
Use your own app: complete Permissions + Submit above, enter App key and secret (or wp-config constants), Connect with Dropbox, then test and save. Remote path example: /backups.
More detail: Troubleshooting → Dropbox storage.
BackupRidge Pro stores backups in OneDrive via Microsoft Graph and OAuth. Use Quick connect when available, or register your own Azure app (redirect URI must not contain a query string; login endpoint must match account types).
consumers login endpoint by default).BACKUPRIDGE_ONEDRIVE_OAUTH_AUTHORITY=common in wp-config.https://YOUR-DOMAIN/wp-admin/admin.phpLocal example: http://localhost:8080/wp-admin/admin.php — add under Authentication → Web. Do not register admin.php?page=backupridge-storage&action=oauth-callback (Azure rejects ? in redirect URIs).
Quick connect: Connect with Microsoft → sign in → name provider, remote path (for example /backups), optional Folder ID → Test connection → Save.
Use your own app: Application (client) ID and secret (or wp-config constants), then Connect with Microsoft before Save.
/wp-admin/admin.php only.consumers).More detail: Troubleshooting → OneDrive storage.
BackupRidge Pro uploads backups to Backblaze B2 using an application key (Key ID + secret, not OAuth). You need the bucket Bucket ID from B2 console settings, not only the bucket name.
/backups (default; trailing slashes optional).More detail: Troubleshooting → Backblaze B2 storage.