Safer Remote Site Backup & Manager

الوصف

WP Safer connects your site to the wpsafer.com management dashboard, so you can manage multiple sites from one place: backups, plugins, themes and core updates. This plugin is the lightweight agent that runs on your site — almost all configuration lives on the dashboard, so there is very little to set up here beyond pasting your site key.

What it does

  • Resumable backups. Full, database-only and incremental backups run in small, resumable steps so they survive shared-hosting execution-time limits. Archives are built locally and then collected by your dashboard, which keeps them off your server as a cloud backup.
  • Safe restores. Restores are staged next to your live files and swapped in with a single atomic move; nothing is deleted until the swap succeeds, and a failed restore rolls back automatically.
  • Migration & transfer. Move a site to another host or another domain from the dashboard: the archive is transferred to the target server and restored there, so a migration is the same tested path as a restore.
  • Remote plugin & theme management. Install, update, activate, deactivate and uninstall plugins and themes — individually or in groups — without logging in to each site.
  • One-click login. Open the wp-admin of any connected site directly from the dashboard, no password required.
  • Core updates. Update WordPress core from the dashboard.
  • Database & content cleanup. The built-in sweep tool removes post revisions, auto-drafts, trashed posts and comments, spam, orphaned and duplicated meta data, unused terms, transient options and stale oEmbed caches.
  • Uptime monitoring. Periodic checks confirm your site is answering from the outside.
  • Admin-area IP firewall. An optional allow or block list decides which addresses may open wp-login.php, /wp-admin and XML-RPC on your site. Single addresses, CIDR ranges, wildcards and ranges are understood; the public side of your site is never filtered. Managed per site from the dashboard.
  • Security scans. A file integrity scan compares WordPress core, plugin and theme files against the official WordPress.org checksums and reports what no longer matches, so an unexpected change is visible from the dashboard.
  • System checks. The dashboard reports on PHP version, free disk space, max execution time, ZipArchive availability and file-write access so you can see backup readiness at a glance.
  • Signed connection. Every request between your site and the dashboard is authenticated with your site key; the plugin also runs a self-test to confirm the connection is healthy.

Check out wpsafer.com to create a free account.

Support

Email us at support@wpsafer.com.

External services

This plugin is the site-side agent of the WP Safer service at wpsafer.com. It cannot do its job without talking to that service, and it also fetches packages from WordPress.org. Every outbound connection it makes is listed here.

wpsafer.com / api.wpsafer.com / cdn.wpsafer.com (WP Safer)

What it is: the dashboard you connect this site to. It stores your site list, schedules and keeps your backup archives, and is where you trigger updates and restores from.

When it is contacted and what is sent:

  • Backup archives. When a backup finishes, the dashboard downloads the archive from your site. It contains your database dump and your site’s files. It does not contain wp-config.php, so your authentication keys, salts and database password never leave the server.
  • Restores and migrations. When you start a restore, the site downloads the archive from api.wpsafer.com or cdn.wpsafer.com. Only those two addresses are accepted.
  • Plugin, theme and core packages. When you install or update something from the dashboard, the site downloads the package from the address the dashboard supplies — either WordPress.org or cdn.wpsafer.com.
  • Agent updates. Nothing is fetched from this service for the plugin itself any more; new versions come from WordPress.org (see below).
  • Site status. The dashboard asks the site for its plugin/theme/core versions, PHP version, free disk space, database size and similar readiness information. This is sent only in response to a request signed with your site key.
  • Connection self-test. The settings page can run a check that requests https://wpsafer.com/ to see whether your host allows outbound connections. Only the request itself and this site’s address (as the user agent) are sent.

Requests are authenticated with the site key you paste into the settings page. No data is sent before a site key is entered.

Terms of service: https://wpsafer.com/terms. Privacy policy: https://wpsafer.com/privacy.

WordPress.org

What it is: the official plugin, theme and core package repository.

When it is contacted and what is sent: when you install or update a plugin, theme or WordPress core from the dashboard without supplying your own package address, the site asks WordPress.org for the package information and downloads the package. Only the slug and version being requested are sent. WordPress core itself contacts the same service for its own update checks. This plugin’s own updates come from here too: whether you update it yourself from the Plugins screen or the dashboard sends the update, the package is downloaded from WordPress.org.

Terms of service: https://wordpress.org/about/privacy/. Privacy policy: https://wordpress.org/about/privacy/.

License

This file is part of WP Safer.

WP Safer is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

WP Safer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with WP Safer. If not, see http://www.gnu.org/licenses/.

لقطات الشاشة

التنصيب

  1. Install WP Safer via the WordPress.org plugin directory, or upload the safepilot-site-manager folder to /wp-content/plugins/.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Sign up for a free account at wpsafer.com and add your site.
  4. Copy the site key from your wpsafer.com dashboard and paste it into the plugin’s settings page.

الأسئلة المتكررّة

I’m having trouble installing WP Safer on my site

Make sure you’re using the latest version of the plugin. Deactivating and reactivating it sometimes resolves installation issues. If the problem persists, contact us.

I’m having trouble installing plugins or updating WordPress through WP Safer

Make sure your server’s file permissions are set correctly and that your site key is up to date.

المراجعات

لا توجد مراجعات لهذه الإضافة.

المساهمون والمطوّرون

“Safer Remote Site Backup & Manager” هو برنامج مفتوح المصدر. وقد ساهم هؤلاء الأشخاص بالأسفل في هذه الإضافة.

المساهمون

ترجمة ”Safer Remote Site Backup & Manager“ إلى لغتك.

مُهتم بالتطوير؟

تصفّح الشفرة، تحقق من مستودع SVN، أو الاشتراك في سجل التطوير بواسطة RSS.

سجل التغييرات

1.5.12

  • The plugin’s own screen is fully Turkish again. Sixty-three sentences added since the last translation round — the security-plugin allow list, the multisite rules, backup cancellation and several error messages — were still shown in English on Turkish sites. All of them are translated now, so every string this plugin prints has a Turkish version.

1.5.11

  • Updates now come from WordPress.org. This plugin is in the official plugin directory, so new versions arrive the same way as every other plugin on your site: the Plugins screen offers the update, and the package is downloaded from WordPress.org instead of our own servers. You can update it yourself, and the dashboard still updates it for you. Nothing about your site key, settings or backups changes.
  • Turkish is bundled again. The directory package left the Turkish translation out, so a site updating from WordPress.org would have fallen back to English on this plugin’s own screen. The compiled Turkish file ships with the package until translate.wordpress.org carries it, and a translation delivered by WordPress takes precedence over it automatically.
  • “Review us” now links to the directory. The review request can finally point at this plugin’s reviews page on WordPress.org; it stayed silent while the listing did not exist.

1.5.10

  • A backup taken more than an hour ago can be downloaded again. When your dashboard asked a site about its most recent backup, the site answered from a saved copy of the result that it keeps for a day — but the download addresses inside that answer were only valid for an hour. So for the remaining twenty-three hours the site reported a backup as ready and handed over addresses that its own download gate then refused. The archives themselves were never affected and were never deleted; only the addresses had gone stale. The addresses are now generated fresh every time that answer is given.
  • The time a backup took is reported correctly on sites that are not on UTC. The moment a backup started was recorded in the site’s local time but measured against UTC, so on a site three hours ahead of UTC a backup that took twenty minutes was reported as having taken minus two and a half hours. The same wrong figure was stored in the site’s backup log. Both now use the same clock, and a figure left behind by an earlier version reads as zero instead of a negative number.

1.5.9

  • The dashboard has a new address. WP Safer’s server moved, so the address the dashboard calls your site from changed from 65.21.186.173 to 188.245.5.241. This plugin only accepts calls from that address, so a site still holding the old one turns the dashboard away and reports nothing back. Updating fixes it.
  • That address can now be set in wp-config.php. Add define('WPSAFER_IP_WHITELIST', '188.245.5.241'); and it takes precedence over the value built into the plugin. It is there so a site that gets locked out by a future address change can be recovered with one line, instead of an edit inside the plugin that the next update undoes.
  • The address check could be skipped by how the request was shaped. The check read the first action by its literal position, so a request that listed its actions under any other position was not checked against the address list at all and ran anyway. The positions are normalised before the check now. A caller still had to hold this site’s key to get that far — the signature was always verified — so this closed a second fence, not the lock itself.

1.5.8

  • The plugin now states the PHP version it needs. It declares PHP 7.3 — the version its backup engine has always required — so WordPress will not install or activate it on an older PHP. If it ends up on one anyway, it explains why and deactivates itself instead of failing with a fatal error.
  • The dashboard can no longer ask this site for arbitrary configuration constants. The action that reads a named constant answered any name it was given, which included DB_PASSWORD, the authentication keys and the salts. It now answers from a fixed list of configuration switches, and a name that looks like a secret is refused even if a site widens that list with the new wpsafer_constants_allowlist filter.
  • Database names are escaped in the backup dump. Table, view and column names went into the archive’s SQL as they were. A name carrying a backtick or a line break could end the quoting — or a comment — and continue as SQL when the archive was restored. Names are now quoted with doubled backticks, and anything written into a comment has its control characters stripped. A dump of a site with ordinary table names is byte-for-byte what it was before.
  • The backup folder is closed to the web before the first byte is written into it, not after, and the intermediate database dump now carries an unguessable name for as long as it exists. Until now the engine could create that folder itself on a cron run, leaving it briefly readable.
  • The bundled Turkish translation actually loads. The compiled translation file carried a header WordPress refuses to read, so the plugin’s screens stayed English on Turkish sites no matter what. The file is rebuilt; its contents are unchanged.
  • A scan of a large site now needs about half the memory it did. The record the scan keeps for every file was stored as a structure with five named fields, which PHP holds at several times the cost of the same data as plain text — repeated for every file on the site. On a site with 18,742 files this measured 32 MB for a comparison round; it is now 16 MB, and the stored file itself is smaller too. What the scan reports does not change: changed, added and deleted files are still found exactly as before, and unchanged files are still skipped without being read.
  • Because the stored format changed, the first scan after this update rebuilds the site’s baseline from scratch. That round deliberately reports no findings — there is nothing yet to compare against — and the round after it compares normally again.

1.5.7

  • A site that runs out of PHP memory now tells your dashboard so, instead of just failing. When the site’s memory ceiling is reached, WordPress answers every request — including ours — with its generic “critical error” page, so the dashboard could only report that the site returned an error. It now receives the actual reason, along with the site’s PHP version and memory ceiling, so a site that needs more memory can be told apart from one that is genuinely broken.
  • Your dashboard now shows the site’s real PHP memory ceiling, and whether the plugin is allowed to raise it. Some hosts pin that ceiling so firmly that a plugin’s request for more memory is ignored without any error — meaning a backup could believe it had four times the memory it actually had. The backup log now records it when that happens.
  • A scan that cannot read its own baseline no longer reports every file on the site as newly added. On a site short of PHP memory the scan would skip reading the baseline — correctly, to avoid crashing the site — but then carried on comparing against nothing, so a clean site could be reported with thousands of new files and no deleted ones. Such a round is now treated as what it is: a fresh baseline, with no findings claimed either way, and the reason is recorded.
  • A scan of a large site uses noticeably less memory. The list of files to check was held in memory in full, which on a site with tens of thousands of files cost around 10 MB on top of everything else WordPress was already using — enough to push a busy WooCommerce site over its limit. The list is now read a line at a time, so the cost no longer grows with the size of the site. Scan results are unchanged.

1.5.6

  • Updating a plugin no longer switches it on. A plugin you had deliberately left inactive was being activated as soon as it was updated from your dashboard — so an update quietly put code back into service on the site. An update now leaves a plugin exactly as it was: inactive stays inactive, and a plugin that was active is switched back on afterwards, as before. On a WordPress network, a plugin activated for the whole network is switched back on for the whole network rather than for the main site alone.

1.5.5

  • Backups of large sites no longer slow to a crawl as the archive grows. Every time a batch of files was added, the whole archive was written out again from the beginning, so a 6 GB backup was rewriting gigabytes for every few megabytes of progress — and on hosts with a strict time limit it could reach a size where it stopped progressing at all. The archive is now built in volumes, so closing it never costs more than one volume, and the site needs far less free space while a backup runs. Sites small enough not to need volumes produce exactly the same single archive as before.

1.5.4

  • A backup that is running — or one that has stopped moving — can now be stopped from your dashboard. Until now there was no way to call one off: a job that hung stayed listed as running for two hours before the system gave up on it, and no new backup of that site could take its place in the meantime. Stopping one clears the half-written archive it left behind, and the last backup you actually took is left untouched.

1.5.3

  • A backup taken before a WordPress core update no longer copies your media library. A core update never writes anything into your uploads folder, so copying it added nothing a rollback could use — on a large site that meant gigabytes, and hours, for no gain. The backup still carries everything a core update does touch: WordPress itself, your themes and plugins, your translations, and the database. Such an archive is labelled separately and restoring it leaves your media exactly where it is.
  • A backup no longer fails outright because of a single file or folder it cannot look at. Some hosts place links inside wp-content that point outside the area the site is allowed to read; one of those used to stop the whole backup in its first second, so the site ended up with no backup at all. Such an entry is now skipped — and it is never skipped quietly: the backup log records how many entries could not be inspected and names the first of them, because a file that was not looked at is not in the archive.
  • Your dashboard now shows how far a running backup has got, instead of only saying that one is running. The figure comes from the backup’s own position in its work — the database dump, then the files, then closing the archive — so a job that has stopped moving no longer looks the same as one that is making progress.

1.5.2

  • Restoring the same site twice within a day no longer leaves a set of database tables behind for good. A restore sets the tables it replaces aside for 24 hours so it can be undone; a second restore started inside that window used to orphan the first set, and nothing ever removed it again. Those sets are now cleaned up whatever the order of events, and any left behind by earlier versions are removed once, on their own.

1.5.1

  • A site that is one of several in a WordPress network can now be backed up and restored on its own. Until now the whole network shares one database and one content folder, so a backup taken from one site quietly contained every other site in the network too — and restoring it would have rolled all of them back. A backup now covers only the site it was taken from, together with that site’s own uploads folder.
  • Accounts and the network’s own records are kept out of a single site’s restore, so bringing one site back never signs anyone out of the others or changes what the network knows about them.
  • A backup can no longer be restored onto the wrong site in a network. Every site in a network answers on the same address, so the address alone could not tell them apart; a backup now says which site it came from and is refused anywhere else, with the reason.
  • Backups taken in the day after a restore are no longer needlessly doubled in size. The restore keeps a copy of everything it replaced for 24 hours so it can be undone, and those copies were being swept into the next backup — which also made that backup impossible to restore later.

1.5.0

  • WordPress networks (multisite) are now understood instead of being treated as ordinary single sites. Your dashboard can list the sites in a network, connect each of them on its own, and see which plugins are switched on for the whole network rather than for one site.
  • Switching off a plugin that is active for the whole network no longer happens by accident. WordPress treats such a request as “switch it off everywhere”, so asking for it on one site used to take the plugin off every site in the network without saying so. It is now refused with the reason, and only carried out when the whole network is explicitly meant.
  • Updating WordPress core, or deleting a plugin or theme, is now only accepted from the network’s main site: those files are shared by every site in the network, so the change was never really about the one site it was asked from. After a core update the dashboard is told that each site in the network still needs its database step, and can run it.
  • Themes report whether they are enabled for the site in question, and a theme that is not can be enabled for the network from the dashboard instead of silently switching to a theme the site cannot use.

Only releases from 1.5.0 onward are listed here: WordPress.org caps the length of this section. Earlier releases are recorded in the plugin’s own source history.