Backup & Restore Dropbox - Version 1.6.2

Version Description

Please, keep your Dropbox Backup and Restore plugin up-to-date.

Download this release

Release Info

Developer backup-dropbox
Plugin Icon 128x128 Backup & Restore Dropbox
Version 1.6.2
Comparing to
See all releases

Code changes from version 1.6 to 1.6.2

dropbox-backup.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /*
3
  Plugin Name: Dropbox Backup & Restore
4
- Description: Dropbox Backup & Restore Plugin to create Dropbox Full Backup (Files + Database) of your Web Page
5
- Version: 1.6.1
6
  Text Domain: dropbox-backup
7
  Domain Path: /languages/
8
  */
1
  <?php
2
  /*
3
  Plugin Name: Dropbox Backup & Restore
4
+ Description: Backup & Restore Dropbox Plugin to create Dropbox and Local Full Backup (Files + Database) or Restore, Duplicate, Clone or Migrate your Website
5
+ Version: 1.6.2
6
  Text Domain: dropbox-backup
7
  Domain Path: /languages/
8
  */
img/Thumbs.db ADDED
Binary file
main/wpadm-class-wp.php CHANGED
@@ -937,7 +937,7 @@
937
  $dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret']);
938
  $dropbox->setAccessToken2($dropbox_options['access_token'], $dropbox_options['token_type']);
939
  }
940
-
941
  $folder_project = self::getNameProject();
942
  $backups = $dropbox->listing($folder_project);
943
  $n = count($backups['items']);
937
  $dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret']);
938
  $dropbox->setAccessToken2($dropbox_options['access_token'], $dropbox_options['token_type']);
939
  }
940
+
941
  $folder_project = self::getNameProject();
942
  $backups = $dropbox->listing($folder_project);
943
  $n = count($backups['items']);
methods/class-wpadm-method-send-to-dropbox.php CHANGED
@@ -257,7 +257,12 @@ if (!class_exists('WPadm_Method_Send_To_Dropbox')) {
257
  if ( ( isset($res['size']) && isset($res['client_mtime']) ) || ( isset($res['result']['size']) && isset($res['result']['path_display']) ) ) {
258
  $data_command = WPAdm_Running::getCommandResultData('command_dropbox');
259
  if (!in_array($md5, $data_command)) {
260
- WPAdm_Core::log( __('File upload: ' ,'dropbox-backup') . basename( $file ) . __(' size: ' ,'dropbox-backup') . $res['size']);
 
 
 
 
 
261
  $this->saveDataCommand($md5);
262
  WPAdm_Process::setInc('dropbox', 1);
263
  }
257
  if ( ( isset($res['size']) && isset($res['client_mtime']) ) || ( isset($res['result']['size']) && isset($res['result']['path_display']) ) ) {
258
  $data_command = WPAdm_Running::getCommandResultData('command_dropbox');
259
  if (!in_array($md5, $data_command)) {
260
+
261
+ if (isset($res['result']['size'])) {
262
+ WPAdm_Core::log( __('File upload: ' ,'dropbox-backup') . basename( $file ) . __(' size: ' ,'dropbox-backup') . $res['result']['size']);
263
+ } else {
264
+ WPAdm_Core::log( __('File upload: ' ,'dropbox-backup') . basename( $file ) . __(' size: ' ,'dropbox-backup') . $res['size']);
265
+ }
266
  $this->saveDataCommand($md5);
267
  WPAdm_Process::setInc('dropbox', 1);
268
  }
modules/dropbox.class.php CHANGED
@@ -122,7 +122,50 @@ class dropbox
122
  {
123
  if ($this->oauth2) {
124
  $params = array('code' => $request_token); // set code
125
- $response = $this->oauth2_obj->getAccessToken($this->api_auth_token, 'authorization_code', $params);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  $this->oauth2_obj->setAccessToken($response['result']['access_token']);
127
  if ($response['result']['token_type'] == 'bearer') {
128
  $this->oauth2_obj->setAccessTokenType( Client::ACCESS_TOKEN_BEARER );
@@ -141,6 +184,38 @@ class dropbox
141
  }
142
  }
143
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  /**
145
  * Удаление файла
146
  *
@@ -151,12 +226,55 @@ class dropbox
151
  {
152
  if ($this->oauth2) {
153
  $this->oauth2_obj->setPOSTJSON(true);
154
- $res = $this->oauth2_obj->fetch($this->api_url2 . 'files/delete', array('path' => "/" . $file), Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  return $res;
156
  } else {
157
  return $this->doApi("fileops/delete", "POST", array(
158
- "path" => $file,
159
- "root" => "auto"
160
  ));
161
  }
162
  }
@@ -174,8 +292,8 @@ class dropbox
174
  foreach ($files as $file) {
175
  $do = $this->deleteFile($file);
176
  $result[] = array (
177
- "name" => $file,
178
- "result" => $do['error'] ? 0 : 1
179
  );
180
  }
181
 
@@ -196,9 +314,9 @@ class dropbox
196
  return $this->oauth2_obj->fetch($this->api_url2 . 'files/move', array('from_path' => $from, 'to_path' => $to), Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json'));
197
  } else {
198
  return $this->doApi("fileops/move", "POST", array(
199
- "root" => "auto",
200
- "from_path" => $from,
201
- "to_path" => $to
202
  ));
203
  }
204
  }
@@ -210,22 +328,66 @@ class dropbox
210
  $data_send = array( 'path'=> '/' . ltrim( $path, '/' ) );
211
  if ($recursive) {
212
  $data_send['recursive'] = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  }
214
- $dir = $this->oauth2_obj->fetch($this->api_url2 . 'files/list_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8'));
215
  } else {
216
  $dir = $this->doApi("metadata/auto/".ltrim($path, "/"), "GET", array(
217
- "list" => TRUE
218
  ));
219
  }
220
-
221
  if ($dir['error']) {
222
  return $dir;
223
  } elseif (isset($dir['is_dir']) && !$dir['is_dir']) { //this not folder
224
  return array (
225
- "size" => $dir['size'],
226
- "bytes" => $dir['bytes'],
227
- "date" => $dir['modified'],
228
- "name" => $dir['path']
229
  );
230
  }
231
  $all_size = 0;
@@ -254,18 +416,18 @@ class dropbox
254
  }
255
 
256
  $items[] = array (
257
- "type" => $item['is_dir'] ? "dir" : "file",
258
- "date" => $item['modified'],
259
- "name" => basename($item['path']),
260
- "size" => $item['size']
261
  );
262
  }
263
 
264
  $dir_result = array (
265
- "size" => $this->bite2other($all_size),
266
- "date" => $dir['modified'],
267
- "name" => $dir['path'],
268
- "items" => $items
269
  );
270
  } elseif (isset($dir['result']['entries'])) {
271
  foreach ($dir['result']['entries'] as $item) {
@@ -274,19 +436,19 @@ class dropbox
274
  case 'folder' :
275
  if ($is_folder) {
276
  $items[] = array (
277
- "type" => "dir",
278
- "date" => '',
279
- "name" => basename($item['path_display']),
280
- "size" => 0
281
  );
282
  }
283
  break;
284
  case 'file' :
285
  $items[] = array (
286
- "type" => "file",
287
- "date" => $item['client_modified'],
288
- "name" => $item['name'],
289
- "size" => $item['size']
290
  );
291
  $all_size += $item['size'];
292
  break;
@@ -294,10 +456,10 @@ class dropbox
294
  }
295
  }
296
  $dir_result = array (
297
- "size" => $this->bite2other($all_size),
298
- "date" => 0,
299
- "name" => $path,
300
- "items" => $items
301
  );
302
  }
303
  return $dir_result;
@@ -313,13 +475,13 @@ class dropbox
313
  if ($size < $kb) {
314
  return $size.' B';
315
  } else if ($size < $mb) {
316
- return round($size / $kb, 2).' KB';
317
- } else if ($size < $gb) {
318
- return round($size / $mb, 2).' MB';
319
- } else if ($size < $tb) {
320
- return round($size / $gb, 2).' GB';
321
- } else {
322
- return round($size / $tb, 2).' TB';
323
  }
324
  }
325
 
@@ -340,12 +502,75 @@ class dropbox
340
  if (empty($server_path)) {
341
 
342
  if ($this->oauth2) {
343
- $this->oauth2_obj->fetch($this->api_url_content2 . 'files/download', array('path' => $file), Client::HTTP_METHOD_POST, array(
344
- 'socket' => array('file_download' => $server_path),
345
- CURLOPT_BINARYTRANSFER => 1,
346
- CURLOPT_RETURNTRANSFER => 0,
347
- )
348
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
349
  } else {
350
  header("Pragma: public");
351
  header("Expires: 0");
@@ -355,35 +580,35 @@ class dropbox
355
  header('Content-Disposition: attachment; filename="'.$file.'"');
356
  header("Content-Transfer-Encoding: binary");
357
  $this->doApi("files/auto/".ltrim($file, "/"), "GET", array(), array(
358
- 'socket' => array('file_download' => $server_path),
359
- CURLOPT_BINARYTRANSFER => 1,
360
- CURLOPT_RETURNTRANSFER => 0,
361
- ), TRUE);
362
  }
363
  exit;
364
  } else { //Скачиваем на сервер
365
  //Файл недоступен для записи
366
  if (!$fd = fopen($server_path, "wb")) {
367
  return array (
368
- "error" => 1,
369
- "text" => "File '".$server_path."' not writable"
370
  );
371
  }
372
 
373
  if ($this->oauth2) {
374
  $this->oauth2_obj->setPOSTJSON(false);
375
  $res = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/download', array(),
376
- Client::HTTP_METHOD_POST, array('Dropbox-API-Arg' => json_encode( array('path' => '/' . ltrim( $file , '/' ) ) ) ) );
377
  if (isset($res['code']) && $res['code'] != 200) {
378
  if (is_array($res['result'])) {
379
  return array (
380
- "error" => 1,
381
- "text" => $res['result']['error_summary']
382
  );
383
  } else {
384
  return array (
385
- "error" => 1,
386
- "text" => $res['result']
387
  );
388
  }
389
  } else {
@@ -391,11 +616,11 @@ class dropbox
391
  }
392
  } else {
393
  $this->doApi("files/auto/".ltrim($file, "/"), "GET", array(), array(
394
- 'socket' => array('file_download' => $server_path),
395
- CURLOPT_BINARYTRANSFER => 1,
396
- CURLOPT_RETURNTRANSFER => 0,
397
- CURLOPT_FILE => $fd
398
- ), TRUE);
399
  }
400
 
401
  fclose($fd);
@@ -441,8 +666,8 @@ class dropbox
441
  foreach ($files as $file => $dbx) {
442
  $do = $this->uploadFile($file, $dbx);
443
  $result[] = array (
444
- "name" => $file,
445
- "result" => $do['error'] ? 0 : 1
446
  );
447
  }
448
 
@@ -465,8 +690,8 @@ class dropbox
465
 
466
  if (!is_file($file_path)) {
467
  return array(
468
- "error" => 1,
469
- "text" => "File '".$file_path."' not found."
470
  );
471
  }
472
 
@@ -477,22 +702,76 @@ class dropbox
477
  {
478
  if ($this->oauth2) {
479
  try {
480
- $this->oauth2_obj->setPOSTJSON(false);
481
- $result = $this->oauth2_obj->fetch(
482
- $this->api_url_content2 . 'files/upload',
483
- file_get_contents($file_path),
484
- Client::HTTP_METHOD_POST,
485
- array(
486
- 'Dropbox-API-Arg' => json_encode( array( 'path' => '/' . ltrim( $dropbox_path, '/' ) ) ),
487
- 'Content-Type' => 'application/octet-stream',
488
- )
489
- );
490
  } catch(ClientException $e) {
491
- $result['error'] = 1;
492
- $result['text'] = $e->getMessage();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
493
  } catch (ClientInvalidArgumentException $e) {
494
- $result['error'] = 1;
495
- $result['text'] = $e->getMessage();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
496
  }
497
 
498
  if (is_string($result['result']) && $result['code'] != 200) {
@@ -505,16 +784,16 @@ class dropbox
505
  }
506
  } else {
507
  $result = $this->doApi("files_put/auto/".ltrim($dropbox_path, "/"),
508
- "PUT",
509
- compact ("overwrite"),
510
- array(
511
- 'socket' => array('file' => $file_path),
512
- CURLOPT_INFILE => $file,
513
- CURLOPT_INFILESIZE => filesize($file_path),
514
- CURLOPT_BINARYTRANSFER => 1,
515
- CURLOPT_PUT => 1
516
- ),
517
- TRUE);
518
  }
519
 
520
  }
@@ -525,9 +804,9 @@ class dropbox
525
 
526
  if ($this->oauth2) {
527
  $session = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/upload_session/start',
528
- array(), Client::HTTP_METHOD_POST,
529
- array('Dropbox-API-Arg' => json_encode(array('close' => true) ),
530
- 'Content-Type' => 'application/octet-stream' )
531
  );
532
  }
533
 
@@ -539,23 +818,23 @@ class dropbox
539
 
540
  if ($this->oauth2) {
541
  $result = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/upload_session/append',
542
- array(), Client::HTTP_METHOD_POST,
543
- array('Dropbox-API-Arg' => json_encode(array('session_id' => $session['session_id'], 'offset' => $offset) ),
544
- 'Content-Type' => 'application/octet-stream' )
545
  );
546
  } else {
547
  $result = $this->doApi("chunked_upload",
548
- "PUT",
549
- compact("upload_id", "offset"),
550
- array(
551
- 'socket' => array('file' => $file_path, 'dropbox_path' => $dropbox_path),
552
-
553
- CURLOPT_INFILE => $file,
554
- CURLOPT_INFILESIZE => $chunk,
555
- CURLOPT_BINARYTRANSFER => 1,
556
- CURLOPT_PUT => 1
557
- ),
558
- TRUE);
559
  }
560
  fseek($file, $offset);
561
  if($offset >= $fsize) {
@@ -574,19 +853,19 @@ class dropbox
574
  }
575
  if ($this->oauth2) {
576
  $result = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/upload_session/finish',
577
- array(), Client::HTTP_METHOD_POST,
578
- array('Dropbox-API-Arg' => json_encode(array('cursor' => array('session_id' => $session['session_id'], 'offset' => $offset ),
579
- 'commit' => array('path' => '/' . ltrim( $dropbox_path, '/' ) )
580
- )
581
- ),
582
- 'Content-Type' => 'application/octet-stream' )
583
  );
584
  } else {
585
  $result = $this->doApi("commit_chunked_upload/auto/".ltrim($dropbox_path, "/"),
586
- "POST",
587
- compact("upload_id", "overwrite"),
588
- array(),
589
- TRUE);
590
  }
591
  }
592
 
@@ -606,12 +885,54 @@ class dropbox
606
  if ( $this->oauth2 ) {
607
  $this->oauth2_obj->setPOSTJSON(true);
608
  $data_send = array( 'path' => "/" . ltrim($path, '/') );
609
- $dir = $this->oauth2_obj->fetch($this->api_url2 . 'files/create_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
610
  return $dir;
611
  } else {
612
  return $this->doApi("fileops/create_folder", "POST", array(
613
- "root" => "auto",
614
- "path" => $path
615
  ));
616
  }
617
  }
@@ -682,9 +1003,9 @@ class dropbox
682
  }
683
 
684
  $signed = $oauth->sign(array(
685
- 'action' => $method,
686
- 'path' => $path
687
- )
688
  );
689
 
690
  if (function_exists('curl_init')) {
@@ -693,10 +1014,10 @@ class dropbox
693
  }
694
  $ch = curl_init($url);
695
  $opts += array(
696
- CURLOPT_RETURNTRANSFER => 1,
697
- CURLOPT_HEADER => 0,
698
- CURLOPT_SSL_VERIFYPEER => 0,
699
- CURLOPT_SSL_VERIFYHOST => 0,
700
  );
701
 
702
  if ($method == "POST") {
122
  {
123
  if ($this->oauth2) {
124
  $params = array('code' => $request_token); // set code
125
+ try {
126
+ //
127
+ $response = $this->oauth2_obj->getAccessToken($this->api_auth_token, 'authorization_code', $params);
128
+ } catch ( ClientException $e ) {
129
+ $new_url = $this->getIp4ByHost($this->api_auth_token);
130
+ if ($new_url) {
131
+ try {
132
+ $url = parse_url($this->api_auth_token);
133
+ $response = $this->oauth2_obj->getAccessToken($new_url, 'authorization_code', $params, array('Host' => $url['host']));
134
+ } catch ( ClientException $e ) {
135
+ $result['error'] = 1;
136
+ $result['text'] = $e->getMessage();
137
+ return $result;
138
+ } catch ( ClientInvalidArgumentException $e) {
139
+ $result['error'] = 1;
140
+ $result['text'] = $e->getMessage();
141
+ return $result;
142
+ }
143
+ } else {
144
+ $result['error'] = 1;
145
+ $result['text'] = 'Auth is invalid';
146
+ return $result;
147
+ }
148
+ } catch ( ClientInvalidArgumentException $e) {
149
+ $new_url = $this->getIp4ByHost($this->api_auth_token);
150
+ if ($new_url) {
151
+ try {
152
+ $url = parse_url($this->api_auth_token);
153
+ $response = $this->oauth2_obj->getAccessToken($new_url, 'authorization_code', $params, array('Host' => $url['host']));
154
+ } catch ( ClientException $e ) {
155
+ $result['error'] = 1;
156
+ $result['text'] = $e->getMessage();
157
+ return $result;
158
+ } catch ( ClientInvalidArgumentException $e) {
159
+ $result['error'] = 1;
160
+ $result['text'] = $e->getMessage();
161
+ return $result;
162
+ }
163
+ } else {
164
+ $result['error'] = 1;
165
+ $result['text'] = 'Auth is invalid';
166
+ return $result;
167
+ }
168
+ }
169
  $this->oauth2_obj->setAccessToken($response['result']['access_token']);
170
  if ($response['result']['token_type'] == 'bearer') {
171
  $this->oauth2_obj->setAccessTokenType( Client::ACCESS_TOKEN_BEARER );
184
  }
185
  }
186
 
187
+ public function getIp4ByHost($url)
188
+ {
189
+ $host = '';
190
+ if (is_array($url) && isset($url['host'])) {
191
+ $host = $url['host'];
192
+ } elseif (is_string($url)) {
193
+ $url = parse_url($url);
194
+ $host = $url['host'];
195
+ }
196
+ $ips = false;
197
+ if (!empty($host) && function_exists('gethostbynamel')) {
198
+ $ips = gethostbynamel($host);
199
+ $url['host'] = array_pop($ips);
200
+ $ips = $this->unparse_url($url);
201
+ }
202
+ return $ips;
203
+ }
204
+
205
+ public function unparse_url($parsed_url)
206
+ {
207
+ $scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : '';
208
+ $host = isset($parsed_url['host']) ? $parsed_url['host'] : '';
209
+ $port = isset($parsed_url['port']) ? ':' . $parsed_url['port'] : '';
210
+ $user = isset($parsed_url['user']) ? $parsed_url['user'] : '';
211
+ $pass = isset($parsed_url['pass']) ? ':' . $parsed_url['pass'] : '';
212
+ $pass = ($user || $pass) ? "$pass@" : '';
213
+ $path = isset($parsed_url['path']) ? $parsed_url['path'] : '';
214
+ $query = isset($parsed_url['query']) ? '?' . $parsed_url['query'] : '';
215
+ $fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : '';
216
+ return "$scheme$user$pass$host$port$path$query$fragment";
217
+ }
218
+
219
  /**
220
  * Удаление файла
221
  *
226
  {
227
  if ($this->oauth2) {
228
  $this->oauth2_obj->setPOSTJSON(true);
229
+
230
+ try {
231
+ $res = $this->oauth2_obj->fetch($this->api_url2 . 'files/delete', array('path' => "/" . $file), Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8'));
232
+ } catch (ClientInvalidArgumentException $e ) {
233
+ $new_url = $this->getIp4ByHost($this->api_url2);
234
+ if ($new_url) {
235
+ try {
236
+ $url = parse_url($this->api_url2);
237
+ $dir = $this->oauth2_obj->fetch( $new_url . 'files/delete', array('path' => "/" . $file), Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8', 'Host' => $url['host']) );
238
+ } catch ( ClientException $e ) {
239
+ $result['error'] = 1;
240
+ $result['text'] = $e->getMessage();
241
+ return $result;
242
+ } catch ( ClientInvalidArgumentException $e) {
243
+ $result['error'] = 1;
244
+ $result['text'] = $e->getMessage();
245
+ return $result;
246
+ }
247
+ } else {
248
+ $result['error'] = 1;
249
+ $result['text'] = 'Create dir is invalid';
250
+ return $result;
251
+ }
252
+ } catch (ClientException $e) {
253
+ $new_url = $this->getIp4ByHost($this->api_url2);
254
+ if ($new_url) {
255
+ try {
256
+ $url = parse_url($this->api_url2);
257
+ $dir = $this->oauth2_obj->fetch( $new_url . 'files/delete', array('path' => "/" . $file), Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8', 'Host' => $url['host']) );
258
+ } catch ( ClientException $e ) {
259
+ $result['error'] = 1;
260
+ $result['text'] = $e->getMessage();
261
+ return $result;
262
+ } catch ( ClientInvalidArgumentException $e) {
263
+ $result['error'] = 1;
264
+ $result['text'] = $e->getMessage();
265
+ return $result;
266
+ }
267
+ } else {
268
+ $result['error'] = 1;
269
+ $result['text'] = 'Create dir is invalid';
270
+ return $result;
271
+ }
272
+ }
273
  return $res;
274
  } else {
275
  return $this->doApi("fileops/delete", "POST", array(
276
+ "path" => $file,
277
+ "root" => "auto"
278
  ));
279
  }
280
  }
292
  foreach ($files as $file) {
293
  $do = $this->deleteFile($file);
294
  $result[] = array (
295
+ "name" => $file,
296
+ "result" => $do['error'] ? 0 : 1
297
  );
298
  }
299
 
314
  return $this->oauth2_obj->fetch($this->api_url2 . 'files/move', array('from_path' => $from, 'to_path' => $to), Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json'));
315
  } else {
316
  return $this->doApi("fileops/move", "POST", array(
317
+ "root" => "auto",
318
+ "from_path" => $from,
319
+ "to_path" => $to
320
  ));
321
  }
322
  }
328
  $data_send = array( 'path'=> '/' . ltrim( $path, '/' ) );
329
  if ($recursive) {
330
  $data_send['recursive'] = true;
331
+ }
332
+
333
+ try {
334
+ $dir = $this->oauth2_obj->fetch($this->api_url2 . 'files/list_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8'));
335
+ } catch (ClientInvalidArgumentException $e ) {
336
+ $new_url = $this->getIp4ByHost($this->api_url2);
337
+ if ($new_url) {
338
+ try {
339
+ $url = parse_url($this->api_url2);
340
+ $dir = $this->oauth2_obj->fetch( $new_url . 'files/list_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8', 'Host' => $url['host']) );
341
+ } catch ( ClientException $e ) {
342
+ $result['error'] = 1;
343
+ $result['text'] = $e->getMessage();
344
+ return $result;
345
+ } catch ( ClientInvalidArgumentException $e) {
346
+ $result['error'] = 1;
347
+ $result['text'] = $e->getMessage();
348
+ return $result;
349
+ }
350
+ } else {
351
+ $result['error'] = 1;
352
+ $result['text'] = 'Files list is invalid';
353
+ return $result;
354
+ }
355
+ } catch (ClientException $e) {
356
+ $new_url = $this->getIp4ByHost($this->api_url2);
357
+ if ($new_url) {
358
+ try {
359
+ $url = parse_url($this->api_url2);
360
+ $dir = $this->oauth2_obj->fetch( $new_url . 'files/list_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8', 'Host' => $url['host']) );
361
+ } catch ( ClientException $e ) {
362
+ $result['error'] = 1;
363
+ $result['text'] = $e->getMessage();
364
+ return $result;
365
+ } catch ( ClientInvalidArgumentException $e) {
366
+ $result['error'] = 1;
367
+ $result['text'] = $e->getMessage();
368
+ return $result;
369
+ }
370
+ } else {
371
+ $result['error'] = 1;
372
+ $result['text'] = 'Files list is invalid';
373
+ return $result;
374
+ }
375
  }
376
+
377
  } else {
378
  $dir = $this->doApi("metadata/auto/".ltrim($path, "/"), "GET", array(
379
+ "list" => TRUE
380
  ));
381
  }
382
+
383
  if ($dir['error']) {
384
  return $dir;
385
  } elseif (isset($dir['is_dir']) && !$dir['is_dir']) { //this not folder
386
  return array (
387
+ "size" => $dir['size'],
388
+ "bytes" => $dir['bytes'],
389
+ "date" => $dir['modified'],
390
+ "name" => $dir['path']
391
  );
392
  }
393
  $all_size = 0;
416
  }
417
 
418
  $items[] = array (
419
+ "type" => $item['is_dir'] ? "dir" : "file",
420
+ "date" => $item['modified'],
421
+ "name" => basename($item['path']),
422
+ "size" => $item['size']
423
  );
424
  }
425
 
426
  $dir_result = array (
427
+ "size" => $this->bite2other($all_size),
428
+ "date" => $dir['modified'],
429
+ "name" => $dir['path'],
430
+ "items" => $items
431
  );
432
  } elseif (isset($dir['result']['entries'])) {
433
  foreach ($dir['result']['entries'] as $item) {
436
  case 'folder' :
437
  if ($is_folder) {
438
  $items[] = array (
439
+ "type" => "dir",
440
+ "date" => '',
441
+ "name" => basename($item['path_display']),
442
+ "size" => 0
443
  );
444
  }
445
  break;
446
  case 'file' :
447
  $items[] = array (
448
+ "type" => "file",
449
+ "date" => $item['client_modified'],
450
+ "name" => $item['name'],
451
+ "size" => $item['size']
452
  );
453
  $all_size += $item['size'];
454
  break;
456
  }
457
  }
458
  $dir_result = array (
459
+ "size" => $this->bite2other($all_size),
460
+ "date" => 0,
461
+ "name" => $path,
462
+ "items" => $items
463
  );
464
  }
465
  return $dir_result;
475
  if ($size < $kb) {
476
  return $size.' B';
477
  } else if ($size < $mb) {
478
+ return round($size / $kb, 2).' KB';
479
+ } else if ($size < $gb) {
480
+ return round($size / $mb, 2).' MB';
481
+ } else if ($size < $tb) {
482
+ return round($size / $gb, 2).' GB';
483
+ } else {
484
+ return round($size / $tb, 2).' TB';
485
  }
486
  }
487
 
502
  if (empty($server_path)) {
503
 
504
  if ($this->oauth2) {
505
+ try {
506
+ $this->oauth2_obj->fetch($this->api_url_content2 . 'files/download',
507
+ array('path' => $file), Client::HTTP_METHOD_POST,
508
+ array(
509
+ 'socket' => array('file_download' => $server_path),
510
+ CURLOPT_BINARYTRANSFER => 1,
511
+ CURLOPT_RETURNTRANSFER => 0,
512
+ )
513
+ );
514
+ } catch(ClientException $e) {
515
+
516
+ $new_url = $this->getIp4ByHost($this->api_url_content2);
517
+ if ($new_url) {
518
+ try {
519
+ $url = parse_url($this->api_url_content2);
520
+ $this->oauth2_obj->fetch($new_url . '/files/download',
521
+ array('path' => $file), Client::HTTP_METHOD_POST,
522
+ array(
523
+ 'socket' => array('file_download' => $server_path),
524
+ CURLOPT_BINARYTRANSFER => 1,
525
+ CURLOPT_RETURNTRANSFER => 0,
526
+ 'Host' => $url['host'],
527
+ )
528
+ );
529
+ } catch ( ClientException $e ) {
530
+ $result['error'] = 1;
531
+ $result['text'] = $e->getMessage();
532
+ return $result;
533
+ } catch ( ClientInvalidArgumentException $e) {
534
+ $result['error'] = 1;
535
+ $result['text'] = $e->getMessage();
536
+ return $result;
537
+ }
538
+ } else {
539
+ $result['error'] = 1;
540
+ $result['text'] = 'Create dir is invalid';
541
+ return $result;
542
+ }
543
+ } catch (ClientInvalidArgumentException $e) {
544
+ $new_url = $this->getIp4ByHost($this->api_url_content2);
545
+ if ($new_url) {
546
+ try {
547
+ $url = parse_url($this->api_url_content2);
548
+ $this->oauth2_obj->fetch($new_url . 'files/download',
549
+ array('path' => $file), Client::HTTP_METHOD_POST,
550
+ array(
551
+ 'socket' => array('file_download' => $server_path),
552
+ CURLOPT_BINARYTRANSFER => 1,
553
+ CURLOPT_RETURNTRANSFER => 0,
554
+ 'Host' => $url['host'],
555
+ )
556
+ );
557
+ } catch ( ClientException $e ) {
558
+ $result['error'] = 1;
559
+ $result['text'] = $e->getMessage();
560
+ return $result;
561
+ } catch ( ClientInvalidArgumentException $e) {
562
+ $result['error'] = 1;
563
+ $result['text'] = $e->getMessage();
564
+ return $result;
565
+ }
566
+ } else {
567
+ $result['error'] = 1;
568
+ $result['text'] = __( 'Create dir is invalid', 'dropbox-backup' );
569
+ return $result;
570
+ }
571
+ }
572
+
573
+
574
  } else {
575
  header("Pragma: public");
576
  header("Expires: 0");
580
  header('Content-Disposition: attachment; filename="'.$file.'"');
581
  header("Content-Transfer-Encoding: binary");
582
  $this->doApi("files/auto/".ltrim($file, "/"), "GET", array(), array(
583
+ 'socket' => array('file_download' => $server_path),
584
+ CURLOPT_BINARYTRANSFER => 1,
585
+ CURLOPT_RETURNTRANSFER => 0,
586
+ ), TRUE);
587
  }
588
  exit;
589
  } else { //Скачиваем на сервер
590
  //Файл недоступен для записи
591
  if (!$fd = fopen($server_path, "wb")) {
592
  return array (
593
+ "error" => 1,
594
+ "text" => "File '".$server_path."' not writable"
595
  );
596
  }
597
 
598
  if ($this->oauth2) {
599
  $this->oauth2_obj->setPOSTJSON(false);
600
  $res = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/download', array(),
601
+ Client::HTTP_METHOD_POST, array('Dropbox-API-Arg' => json_encode( array('path' => '/' . ltrim( $file , '/' ) ) ) ) );
602
  if (isset($res['code']) && $res['code'] != 200) {
603
  if (is_array($res['result'])) {
604
  return array (
605
+ "error" => 1,
606
+ "text" => $res['result']['error_summary']
607
  );
608
  } else {
609
  return array (
610
+ "error" => 1,
611
+ "text" => $res['result']
612
  );
613
  }
614
  } else {
616
  }
617
  } else {
618
  $this->doApi("files/auto/".ltrim($file, "/"), "GET", array(), array(
619
+ 'socket' => array('file_download' => $server_path),
620
+ CURLOPT_BINARYTRANSFER => 1,
621
+ CURLOPT_RETURNTRANSFER => 0,
622
+ CURLOPT_FILE => $fd
623
+ ), TRUE);
624
  }
625
 
626
  fclose($fd);
666
  foreach ($files as $file => $dbx) {
667
  $do = $this->uploadFile($file, $dbx);
668
  $result[] = array (
669
+ "name" => $file,
670
+ "result" => $do['error'] ? 0 : 1
671
  );
672
  }
673
 
690
 
691
  if (!is_file($file_path)) {
692
  return array(
693
+ "error" => 1,
694
+ "text" => "File '".$file_path."' not found."
695
  );
696
  }
697
 
702
  {
703
  if ($this->oauth2) {
704
  try {
705
+ $this->oauth2_obj->setPOSTJSON(false);
706
+ $result = $this->oauth2_obj->fetch(
707
+ $this->api_url_content2 . 'files/upload',
708
+ file_get_contents($file_path),
709
+ Client::HTTP_METHOD_POST,
710
+ array(
711
+ 'Dropbox-API-Arg' => json_encode( array( 'path' => '/' . ltrim( $dropbox_path, '/' ) ) ),
712
+ 'Content-Type' => 'application/octet-stream',
713
+ )
714
+ );
715
  } catch(ClientException $e) {
716
+
717
+ $new_url = $this->getIp4ByHost($this->api_url_content2);
718
+ if ($new_url) {
719
+ try {
720
+ $url = parse_url($this->api_url_content2);
721
+ WPAdm_Core::log( $new_url . 'files/upload' );
722
+ $result = $this->oauth2_obj->fetch(
723
+ $new_url . 'files/upload',
724
+ file_get_contents($file_path),
725
+ Client::HTTP_METHOD_POST,
726
+ array(
727
+ 'Dropbox-API-Arg' => json_encode( array( 'path' => '/' . ltrim( $dropbox_path, '/' ) ) ),
728
+ 'Content-Type' => 'application/octet-stream',
729
+ 'Host' => $url['host']
730
+ )
731
+ );
732
+ } catch ( ClientException $e ) {
733
+ $result['error'] = 1;
734
+ $result['text'] = $e->getMessage();
735
+ return $result;
736
+ } catch ( ClientInvalidArgumentException $e) {
737
+ $result['error'] = 1;
738
+ $result['text'] = $e->getMessage();
739
+ return $result;
740
+ }
741
+ } else {
742
+ $result['error'] = 1;
743
+ $result['text'] = 'Create dir is invalid';
744
+ return $result;
745
+ }
746
  } catch (ClientInvalidArgumentException $e) {
747
+ $new_url = $this->getIp4ByHost($this->api_url_content2);
748
+ if ($new_url) {
749
+ try {
750
+ $url = parse_url($this->api_url_content2);
751
+ $result = $this->oauth2_obj->fetch(
752
+ $new_url . 'files/upload',
753
+ file_get_contents($file_path),
754
+ Client::HTTP_METHOD_POST,
755
+ array(
756
+ 'Dropbox-API-Arg' => json_encode( array( 'path' => '/' . ltrim( $dropbox_path, '/' ) ) ),
757
+ 'Content-Type' => 'application/octet-stream',
758
+ 'Host' => $url['host']
759
+ )
760
+ );
761
+ } catch ( ClientException $e ) {
762
+ $result['error'] = 1;
763
+ $result['text'] = $e->getMessage();
764
+ return $result;
765
+ } catch ( ClientInvalidArgumentException $e) {
766
+ $result['error'] = 1;
767
+ $result['text'] = $e->getMessage();
768
+ return $result;
769
+ }
770
+ } else {
771
+ $result['error'] = 1;
772
+ $result['text'] = __( 'Create dir is invalid', 'dropbox-backup' );
773
+ return $result;
774
+ }
775
  }
776
 
777
  if (is_string($result['result']) && $result['code'] != 200) {
784
  }
785
  } else {
786
  $result = $this->doApi("files_put/auto/".ltrim($dropbox_path, "/"),
787
+ "PUT",
788
+ compact ("overwrite"),
789
+ array(
790
+ 'socket' => array('file' => $file_path),
791
+ CURLOPT_INFILE => $file,
792
+ CURLOPT_INFILESIZE => filesize($file_path),
793
+ CURLOPT_BINARYTRANSFER => 1,
794
+ CURLOPT_PUT => 1
795
+ ),
796
+ TRUE);
797
  }
798
 
799
  }
804
 
805
  if ($this->oauth2) {
806
  $session = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/upload_session/start',
807
+ array(), Client::HTTP_METHOD_POST,
808
+ array('Dropbox-API-Arg' => json_encode(array('close' => true) ),
809
+ 'Content-Type' => 'application/octet-stream' )
810
  );
811
  }
812
 
818
 
819
  if ($this->oauth2) {
820
  $result = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/upload_session/append',
821
+ array(), Client::HTTP_METHOD_POST,
822
+ array('Dropbox-API-Arg' => json_encode(array('session_id' => $session['session_id'], 'offset' => $offset) ),
823
+ 'Content-Type' => 'application/octet-stream' )
824
  );
825
  } else {
826
  $result = $this->doApi("chunked_upload",
827
+ "PUT",
828
+ compact("upload_id", "offset"),
829
+ array(
830
+ 'socket' => array('file' => $file_path, 'dropbox_path' => $dropbox_path),
831
+
832
+ CURLOPT_INFILE => $file,
833
+ CURLOPT_INFILESIZE => $chunk,
834
+ CURLOPT_BINARYTRANSFER => 1,
835
+ CURLOPT_PUT => 1
836
+ ),
837
+ TRUE);
838
  }
839
  fseek($file, $offset);
840
  if($offset >= $fsize) {
853
  }
854
  if ($this->oauth2) {
855
  $result = $this->oauth2_obj->fetch($this->api_url_content2 . 'files/upload_session/finish',
856
+ array(), Client::HTTP_METHOD_POST,
857
+ array('Dropbox-API-Arg' => json_encode(array('cursor' => array('session_id' => $session['session_id'], 'offset' => $offset ),
858
+ 'commit' => array('path' => '/' . ltrim( $dropbox_path, '/' ) )
859
+ )
860
+ ),
861
+ 'Content-Type' => 'application/octet-stream' )
862
  );
863
  } else {
864
  $result = $this->doApi("commit_chunked_upload/auto/".ltrim($dropbox_path, "/"),
865
+ "POST",
866
+ compact("upload_id", "overwrite"),
867
+ array(),
868
+ TRUE);
869
  }
870
  }
871
 
885
  if ( $this->oauth2 ) {
886
  $this->oauth2_obj->setPOSTJSON(true);
887
  $data_send = array( 'path' => "/" . ltrim($path, '/') );
888
+ try {
889
+ $dir = $this->oauth2_obj->fetch($this->api_url2 . 'files/create_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8'));
890
+ } catch (ClientInvalidArgumentException $e ) {
891
+ $new_url = $this->getIp4ByHost($this->api_url2);
892
+ if ($new_url) {
893
+ try {
894
+ $url = parse_url($this->api_url2);
895
+ $dir = $this->oauth2_obj->fetch( $new_url . '/files/create_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8', 'Host' => $url['host']) );
896
+ } catch ( ClientException $e ) {
897
+ $result['error'] = 1;
898
+ $result['text'] = $e->getMessage();
899
+ return $result;
900
+ } catch ( ClientInvalidArgumentException $e) {
901
+ $result['error'] = 1;
902
+ $result['text'] = $e->getMessage();
903
+ return $result;
904
+ }
905
+ } else {
906
+ $result['error'] = 1;
907
+ $result['text'] = 'Create dir is invalid';
908
+ return $result;
909
+ }
910
+ } catch (ClientException $e) {
911
+ $new_url = $this->getIp4ByHost($this->api_url2);
912
+ if ($new_url) {
913
+ try {
914
+ $url = parse_url($this->api_url2);
915
+ $dir = $this->oauth2_obj->fetch( $this->api_url2 . '/files/create_folder', $data_send, Client::HTTP_METHOD_POST, array('Content-Type' => 'application/json; charset=utf-8', 'Host' => $url['host']) );
916
+ } catch ( ClientException $e ) {
917
+ $result['error'] = 1;
918
+ $result['text'] = $e->getMessage();
919
+ return $result;
920
+ } catch ( ClientInvalidArgumentException $e) {
921
+ $result['error'] = 1;
922
+ $result['text'] = $e->getMessage();
923
+ return $result;
924
+ }
925
+ } else {
926
+ $result['error'] = 1;
927
+ $result['text'] = 'Create dir is invalid';
928
+ return $result;
929
+ }
930
+ }
931
  return $dir;
932
  } else {
933
  return $this->doApi("fileops/create_folder", "POST", array(
934
+ "root" => "auto",
935
+ "path" => $path
936
  ));
937
  }
938
  }
1003
  }
1004
 
1005
  $signed = $oauth->sign(array(
1006
+ 'action' => $method,
1007
+ 'path' => $path
1008
+ )
1009
  );
1010
 
1011
  if (function_exists('curl_init')) {
1014
  }
1015
  $ch = curl_init($url);
1016
  $opts += array(
1017
+ CURLOPT_RETURNTRANSFER => 1,
1018
+ CURLOPT_HEADER => 0,
1019
+ CURLOPT_SSL_VERIFYPEER => 0,
1020
+ CURLOPT_SSL_VERIFYHOST => 0,
1021
  );
1022
 
1023
  if ($method == "POST") {
readme.txt CHANGED
@@ -1,115 +1,116 @@
1
  === Backup & Restore Dropbox ===
2
  Plugin Name: Backup & Restore Dropbox
3
- Version: 1.6.1
4
  Donate link: http://www.wpadm.com/donate
5
  URI: http://www.wpadm.com/dropbox-backup
6
  Tags: dropbox, backup, dropbox backup, migrate, restore, database, full backup, manage, sicherung, database backup, file backup, page backup, page, web, web backup, web page, synchronize, clone, duplicate, move, web page backup, site, site backup, back up, cloud, Cloud Files, cloud backup, db backup, dump, german, multisite, German, schedule, storage, time, upload, data bank, zip, archive, backups, file, db, recover, recovery, restoration, wp backup, wordpress backup, wordpress backup to dropbox, plugin wordpress backup, wpadm, wpadm.com, website, website backup, website back up, wp backup, wordpress backup, scheduled backup, backup scheduler, tool, backup tool
7
  Requires at least: 3.9
8
- Tested up to: 4.9
9
  Stable tag: trunk
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
  Author: WPAdm.com
13
- Contributors: WPAdm.com
14
 
15
- Backup & Restore Dropbox Plugin to create Dropbox Full Backup (Files + Database) or Restore, Duplicate, Clone or Migrate of your Website
16
 
17
  == Description ==
18
 
19
- Supports WordPress Backup and Restore to/from Local Storage or upload Backups to Dropbox.
20
 
21
- If you do not understand something or you have a questions, <br />
22
  please, make a [support request](http://www.wpadm.com/support/) first!
23
 
24
- **Features of website backup & website restore plugin:**
25
-
26
- * Unlimited dropbox backups;
27
- * Unlimited dropbox restores;
28
- * Unlimited local backups;
29
- * Unlimited local restores;
30
- * Local Backup: create the Full Backup of Web Page (Files + Database) and store this at Local Storage of the Site;
31
- * Dropbox Backup: create the Full Backup (Files + Database) of Web Page at Local Storage and upload this to Dropbox;
32
- * Local Restore: restoration from Local backup at your website (web hosting);
33
- * Dropbox Restore: restoration from Dropbox backup;
34
- * Full control of included and excluded folders and files (can be found in "Settings");
35
- * You can create limited backup with database only (without files and/or folders). Just check "Settings" of backup plugin;
36
- * With "dropbox backup & restore" plugin you can backup and restore WooCommerce shop inkl. database with products;
37
  * Notification logging on screen and in file;
38
- * Use your own App key and App secret;
39
  * Supports backup on "Low Memory" Hosting or Server;
40
- * Possibility to make Dropbox backup and restore interface hidden with all listed backups (only Admins can access the backup plugin page);
41
- * Automatic database optimization before WordPress backup (can be set in plugin settings);
42
- * Database or Table repair functionality before backup;
43
- * Administrate ALL of Backups for ALL of your sites from one place – WPAdm-account (Account is FREE);
 
 
 
 
 
 
 
 
 
44
 
45
  **Account creation is optional, but we suggest to do this.<br /> Why create [www.wpadm.com](http://www.wpadm.com/) account?**<br />
46
- Your website can be down, not available or admin back-end can be without response. There are many reasons for this, for example:<br />
47
 
48
  * Some plugin or some theme (template) has an error;
49
- * Plugin or theme (template) was installed incorrectly (wrong installation of WordPress plugins and WordPress themes);
50
- * Vulnerabilities of user files, WordPress files, WordPress plugin- and theme- files;
51
- * Websites Hacking (web page hacks), Websites Trojans etc.;
52
  * Server or hosting misconfiguration. For example: files and folder rights, like "owner" rights, "read", "write" and "execution" rights;
53
- * Web Server or web hosting misconfiguration, like wrong Apache or nginx configuration, mod_rewrite rules (rewriting rules) configuration;<br />
54
- etc.
55
 
56
- You can create your WPAdm account also for **central Backup administration** at http://www.wpadm.com <br />
57
- WPAdm account is FULLY FREE.<br /><br />
58
 
59
  **PLEASE, READ CAREFULLY!** <br />
60
- **If you like our plugin - please, make your own [review](https://wordpress.org/support/view/plugin-reviews/dropbox-backup). It will help us to develop and update website backup and website restore plugin for you!**<br />
61
- **This is one of few WordPress backup plugins, who does a fully free support (plugin support!) for all of our users.<br />
62
- Dropbox backup and restore plugin ask for FTP if your website (not this plugin!) have some troubles, in order that we could make support for you.<br />
63
- Providing of these FTP DATA IS NOT OBLIGATORY, but if you do this, - our support staff will check your backup process and you will receive a feedback about results.<br />
64
  It can take a while and some patience from you.<br /><br />
65
- We are not responsible for any 5хх-errors! Such errors caused in most cases (99,9%) by your server/hosting.<br />
66
- For a little fee, we can help you solve problems of your server or hosting (to do this, we will need your FTP website access).<br />
67
  Thank you for your understanding!**
68
 
69
 
70
  **ALL INFORMATION, PROVIDED BY OUR USERS IS IN SAFETY AND USED FOR SUPPORT ONLY!**
71
 
72
- If you need help with the plugin or you want to report a bug please refer to http://www.wpadm.com/support/
73
  <br />
74
 
75
- If your website has basic authorisation (basic_auth), it can call some exclusions during backup executing. We are working on this issue.
76
 
77
 
78
  == Installation ==
79
 
80
  ### Perform a new installation using FTP
81
  1. Upload the plugin folder `Dropbox Backup` to the `/wp-content/plugins/` directory of your WordPress installation.
82
- 2. Activate the plugin through the `Plugins` menu in WordPress
83
 
84
 
85
- ### Perform a new manual installation of Dropbox backup and restore plugin
86
 
87
- After downloading the ZIP file of the Dropbox back up and restoration plugin,
88
 
89
- 1. Log in to your administrator panel;<br />
90
- 2. Go to Plugins Add > New > Click the button "Upload";<br />
91
- 3. Click on "Choose file" (or "Browse", to browse the plugin zip-archive) and select the downloaded zip file of the Dropbox back up and restoration plugin;<br />
92
  *For Mac Users*<br />
93
- *Go to your Downloads folder and locate the folder with the name "dropbox backup". Right-click on this folder and select Compress. Now you have a newly created .zip file which can be installed as described here.*<br />
94
- 4. Click on "Install Now" button. WordPress Dropbox back up and restore pugin will be installed;<br />
95
- 5. Click on link "Activate Plugin" to activate the "Dropbox backup and restore" plugin;<br />
96
  <br />
97
- *If the installation does not succeed, please contact http://www.wpadm.com support staff or refer to your system administrator.*<br />
98
 
99
- Dropbox Backup Plugin have a settings section on WordPress plugin page.
100
 
101
- ### DO NOT FORGET to connect your dropbox backup plugin to Dropbox before creating your first Dropbox backup ###
102
 
103
- 1. Go to Admin dashboard of your website;<br />
104
- 2. Open "Settings" of website backup plugin;<br />
105
- 3. Click "Connect to Dropbox" button;<br />
106
- 3a. Sure, if you want, you can use your own App Key and App Secret. More Information about this you can read on [FAQ](https://wordpress.org/plugins/dropbox-backup/faq/) page or in the Settings block of your installed plugin, near "Connect to Dropbox" button;<br />
107
 
108
- Watch this video about:
109
  <ul>
110
- <li>How to install Dropbox backup and restore plugin on WordPress</li>
111
- <li>How to connect Dropbox backup and restore plugin to Dropbox</li>
112
- <li>How to perform a backup using Dropbox backup and restore plugin for Wordpress</li>
113
  </ul>
114
 
115
  https://www.youtube.com/watch?v=Hdzoh0BFpmg
@@ -121,85 +122,85 @@ If you need help with the plugin or you want to report a bug, so please, also re
121
  == Other ==
122
 
123
 
124
- = Very easy and secure Dropbox Backup and Restoration (website / web page restore from backup) =
125
  Usefull additional functions can be found at www.wpadm.com in the User profile.
126
- DropBox Backup is a new plugin, so we tried to provide a bug-free plugin/widget. We are maintain this project.
127
 
128
  Information about privacy:<br />
129
- In case the user has been registered at WPAdm service AND has confirmed their registration,
130
  our plugin will get the minimum requirements of php and mysql configuration, version and language of wordpress.
131
- This data will be send to WPAdm service, to get the plugin work correctly, to extend supported configurations of user sites with wpadm-extensions and support.<br />
132
  WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
133
 
134
- = Website Backup on Dropbox =
 
135
 
136
- For security of your sites, webs hops or online portals is backup a must. With backup from www.webpage-backup.com you can secure backup and restore all your projects independent if it website or woocommerce shop as to make restoring from your backups. From security reasons it is impotent to schedule your backups, thereby your information or comments from your databases no go lost. Of course the more important for the security are (frequently) backups for woocommerce shops or multisite backups and there one click to restores from your backup drive. The woocommerce backups need more storage in cloud due to large files.<br />
137
- But in most cases it isn't needed to make full backup. With help of our service webpage-backup.com you can select the folder or special databases that you must backup or to backup single website inside your hosting. But for our service it does not matter if the files are large or small, in case of the restoration it is the same. As well as for your local backup. Local backup are done on your hosting. If your hosting have enough space for backup it is ok, but it is not recommended. In most cases for storage your full backup on space of your hosting it is not enough space otherwise it is not safe enough, especially if something happen with your hosting or after some time you want to change your hosting provider. Additional if your make automate schedule backups or data base backups ever after some time the space on your backup drive will be full. For this reason the best is to use the Dropbox storage. Dropbox storage is scalable. Of course the scheduler dropbox backup it is not a must. You can make it manually and for free, but it easy to forget and the danger to lose your backup data are big. You must not to upload your dropbox backup on your PC or desktop you can directly restoring your website from dropbox drive. Independently of our service it is possible to downloading, uploading the data from the dropbox account. By dropbox backup with www.webpage-backup.com you can make exclusions of folders or by restoring import archives or whole bundle of archives. By dropbox backup or wep page cloning or migration of the sites it is important that all folders have permissions to write it is the same how permission to access the folder or to uploading it. For backup on dropbox it is does not matter if your site have ssl certificate or it is normal woocommerce shop without SSL certificate the same goes for migrating or for website clone. For our service www.webpage-backup.com it is important that our servise have permissions to the folders and to backup drive.
138
 
139
  = Special functions =
140
 
141
- To the special functions of our website backup doesn’t belong the migration, scheduler backup, cron backup, wpmu backup, shop backup and encryption by cloning, if you make some clone of your website or multisite clone. It is all normal functions of our plugin or service at our website www.webpage-backup.com. The most of this tools are free of charge, especially if you do it manually. But inside our multisite tools are other addons and functions. Addons for your pages or multisite (WPMU) peges you can add inside of your service account if you want. But for some of this function it is required to register on www.webpage-backup.com. For manage of multisites or just for one page menaging, for cron and scheduled dropbox backup as for full restoration of you WooCommerce shop, website or multisite as well as for migration - to register it is must. It is not possible to do full restoration of website from dropbox backup without the WordPress site self.
 
142
 
143
  = Easy backup =
144
 
145
- By draw up of our dropbox backup tools we try to do the backup or restoring ever for not experts and multisites owners, but with the same tools how for experts. For experts we have Buckup explorer where the expert can select or to do exclusion of files and webpages. As the register user you can use multiple dropbox account or create other multisite buckup drive clouds, how FTP or you can do the local backup on the site of your host. All automatically functions are inside of our service. To automatically tools belong: cron and scheduler, migrator and remote. Scheduled jobs for dropbox you can set in our calendar, it gives overview.
 
 
146
 
147
- = Back Up, Cloning, duplicate or migrate of websites =
148
 
149
- Cloning, duplicate or migrate in principal all the function a same. It gives you the possibility quickly to create site clone with as “templates” for multiple site. This clone tool is very useful, if you have more than one website or, if you want to clone or duplicate your web page. With full backup of your old site or WooCommerce shop you can clone or duplicate, and create new clone (due back up) of webshop or website with one click. All multisite backups functions are available from one dashboard of cloning tool, how multisite backup, as well as WPMU backup in the same cloud or in several cloud storages of hosting provider or just server. From same dashboard available clone restorations functions separate or in bundle, depend of your multisite backup settings. If your do so much settings you can remove not needed settings or clone of backup. The settings must be removed separately ever for multisite or clone. The backup dropbox storages must be removed separately too. Although it seems complicated to do automatic backup. With our backup plugin for backup, clone or migrate - you can make it without expert knowledge. Clone add-ons allow your easy backup or migrate your website or WPMU (multisite). "Dropbox backup" is just ultimate tool for WordPress that can worst your productivity by cloning of web pages, allowing you to do efficiently manage of cloned pages through clone or multisite installations.
150
 
151
- = Easy data restoring =
152
 
153
- For restoring your website (or multisite websites) selected files from the dashboard and then select files to restore. In backup list you see the type, date and size. From the list you can remove and select appropriate restoring file. In settings your can add or remove the cloud storage. In case of cloning you must restore your old website backup on other webpage. Cloning is the same how resorting but in more steps. The same bee meant for migrating of multisite and shops and there restore. With our file explorer you can match every file separately for restoration. In case of restoration only this files will be restore. You can restore one file than the next, but it easy to make restoring in bundle or directly to recover whole full backup. The restoration time depend from your hosting and upload rate as well as restoration depend from the file size witch must be restore. Scheduled restoring and recovering isn’t possible, unless somebody have special inquiry on our service to do scheduled recovering. The recover from the Dropbox cloud storage take time, depend from the web site size and right permissions of the folders of your hosting provider.
154
 
155
- = Backing Up and Restoration to Dropbox =
156
- = Backup: Yes Or No? =
157
- <p>In the age of trend-setting technologies, information backing up is necessary for many life spheres that are related in any way to creation of something. That refers to programming, site building, engineering, designing, not to mention home data - photos, videos and other stuff. This list can go on and on… One would think, what is so special about this backup thing? Well, the one fact known for sure is that it saves lives of both: different projects and people who fagged away at these very same projects.</p>
158
- <p>It has been said all the time that everyone should make the reserve copy (or backup), but not many actually do that, and besides, there are even those who have no clue about it and what it is for. Nevertheless, information about backup is really an important and useful habit, so let’s know what’s what about it.</p>
159
- <p>Firstly, there’s a need to determine the backup process – it is a data redundancy to different storage devices, making copies of the existing data. Now let’s clear its usefulness to each and every. On one hand, modern computers and their hard drives, which are the major and the most popular data storage places, have attained quite dramatic reliability numbers. Multiform redundant coding on different levels of data management provides strong security from the possible sad situations when the information is damaged as a result of accidental error in the act of data saving. But on the second thought, even the most dependable storage mediums sooner or later go down, and for what is more, it usually happens all of the sudden. Now that is the break point, when you finally change your mind upon all the information kept by people on their hard discs. Passwords and contacts, momentous pictures and rare music collections, all possible working data – this whole treasure can disappear without warning from your website, which can turn to serious financial and time losses in addition to emotional stress.</p>
160
- <p>The easiest variant is to simply copy data to another folder on a hard drive. But unfortunately, that is an unreliable decision, because that would release you from only the small number of possible problems, even if this folder is placed on another hardware. Now you are aware that at the present digital information day creating of backup is neither a whim nor extra precaution, this is a plain safety measure.</p>
161
 
162
- = What to do if recovering failed? =
163
 
164
- First of all check the data spelling. It is most common mistake. Other common mistakes by recovering are:
165
 
166
- * to recover from wrong cloud storage;
167
- * if done alone database back up – not full and you can't see the recover sites;
168
- * by recovering process there was internet connection interrupted;
169
- * In your database are file exclusions;
170
- * your database back up was not consistent;
171
- * file archive of back up with a broken checksum;
172
- * back up or restore from damaged cloud storage or from damaged back up archive;
173
- * misspelled back up due user failed restore;
174
 
175
- Large file and big size databases need more time to back up or recover website. It can take until two hours or more, depend from the size of your back up database, but for our recovery service it doesn’t matter for uploading of large files or small files. The difference between recover the large files and small is the time. <br />
176
- After check all of this figures please write an email to our support team http://www.webpage-backup.com and we will try to answer as soon as possible and to give you’re the best solution how easy to recover your site.
177
 
178
- If you see some of 5xx error codes, as return of your backup:<br />
179
- please, feel free to contact your own system administrator (admins, support etc.), because this type of errors come from your server.<br />
180
 
181
- **The timely backup protects from viruses.**
182
 
183
- There are some requirements for creating a reliable backup:<br />
184
- • Make copies of your files regularly and as often as you can;<br />
185
- • Rank your data by importance and back up essential information first. Generally, temporary files only add up to the back up volume and carry no significance, so get rid of them;<br />
186
  • Do not store your file copies on the same hard drives;<br />
187
- • Make sure you can access your backups any time and from any place;<br />
188
  • Schedule your backups and ensure you get informed on their status;<br />
189
  • If your medium capacity or bandwidth is limited use compression tools;<br />
190
- A good solution is to have a separate server for remote backups although it is not fail-safe. If the server is unavailable restoration will be impossible. To ensure high accessibility and data safety use cloud storage services.<br />
191
- There are a lot of services providing free but limited cloud storage capacity for backups like Google Drive, Amazon S3 (AWS) or Dropbox. The problem is they do not support FTP protocol which sometimes is the most adequate way of data transfer. In comparison, virtually every host company supports this protocol.
192
 
193
- = Restoration of Backup Files =
194
  <p>Different factors may be the reason for someone to restore his data from a dropbox backup. This is a truly helpful option that supposes bringing the saved data from dropbox storage place back to its original in case you’ve lost or damaged the existing one.</p>
195
  = Best Choice to Keep Data =
196
- <p>Among the available ways to maintain information the first place belongs rightfully to **cloud storages** or **cloud drives**. These are sorts of virtual data storages, that save and manage the data via numerous servers strewn about World Wide Web. Their principle is simple: every ‘cloud’ has definitively stated limit of Gb virtual space, that is given to a new user absolutely for free. But in time, if a person wants to expand it, he’ll have to pay according to price plan. So here we have a simple case of effective advertising – a user gets used to the comfort and mobility of the network repository, and after he concludes that the cloud suits him to the full extend in every meanings, he pays for the “rent” of this sufficiency.</p>
197
- = Dropbox Backup and WordPress =
198
- <p>For the present day Dropbox cloud is still an unbeaten leader that is up to multi-million clients number. Most probably that has to do with the fact that it is Dropbox that stood at the origins of virtual space providing to users, and it is the first company, that has realized the idea of cloud data storage. It works by creation of a virtual folder in the cloud, where all the info of your wordpress website is saved, the one which you download to your Dropbox folder on your computer. For the WordPress website management the best choice is to download a plugin to easily administrate your source from wordpress admin dashboard. Backup&Restore Dropbox has many positive reviews and it deals with the performance of backup and restores, both local and dropbox.</p>
199
  <br />
200
- <p>Dropbox Full Backup for WordPress is good for both restore and backups tasks. It allows to use your own App key and App secret in order to keep then private with higher security for yourself. It can be your personal guard that can keep all the files saved and backed up as much as possible, and even in case of your website data lost, you are able to restore all the data just with one click. </p>
201
  <br />
202
- <p>To make a conclusion we’d say, that in order to be safe and sound with any of your data of your WordPress site information you should trouble yourself with backing up of an important information. That will restrict possible damages to minimum and save your time and nerves.</p>
203
 
204
 
205
 
@@ -213,156 +214,121 @@ Note that Drop-ins have app keys but no app secrets.
213
 
214
  = I clicked on the "Backup to Dropbox" button, but nothing happens. What's wrong? =
215
 
216
- Before you try to make a backup of your website to dropbox, please make sure, that you have created the connection to dropbox. Also you must be sure, that you are connected to dropbox.<br />
217
- To do this, please, open the "Settings" block in your "Dropbox backup and restore" plugin. There you must see your Dropbox UID (User ID on Dropbox). If you didn't see your Dropbox connection App UID - your Dropbox plugin is NOT CONNECTED to your Dropbox and you can't do the backup of your website.<br />
218
- So please, at first connect yourself to Dropbox and then, try to make your backup to dropbox.
219
 
220
  = How to restore my site from dropbox backup? =
221
 
222
- - First of all, install the Dropbox backup & restore plugin;<br />
223
- - In Dropbox backup & restore plugin check your connection to dropbox as "dropbox app" or as connection with using of app key & app secret from your dropbox account;
 
224
 
225
 
226
  = My web page completely crashed and not available. How can I restore my web page from dropbox backup? =
227
 
228
- Just login or Register at WPAdm www.wpadm.com If your web page wasn't added and verified - just do it. Add your domain and verified this on WPAdm account.
 
 
229
 
230
- You must see all of your backups, that you have made.
231
 
232
- = Should I upgrade my old version of Dropbox Backup and Restore plugin? =
233
 
234
- Yes. We recommended to update or upgrade to a newest versions.
235
 
236
-
237
- = How do I do this: Dropbox Backup wasn't created. There is not enough script running time to perform backup operations, please increase the PHP variable max_execution_time. =
238
 
239
  There are two ways to do it increase the PHP variable max_execution_time:<br />
240
 
241
- 1. If the above mentioned method does not work, or your web host does not allow you to do it, you can change "Waiting time (minutes)" in the "Settings" area where you initiate the backup.<br />
 
 
242
 
243
- 2. If you have access to your hosting / server dashboard, please, find PHP settings and add the following:<br />
244
 
245
  max_execution_time = 90 (script running 90 seconds).<br />
246
 
247
- 3. If you have access to FTP settings, find FTP file, called php.ini and add there max_execution_time = 90 (script running 90 seconds).<br />
248
 
249
  If 90 is not enough for your script running, write 120 and so forth. <br />
250
 
251
  If you write down 0, you will have unlimited script running time. <br />
252
  Some materials take a long time to process before being transmitted.<br />
253
 
254
- 4. If you can’t find the php.ini file, then just try to create a new one in the root folder of your website. Add the setting described above to the created php.ini file.<br />
255
 
256
- 5. If the methods above doesn’t work for you - try to set append variable at the end of index.php file in root folder of your website.<br />
257
 
258
  ini_set('max_execution_time', '90');<br />
259
 
260
- 6. You can also add the following code in .htaccess file:<br />
261
 
262
  php_value max_execution_time 90<br />
263
 
264
  **Check, if you have added this setting to the currently active php.ini file.**<br />
265
 
266
- You can change it, for example from 3 to 5 minutes. This setting must be set in seconds. <br />
267
 
268
 
269
 
270
- = I just download the dropbox full backup addon for my wordpress site. I've connected the dropbox addon (application) to my dropbox account and pushed the button "create dropbox backup". But after the finish of backup where can I find the backup files, so I be sure, that the backup was done? =
271
 
272
- If you checked in the Setting of Dropbox plugin the checkbox "Leave local copy on my hosting", than you may to have two backups:<br />
273
- - one WordPress backup, that was saved locally on hosting of your website, in folder '/wp-content/Dropbox_Backup/<backup-folder>/';
274
- - the second WordPress backup, that was uploaded to your Dropbox account. You may to search for this uploaded backup on your Dropbox in of "WPAdm application" folder/<backup-folder>/;
275
- Note, if you don't checked the checkbox "Leave local copy on my hosting" in the Settings of your Dropbox plugin, than locally created backup on hosting of your website will be deleted after upload to your Dropbox.
276
 
277
- = How can I manage my backups? =
278
 
279
  Manage of multiple back ups is possible from your account on webpage-backup.com
280
 
281
- = I use multisite WordPress and I would like to manage my backups from one place. How can I do that? =
282
-
283
- Multisite WP can be supported too, but you have to login in your account at www.webpage-backup.com
284
-
285
- = Can I use the Dropbox Backup and Restore plugin to clone my website? =
286
 
287
- Yes. If you have some back up, created with our Dropbox Backup and Restore plugin, then you can use it for migration or doing some clone to another place (server / web hosting).
288
 
289
- = I didn't see my back up at my Dropbox. Why? How can I find it at my Dropbox? =
290
 
291
- Simple check your app key and app secret, that you use it from a correct app do you created before you start make a backup.
292
-
293
- = Is it possible to migrate my website with your Dropbox back up tool? =
294
-
295
- Many people stay us this question and our answer is - YES! It's good possibility to use our back up plugin specially for migration of websites. Also you can migrate your website locally. If you does a local backup, then you can download it to your PC, upload to another place and make recovery there.
296
 
297
  = How to do a recovery of my website? =
298
 
299
- Dropbox Backup and Restore plugin work autonomously. In case, if your page (website) not available, you may use www.webpage-backup.com to recover website from backup on dropbox.
300
-
301
- = I want schedule backup. How can I schedule backup of my website? =
302
-
303
- To schedule backup of your webpage (website backup), you may use an account at www.webpage-backup.com to schedule backup.
304
 
305
- = Can I make a schedule backup of my multisite WordPress? =
306
 
307
- Please, see the previous question "I want schedule backup. How can I schedule backup of my website?".
308
- Generally - YES, you can create a scheduled backup, but you may sign in to account at www.webpage-backup.com to make a scheduled backup.
309
 
310
- = Error message when trying to backup WP website and send to Dropbox. Dropbox Backup wasn't created. PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature. Please advise how to fix this? =
311
 
312
- This ERROR:<br />
313
 
314
- **PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature** <br />
315
 
316
- means that you have not enough free space on your hard drive.<br />
317
- To solve this problem, you have to go to your ISP panel (Plesk, cPanel, etc.) and check the disk space on your hosting or server.
318
-
319
- = Should I register to make a back up of my site? =
320
-
321
- Our plugin for back up is completely autonomous plugin for back up, so you don't need to register to make a back up of your site.
322
-
323
- = How can I manually restore my website from one place to another? =
324
-
325
- You can restore your website on another place with two ways:<br />
326
- * manually website restoration<br />
327
- * automatically website restoration<br />
328
-
329
- For automatically website restoration you may need an account at webpage-backup.com
330
-
331
- = Is it possible to duplicate my website like Duplicator Plugin do that? =
332
-
333
- Backups & Restoring plugin can Duplicate more simply as Duplicator.<br />
334
- If you want to duplicate your website, you may backup it first at some storage (for example Dropbox or Amazon, or just on your FTP). You can start duplicate website if the backup process was finished successfully. If isn't - don't try to duplicate, because wrong or incorrect backup can crash your website during duplicating.
335
 
336
  = Duplicate and clone is the same thing? =
337
 
338
- It has distinction in each of the duplicate and clone plugins. In both cases, as with duplicate and also with clone, this is in fact a website copy.
339
-
340
- = How can I manage or coordinate my duplicate website? =
341
 
342
- To managing your duplicate website you need to have an account at webpage-backup.com. So, you will see all of target (original) and source (duplicate) websites. At your account on webpage-backup.com you have a possibility to make one duplicate from another duplicate website, that was duplicated before.
343
-
344
- = What does make your "duplicate" plugin, which doesn't make another (e.g. Duplicator plugin)? =
345
 
346
  Duplicating is a very complex process. We will explain the website duplicate in the next our explanations about "duplicate website".
347
 
348
  = Is it possible to make an Incremental Backup with Dropbox Backup & Restore plugin? =
349
 
350
- Incremental backup expect many of our users. Incremental backup can help solve many problems for the implementation of the backup in complex systems. Create an incremental backup, that's what we're working. In the next versions it will be also possible to create incremental backups for websites.<br /><br />
351
  (PS: Autor german language)<br />
352
  Inkrementelle Sicherung (Incremental backup) erwarten viele unser Nutzer. Inkrementelle Sicherung (Incremental backup) kann helfen viele Probleme für die Durchführung der Sicherung in komplexen Systemen zu lösen. Erstellung eines inkrementelles Backup, das ist, was wir eben noch planen zu implementieren in der Dropbox Backup & Restore Plugin. In den Zukünftigen Versionen wird es auch möglich, inkrementelle Backups zu erstellen.<br /><br />
353
 
354
- We must understand that when you use incremental backups perform operations such as website clone (clons creating), multisite clone, migrate of websites or website duplicate will be difficult, but possible.
355
-
356
- = Just to do a MySQL backup. How to do that? =
357
 
358
- In this version of plugin supported a MySQL backup (database backup or simple "db backup") together with a filesystem backup. To do a mysql backup, you can do it with a file system or just use another version of our plugin.<br />
359
- The version for mysql backup (DB Backup) is available due control panel at http://www.webpage-backup.com
360
 
361
- = We want to make an SCP Backup from our rackspace (Full Rackspace Backup). For this operation we would like to use your Dropbox plugin. =
362
 
363
- Ok, if you want to use an SCP Backup, please, wait for some versions of this plugin over their, and we will make an scp backup for you.
364
 
365
- = What do I need to do? Local Backup wasn't created: There is not enough memory to perform archiving of big files and continue backup operations, please increase the PHP variable memory_limit. =
366
 
367
  There are two ways to solve your problem:<br />
368
 
@@ -376,58 +342,53 @@ Full description of php.ini and memory_limit you can find here http://php.net/ma
376
 
377
  = FTP Backup? =
378
 
379
- The name of this plugin is "Dropbox" Backup and Restore. From control panel at http://www.webpage-backup.com you can do also an FTP Backup. Please, checkout an FTP Backup so.
380
-
381
- = Is dropbox backup and restoration plugin really free? =
382
-
383
- Yes, dropbox backup and dropbox restoration are free with plugin "Dropbox Backup and Restore"!
384
 
385
- = Whether I need to create an account on the wpadm.com? =
386
 
387
- You shouldn't create an account on the www.wpadm.com, but you are able to do it since further it can really help you at restoration time of your site. For example, if your website is completely down and not available.
388
 
389
- = Whether there are WordPress templates of my web site in a full backup archive? =
390
 
391
- Full backup include templates of your site.
392
 
393
- = I try to create a dropbox backup. I enter the app key and app secret. Then I was asked for permission to access dropbox, so I hit "allow" and then I'm given an "Internal server error".<br /> What is causing this and how might I fix it? =
394
 
395
  Please, just wait for some time and try again later.<br />
396
- We know this issue about "Internal Server Error" on Dropbox, that comes from the Dropbox servers. Best thing to do is be patient and give it another try.
397
  We cannot recommended you more, than just had to wait it out and problem went away after a while.
398
 
399
  = I want to move my website to the new hosting/server. How can I do this? =
400
 
401
- Sure, it is possible to use this Dropbox Backup & Restore plugin, but we suggest to try [cloner](https://wordpress.org/plugins/duplicator-clone/). With it you can much easily clone, migrate or easy duplicate your website from one hosting or server to another.
402
 
403
- = My website has a very BIG files, like photos, videos and so on. If I do my backup to dropbox it's return this message "Maximum execution time of XXX seconds exceeded" and sometimes some other messages while uploading to dropbox. I've tried to do my backups with some of known WordPress plugins like "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress" but it's all without success. Can you please advise me after all these failures, why I have to trust in "Dropbox Backup & Restore" plugin? =
404
 
405
- OK, this is a complex question, but we'll try to answer this by comparing of "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress" with "Dropbox backup & restore" plugin.<br />
406
- All of this backup plugins like "Dropbox backup & restore", "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox" or "BackUpWordPress" has functionality not only for a backup, but also for restoration (restore or restoring process for website). There are a lot of parameters which are required to be compared.
407
 
408
- = Why I cannot create local back up? =
409
- There are many reasons for failed local back up. For example, you may to sure, that you have enough free space on you hard drive (hosting contingent, with other words: you have a free space) for new back up. Also you may to sure, that you permission for script running, file or folder creation are not limited.<br />
410
- You've corrected these problems and still can't make a local back up - please, contact www.webpage-backup.com support.
411
 
412
- = Hi, I made a Local Backup and it created 23 zip files, 1 MD5 file and 1 SQL file. How I can validate that this backup ended correctly? =
413
- At the end of successfully created backup you will receive a results message like "success" or "error" and the .MD5 file will be created. The .md5 file is a checksum for your created backup.
 
414
 
415
- = I was using your free version of Dropbox Backup without problem. I just paid for the Pro version and downloaded the files to my computer. What do I do now to activate the Pro version on my WP site and automate dropbox backups? =
416
- The PRO version of plugin was activated during of payment process, so if you already downloaded the PRO version it's already activated. Just install the plugin.
417
- To automate backup to Dropbox (scheduled backup to Dropbox), please look at settings block of an installed PRO plugin.
418
 
419
- = Can do back up get this message Dropbox Backup wasn't created. Website "XXXXXXXX" returned an error during file creation: Failed to create file, please check the permissions on the folder "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup". Please can you advise? =
420
- Sure, the folder “Dropbox_Backup” with this path on you website hosting or website server "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup" must be created, if this wasn’t created yet<br />
421
- AND this folder must be also writable (For example within permission 777 on this folder).<br />
 
 
 
 
422
  You can check this permissions using some FTP client like "WinSCP" or "FileZilla". You can google and download this software. This program is free of charge.<br />
423
- If you have any difficulties, our support staff can do it for you, but in this way you'll need send FTP access credentials for your website to our support.
424
 
425
- = I have tried several times to perform a Dropbox backup of my wordpress site. It says that is performs, but the backup counter shows 0 even after being refreshed. The Dropbox folder is showing no items in it. What am I missing to do? =
426
- 1. One of the possible thing you can try to do is the web browser cache refresh. Try to load you backup plugin page in WordPress without browser cache by clicking of buttons combination Ctrl+F5.<br />
427
 
428
  = I've been trying to back up a site and I just noticed that it stopped progressing about an hour ago at this line: yyyy-mm-dd xx:xx:xx Add a table "wp_tablexxx" in the database dump. Any idea what happened? =
429
- The Dropbox backup and restore plugin does an automatic database optimization before backup, <br />but if you have some broken table in database of your website,<br />
430
- then you can try to repair the database before backup creation.<br />
431
 
432
  = Hallo, ich habe eben versucht über Ihre Webseite ein Backup in meine Dropbox zum machen - es wurde aber nicht ausgeführt. Das Geld wurde aber von meinem Guthaben bereits abgebucht. Im Scheduler stand auch "WAITING" und dann "PERFORMED" aber die Dropbox ist noch leer. Bitte um Hilfe. =
433
 
@@ -440,45 +401,43 @@ Ist es möglich, dass Sie uns Ihr System Logs-Dateien zukommen lassen <br />
440
  *oder*<br />
441
  geben uns den FTP Zugriff von Ihrer Website, damit wir versuchen Ihnen zu helfen.<br />
442
 
443
- = Makes me mad that I thought I was protected. Couldn't have went another way. I want create my website backup to dropbox. =
444
- Your website is protected, if you have successfully created website backup.<br />
445
- Just try to create website backup from you own admin area (from you own WordPress). Backup creating from your own website is fully free!<br />
446
-
447
  = Seems to be missing something: PHP Extensions sockets, ftp Not Found Functionality are not guaranteed. =
448
- Yes, to create backup successfully you'll need such PHP extensions like Sockets or Curl, otherwise we can't guaranteed functionality for Dropbox back up and restoration plugin.
449
 
450
- = I've moved my website to the new hosting provider. Where can I find my PHP Extensions like sockets, ftp or curl to do a backup? Because the Dropbox plugin says me, that functionality for Dropbox back up and restoration plugin can't guaranteed... =
451
- You can activate PHP Extensions on you cPanel or Plesk of provider hosting administration panel.
452
  **If you use cPanel,** <br />
453
- login in cPanel and scroll down to "Software and Services" or "Advanced" block and open "PHP configuration" or "PHP PEAR packages".<br />
454
  Check on the corresponding checkboxes to your php extensions, that you want activate.<br />
455
  Save the PHP configuration by clicking the button on bottom (in most cases on the bottom) of this page.<br />
456
  **If you use Plesk dashboard or Plesk (Version 12) administration panel,** <br />
457
  Login to Plesk and in main menu open "Tools & Settings" > "PHP Settings" > *any PHP 5.6 handler*<br />
458
  Clear the checkbox, to have the PHP extension appear on the customers "phpinfo" pages, and click "OK". Wait for the changes in list with PHP extensions to be applied, then select the checkbox and apply the changes once again.<br />
459
 
460
- = I want optimize my MySQL database before I do my backup. How can I do that? =
461
- In the Website to Dropbox backup & restoration plugin you can find an appropriate option in the Settings block of the Dropbox plugin. The optimize database setting is per default activated and in use. If you hasn't changed this configuration, then every time, as you doing backup, the database will be optimized automatically.
462
 
463
  = Once I tried to conduct a Dropbox backup I received this error - Dropbox Backup wasn't created. Dropbox returned an error during file sending: "Invalid OAuth1 token." =
464
  Please, reconnect to Dropbox, by clicking "Connect to Dropbox" button, in the "Settings" on plugin page of your website. <br />
465
 
466
 
467
- = How much time it will take to create a backup of my website? =
468
- There are many hardware and software dependences. Approximately the average time for website takes up to 360 seconds for 50 Mb website. There are many hardware and server/web hosting software dependencies to create a back up.
469
 
470
  = What does it cost to backup my website? =
471
- It's fully free to back up your website, if you performing back up or restore using Dropbox backup and restore plugin autonomously on your own website.
472
 
473
- = After installing and trying to run backup... my website fails to load... Can you please help me? =
474
- <strong>The Dropbox-backup plugin doesn't make any changes neither on your WordPress nor on your WordPress configuration.</strong> It does only archive of your files and copy this archive in local folder or dropbox folder without to make some changes.<br />
 
 
475
  Please, open a support ticket and we will try to help you.
476
 
477
- = Can I close dropbox plugin page in my WordPress during back up of my website will be created? =
478
- Yes, you can close dropbox plugin page in your WordPress website, cause backup will be created during cron task of WordPress. The backup task will be executed in background.
479
 
480
- = How can I clone my WordPress? I can't find this in Dropbox backup and restore plugin. =
481
- With some tricky you can clone your WordPress to the new place. Try to rename your domain backup folder on Dropbox and use the same Dropbox App key and App secret to get this backup folder on your new WordPress place. After restoring on new folder or hosting - it will give you new cloned WordPress. Also, do not forget, you can use the Dropbox backup and restore PRO version to get cloning process more easily in use.
 
482
 
483
 
484
  == Changelog ==
@@ -487,7 +446,9 @@ Please, keep your Dropbox Backup and Restore plugin up-to-date.
487
 
488
  **Rev.**&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;**Description** <br />
489
 
490
- Dropbox backup and restore plugin was successfully tested on WordPress 4.9<br />
 
 
491
 
492
  @1506575&nbsp;&nbsp;&nbsp;&nbsp;New version 1.4.7.3 with full update of Dropbox backup and restore plugin.<br />
493
  @1506495&nbsp;&nbsp;&nbsp;&nbsp;WordPress backup plugin Dropbox backup & restore, added "exclude/include" files and folder window. Bug fixes.<br />
1
  === Backup & Restore Dropbox ===
2
  Plugin Name: Backup & Restore Dropbox
3
+ Version: 1.6.2
4
  Donate link: http://www.wpadm.com/donate
5
  URI: http://www.wpadm.com/dropbox-backup
6
  Tags: dropbox, backup, dropbox backup, migrate, restore, database, full backup, manage, sicherung, database backup, file backup, page backup, page, web, web backup, web page, synchronize, clone, duplicate, move, web page backup, site, site backup, back up, cloud, Cloud Files, cloud backup, db backup, dump, german, multisite, German, schedule, storage, time, upload, data bank, zip, archive, backups, file, db, recover, recovery, restoration, wp backup, wordpress backup, wordpress backup to dropbox, plugin wordpress backup, wpadm, wpadm.com, website, website backup, website back up, wp backup, wordpress backup, scheduled backup, backup scheduler, tool, backup tool
7
  Requires at least: 3.9
8
+ Tested up to: 4.9.7
9
  Stable tag: trunk
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
  Author: WPAdm.com
13
+ Contributors: dropbox-backup
14
 
15
+ Backup & Restore Dropbox Plugin to create Dropbox and Local Full Backup (Files + Database) or Restore, Duplicate, Clone or Migrate your Website
16
 
17
  == Description ==
18
 
19
+ Backup & Restore Drobpox is a secure and unique wordpress plugin, designed for quick and easy creation of reserve copy to Dropbox Cloud and Webserver as well as Restore from Local Storage (webserver) and from Dropbox. This plugin works by making a reserve copy of your website content and uploading these files to Dropbox remote storage or to Webserver.
20
 
21
+ If you do not understand anything or you have any questions, <br />
22
  please, make a [support request](http://www.wpadm.com/support/) first!
23
 
24
+ **Features:**
25
+
26
+
27
+ * Unlimited dropbox backups. The plugin makes full copy of a Webpage (Files + Database), can save it at Local Storage (webserver) if you tick this feature, and uploads it directly to your Dropbox account;
28
+ * Unlimited local backups. The plugin creates full copy of a Website (Files + Database), stores it at your webserver.
29
+ * Local Restore: recovers files from web hosting;
30
+ * Dropbox Restore: recovers files from Dropbox account;
31
+ * Allows to decide what folder/files to include and exclude from site copy (can be found in "Settings");
32
+ * Backup and restore of WooCommerce shop including database with products;
 
 
 
 
33
  * Notification logging on screen and in file;
34
+ * Use your own App key and App secret to connect to Dropbox;
35
  * Supports backup on "Low Memory" Hosting or Server;
36
+ * Possibility to hide the plugin with all performed tasks from wordpress dashboard (only Admins can access the plugin mail page);
37
+ * Automatic database optimization before the task (can be set in plugin settings box);
38
+ * Database or Table repair functionality before the process;
39
+
40
+ **Premium features:**
41
+
42
+ * Schedule automated backups (daily, weekly, monthly);
43
+ * Migrate worpress site to another hosting automatically;
44
+ * Email notifiacations about selected task;
45
+ *Allows to backup website files and database separately from each other;
46
+ * Automated delete of old reserved copies of the site from Dropbox.
47
+
48
+ * Administrate ALL Backups of ALL of your sites from one account – WPAdm-account (Account creation is FREE);
49
 
50
  **Account creation is optional, but we suggest to do this.<br /> Why create [www.wpadm.com](http://www.wpadm.com/) account?**<br />
51
+ Your website can be down, not available or admin back-end can be not responsive. There are many reasons for this, for example:<br />
52
 
53
  * Some plugin or some theme (template) has an error;
54
+ * Plugin or theme (template) was installed incorrectly (wrong installation of WordPress plugins and themes);
55
+ * Vulnerabilities of user files, WordPress files, WordPress plugin and theme files;
56
+ * Websites hacking, Websites trojans etc.;
57
  * Server or hosting misconfiguration. For example: files and folder rights, like "owner" rights, "read", "write" and "execution" rights;
58
+ * Web Server or web hosting misconfiguration, like wrong Apache or nginx configuration, mod_rewrite rules configuration, etc.<br />
 
59
 
 
 
60
 
61
  **PLEASE, READ CAREFULLY!** <br />
62
+ **If you like our plugin - please, leave your own [review](https://wordpress.org/support/view/plugin-reviews/dropbox-backup). It will help us to develop, improve and update the plugin for you!**<br />
63
+ **This is one of a few WordPress plugins, which provides a fully free support (plugin support!) for all of our users.<br />
64
+ if your website (not this plugin!) has some troubles, we may ask you for FTP access, in order to provide support for you shortly.<br />
65
+ Providing these FTP DATA IS NOT OBLIGATORY, but if you do this, - our support staff will check your current or previous task process and you will receive a feedback with results.<br />
66
  It can take a while and some patience from you.<br /><br />
67
+ We are not responsible for any 5хх-errors! Such errors are caused, in most cases (99,9%), by your server/hosting.<br />
68
+ For a little fee, we can help you solve problems of your server or hosting (to do this, we will need your FTP access data of your website that needs to be checked and configured correctly).<br />
69
  Thank you for your understanding!**
70
 
71
 
72
  **ALL INFORMATION, PROVIDED BY OUR USERS IS IN SAFETY AND USED FOR SUPPORT ONLY!**
73
 
74
+ If you need help with the plugin or you want to report a bug, please, refer to http://www.wpadm.com/support/
75
  <br />
76
 
77
+ If your website has basic authorisation (basic_auth), it can call some exclusions during backup performance. We are working on this issue.
78
 
79
 
80
  == Installation ==
81
 
82
  ### Perform a new installation using FTP
83
  1. Upload the plugin folder `Dropbox Backup` to the `/wp-content/plugins/` directory of your WordPress installation.
84
+ 2. Activate the plugin through the `Plugins` menu in WordPress admin dashboard.
85
 
86
 
87
+ ### Install the plugin manually uzing zip.archive
88
 
89
+ You can download zip.archive of the plugin from Backup & Restore Dropbox page at wordpress site. After downloading the ZIP file of the plugin, pass the following steps:
90
 
91
+ 1. Log in at your wordpress administrator panel;<br />
92
+ 2. Go to Plugins > Add New > Click the button "Upload";<br />
93
+ 3. Click on "Choose file" or "Browse" and select the downloaded zip file that is called dropbox-backup.zip;<br />
94
  *For Mac Users*<br />
95
+ *Go to your Downloads folder and locate the folder with the name "dropbox-backup". Right-click on this folder and select Compress. Now you have a newly created .zip file which can be installed as described here.*<br />
96
+ 4. Click on "Install Now" button;<br />
97
+ 5. Click on link "Activate Plugin" ;<br />
98
  <br />
99
+ *If the installation does not succeed, please contact http://www.wpadm.com support team or refer to your system administrator.*<br />
100
 
 
101
 
102
+ ### REMEMBER to connect the plugin to Dropbox before lanching any process in this plugin ###
103
 
104
+ 1. Go to WordPress Admin dashboard of your website;<br />
105
+ 2. Open "Settings" box;<br />
106
+ 3. Click "Connect to Dropbox" button and you will use defaut connection;<br />
107
+ 3. To connect to your own Dropbox App, you can use your own App Key and App Secret in corresponding fiels. More Information about this you can read on [FAQ](https://wordpress.org/plugins/dropbox-backup/faq/) page or in the Settings block of your installed plugin, under the "Connect to Dropbox" button;<br />
108
 
109
+ The above mentioned video tutorials will help you with the plugin usage:
110
  <ul>
111
+ <li>How to install Dropbox Full Backup plugin at self-hosted WordPress site</li>
112
+ <li>How to connect the plugin to Dropbox</li>
113
+ <li>How to back up website</li>
114
  </ul>
115
 
116
  https://www.youtube.com/watch?v=Hdzoh0BFpmg
122
  == Other ==
123
 
124
 
125
+ = Very easy-to-use, universal, multi-task and secure tool to backup, restore and migrate any type of website =
126
  Usefull additional functions can be found at www.wpadm.com in the User profile.
127
+ Since it is a new plugin, so we tried to provide a bug-free plugin/widget. We maintain this project.
128
 
129
  Information about privacy:<br />
130
+ In case a user has been registered at WPAdm service AND has confirmed their registration,
131
  our plugin will get the minimum requirements of php and mysql configuration, version and language of wordpress.
132
+ This data will be send to WPAdm service, to get the tool work correctly, to extend supported configurations of user sites with wpadm-extensions and support.<br />
133
  WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
134
 
135
+ = Hacks and tips =
136
+
137
 
138
+ It is obvious and true, that in order to sleep calm and be sure in the future of your online business, it is neccessary to secure yourself with regular copies of your website content. Using www.webpage-backup.com service you can make a copy of files or database of any of your projects without distinction either it is a simple website or woocommerce shop. From security point of view, it is important to schedule regular backups, thereby not to lose your content or comments from your databases in case of any trouble. With this online service you can select the folder or special databases that you want to copy and save or just a single website inside your hosting. But for our service it does not matter if the files are large or small, in case of the restoration it is the same. Concerning the local backup which is done on your hosting. If your hosting has enough space it is ok, but it is not recommended and does not provide 100% security for your files, because it is possible that something may happen with your hosting or after some time you want to change your hosting provider. You should remember one truth, if you create secure copies of the site regularly and has limited storage, sooner or later its size will get full and it will not allow to save website copies anymore. Keep it in mind, please. For this reason the best is to use the Dropbox storage. Dropbox storage is scalable and you can remove unnecessary info from it easily, thus clearing some space. You can make it manually and for free. Moreover, cloud storage is more secure than hosting. You do not have to upload your dropbox site security copy on your PC, as the plugin allows to restore it directly from dropbox drive clicking just one button in the plugin. Independently of our service it is possible to download, upload the data from the dropbox account. In order to clone, migrate or copy a site, it is important to have correct access permissions for folders and files to write is the same as permission to access the folder or to uploading it. To perform any task with this tool, it does not matter if your site has SSL certificate or it is normal woocommerce shop without SSL certificate. For our www.webpage-backup.com service it is important that it has permissions to the folders and to the cloud drive.
 
139
 
140
  = Special functions =
141
 
142
+ = Special functions =
143
+ Migration, back up scheduling, cron backup, wpmu backup, and encryption by cloning, website or multisite cloning - all these features belong to the special features. Online service www.webpage-backup.com. allows to perform multisites secure copies from one place. Addons for your pages or multisite (WPMU) peges you can add inside of your service account if you want. But for some of this function it is required to register on www.webpage-backup.com to be able to manage multisites or just for one page menaging, for cron and scheduled dropbox backup as for full restoration of you WooCommerce shop, website or multisite as well as for migration. It is not possible to make full restoration of website from dropbox copy without the WordPress site itself.
144
 
145
  = Easy backup =
146
 
147
+ This Dropbox Full Backup plugin has easy intuitive interface that was created both for ordinary users, not experts without any superb knowledge and multisites owners, and for experts, webmasters ans programmers. For experts we have a special explorer where the expert can select or exclude files and folders from backup creation. As the registered user you can use multiple dropbox accounts or create other multisite clouds, as FTP. All automatic functions are inside of our service. To automatic tools belong: cron and scheduler, migrator and remote. Scheduled tasks for dropbox you can setup in our calendar, where it is possible to appomt particulat days and time when you want to perform the task.
148
+
149
+ = Back Up, сloning, duplicate or migrate of websites =
150
 
151
+ Cloning, duplicate or migration in principal means the same process when you move the site from one hosting provider to another one . The process is automatic and requires just several easy clicks from you. It gives you the possibility quickly clone website with “templates” for multiple site. This clone tool is very useful, if you have more than one website or, if you want to clone or duplicate your web page. You can migrate from old site or WooCommerce shop to a new one with this plugin clicking on one button, only if you have previously made backup of your old website. All multisite functions are available from one dashboard of cloning tool, as well as WPMU backup in the same cloud or in several cloud storages of hosting provider or just server. From the same dashboard are available cloning functions separately or in bundle. Using this plugin you can make it without expert knowledge. Clone add-ons allow your easy backup or migrate your website or WPMU (multisite).
152
 
153
+ = Easy data restoring =
154
 
155
+ To recover your website (or multisite) select necessary back-up with the data of its type, date and size. In case of cloning you restore your old website copy on new wordpress installation. Website movement looks almost the same as a simple site recovery, but requires some more steps. With our file explorer you can match every file separately for restoration. In case of recovering process only these files will be recovered. You cannot restore one file than the next, the plugin provides full website restoration. The restoration time depends from your hosting and upload rate, the file size. Current plugin does not support scheduled restore, unless somebody send a special inquiry on our service to implement scheduled recovering. The recover from the Dropbox cloud storage takes time, depending on the web site size and access permissions of the folders of your hosting provider.
156
 
 
157
 
158
+ = Is it vital to backup website to remote Dropbox storage?
159
+ <p>In the age of trend-setting technologies, backuping is necessary for many life spheres that are related in any way for creation of something. That refers to programming, site building, engineering, designing, not to mention ordinary home data - photos, videos and other stuff. This list can go on and on… One would think, what is so special about this backing up thing? Well, the one fact known for sure is that it saves lives of both: different projects and people who fagged away at these very same projects.</p>
160
+ <p>It has been said all the time that everyone should make the reserve copy, but not many actually do that, and besides, there are even those who have no clue about it and what it is for. Nevertheless, information about this procesure is really an important and useful habit, so let’s know what’s what about it.</p>
161
+ <p>Firstly, there’s a need to determine the back up process it is a data redundancy to different storage devices, making copies of the existing data. Now let’s clear its usefulness to each and every. On the one hand, modern computers and their hard drives, which are the major and the most popular data storage places, have attained quite dramatic reliability numbers. Multiform redundant coding on different levels of data management provides strong security from the possible sad situations when the information is damaged as a result of accidental error in the act of data saving. But on the second hand thought, even the most dependable storage mediums sooner or later go down, and for what is more, it usually happens all of the sudden. Now that is the break point, when you finally change your mind upon all the information kept by people on their hard discs. Passwords and contacts, momentous pictures and rare music collections, all possible working data this whole treasure can disappear without warning from your website, which can turn to serious financial and time losses in addition to emotional stress.</p>
162
+ <p>The easiest variant is to simply copy data to another folder on a hard drive. But unfortunately, that is an unreliable decision, because that would release you from only the small number of possible problems, even if this folder is placed on another hardware. Now you are aware that at the present digital information day creating of reserve cope of the whole website is neither a whim nor extra precaution, this is a plain safety measure.</p>
 
163
 
164
+ = What to do if site recover fails? =
165
 
166
+ First of all, check the data spelling. It is the most common mistake. Other common mistakes that may occur during the recovering are:
167
 
168
+ * to recover from wrong or damaged cloud storage account;
169
+ * if done just a database back up – not full and you can't see the recovering site;
170
+ * during the recovering process there was an interrupted or lost internet connection;
171
+ * In your database there are file exclusions;
172
+ * your database backuping was not consistent;
173
+ * file archive of reserve copy with a broken checksum;
174
+ * misspelled back up due to user failed restore;
 
175
 
176
+ Large file and big size databases takes more time to get backed up or recovered. It can take until two hours or more, depends on the size of your database, but for our recovery service it doesn’t matter for uploading of large files or small files. The only difference between restoring of the large files and small is the time. <br />
177
+ After checking all of these figures please email our support team http://www.webpage-backup.com and we will try to answer as soon as possible and to give you’re the best solution how easy to recover your site.
178
 
179
+ If you see any 5xx error codes, as a return from your backuping procedure:<br />
180
+ please, do not hesitate to contact your own system administrator (admins, support etc.), because this type of errors come from your server.<br />
181
 
182
+ **The regular creation of website reserve copy protects from viruses.**
183
 
184
+ There are some requirements for this:<br />
185
+ • Make copies of your files and store them at secure remote storage regularly and as often as you can;<br />
186
+ • Rank your data by importance backuping essential information first. Generally, temporary files only add up to the back up volume and carry no significance, so get rid of them;<br />
187
  • Do not store your file copies on the same hard drives;<br />
188
+ • Make sure you can access your copied content any time and from any place;<br />
189
  • Schedule your backups and ensure you get informed on their status;<br />
190
  • If your medium capacity or bandwidth is limited use compression tools;<br />
191
+ A good solution is to have a separate server for remote site copies although it is not fail-safe. If the server is unavailable restoration will be impossible. To ensure high accessibility and data safety use cloud storage services.<br />
192
+ There are a lot of services providing free but limited cloud storage capacity like Google Drive, Amazon S3 (AWS) or Dropbox. The problem is they do not support FTP protocol which sometimes is the most adequate way of data transfer. In comparison, virtually every host company supports this protocol.
193
 
194
+ = Restoration =
195
  <p>Different factors may be the reason for someone to restore his data from a dropbox backup. This is a truly helpful option that supposes bringing the saved data from dropbox storage place back to its original in case you’ve lost or damaged the existing one.</p>
196
  = Best Choice to Keep Data =
197
+ <p>Among the available ways to maintain information the first place belongs rightfully to **remote cloud storages** or **cloud drives**. These are sorts of virtual data storages, that save and manage the data via numerous servers strewn about World Wide Web. Their principle is simple: every ‘cloud’ has definitively stated limit of Gb virtual space, that is given to a new user absolutely for free. But in time, if a person wants to expand it, he’ll have to pay according to price plan. So here we have a simple case of effective advertising – a user gets used to the comfort and mobility of the network repository, and after he concludes that the cloud suits him to the full extend in every meanings, he pays for the “rent” of this sufficiency.</p>
198
+ = Advantages of Dropbox storage for WordPress =
199
+ <p>For the present day Dropbox cloud is still an unbeaten leader that comprises multi-million clients number. Most probably that has to do with the fact that it is Dropbox that stood at the origins of virtual space providing to users, and it is the first company, that has realized the idea of remote cloud data storage. It works by creation of a virtual folder in the cloud, where any kind of info can be saved, the one which you download to your Dropbox folder on your computer. For the WordPress website management the best choice is to download a plugin to easily administrate your source from wordpress admin dashboard. Backup&Restore Dropbox has many positive reviews and it deals with the performance of various tasts.</p>
200
  <br />
201
+ <p>Dropbox Full Backup for WordPress is good for restore, migration and backup tasks. It allows to use your own App key and App secret in order to keep then private with higher security for yourself. It can be your personal guard that can keep all the files saved and backed up as much as possible, and even in case of your website data lost, you are able to restore all the data just with one click. </p>
202
  <br />
203
+ <p>To make a conclusion we’d say, that in order to be safe and sound with any of your data of your WordPress site information you should secure yourself with backing up of an important information. That will cut possible damages to minimum and save your time and nerves.</p>
204
 
205
 
206
 
214
 
215
  = I clicked on the "Backup to Dropbox" button, but nothing happens. What's wrong? =
216
 
217
+ Before making a copy of your website to dropbox, please make sure, that the plugin is connected to your dropbox account. <br />
218
+ To do this, please, open the "Settings" block in your installed plugin. There you should see your Dropbox UID (User ID). If you don't see your Dropbox connection App UID - your Dropbox plugin is NOT CONNECTED to your Dropbox account, as a result it is getting impossible to create and save the backed up data.<br />
219
+ So please, at first connect yourself to Dropbox and then, launch the process of the website reserve copy.
220
 
221
  = How to restore my site from dropbox backup? =
222
 
223
+ - It is possible to restore website using this tool, only if the site was previously backed-up with this tool;<br />
224
+ - First you shoul be connected to your dropbox account, either using simple connection or your own apps key and app secret, depending what methid you use, where your website files are saved.
225
+ - If you are connected, you will see the list of all backups in your plugin. Click Restore button to recover the one you need.
226
 
227
 
228
  = My web page completely crashed and not available. How can I restore my web page from dropbox backup? =
229
 
230
+ -Create new wp installation;
231
+ -Connect to your Dropbox account that you used to save your site files;
232
+ -In the appeared list of reserved copies, find the one to recover, and hit Restore button.
233
 
234
+ = Should I upgrade my plugin to the newer version? =
235
 
236
+ Yes. We recommended to update or upgrade to a newest versions to be able to use new feqatures and better plugin functioning.
237
 
 
238
 
239
+ =How to solve this issue? There is not enough script running time to perform backup operations, please increase the PHP variable max_execution_time. =
 
240
 
241
  There are two ways to do it increase the PHP variable max_execution_time:<br />
242
 
243
+ 1. Open Settings in this plugin main page in your WordPress website dashboard.Find the setting “Waiting time (minutes)” with default value of “3”. Please increase it up to “8”, “10” or “15” and try to perform backup/restore again. <br />
244
+
245
+ 2. try to choose another archiving method. Open Settings. Find the option "Create backup using the following methods". Untick TarGz archive and try to perform the task using Zip Shell or untick both to use default method of archiving. <br />
246
 
247
+ 3. If you have access to your hosting / server dashboard, please, find PHP settings and add the following:<br />
248
 
249
  max_execution_time = 90 (script running 90 seconds).<br />
250
 
251
+ 4. If you have access to FTP settings, find FTP file, called php.ini and add there max_execution_time = 90 (script running 90 seconds).<br />
252
 
253
  If 90 is not enough for your script running, write 120 and so forth. <br />
254
 
255
  If you write down 0, you will have unlimited script running time. <br />
256
  Some materials take a long time to process before being transmitted.<br />
257
 
258
+ 5. If you can’t find the php.ini file, then just try to create a new one in the root folder of your website. Add the setting described above to the created php.ini file.<br />
259
 
260
+ 6. If the methods above doesn’t work for you - try to set append variable at the end of index.php file in root folder of your website.<br />
261
 
262
  ini_set('max_execution_time', '90');<br />
263
 
264
+ 7. You can also add the following code in .htaccess file:<br />
265
 
266
  php_value max_execution_time 90<br />
267
 
268
  **Check, if you have added this setting to the currently active php.ini file.**<br />
269
 
 
270
 
271
 
272
 
273
+ = I just downloaded the dropbox full backup addon for my wordpress site. I've connected it to my dropbox account and pushed the button "create dropbox backup". How can I find my copied data now? =
274
 
275
+ If you tick the checkbox "Leave local copy on my hosting"in the Setting of Dropbox plugin, than you may to have two backup copies:<br />
276
+ - the one, that was saved locally on hosting of your website, in folder '/wp-content/Dropbox_Backup/';
277
+ - the second one, that was uploaded to your Dropbox account. You can find following this path -"WPAdm" folder/your site name/your backup name/ that contains all the files;
278
+ Note, if you don't checked the checkbox "Leave local copy on my hosting" in the Settings of your Dropbox plugin, then locally created back-up on hosting of your website will be deleted after upload to your Dropbox.
279
 
280
+ = How can I backup many websites? =
281
 
282
  Manage of multiple back ups is possible from your account on webpage-backup.com
283
 
284
+ = Is it possible to migrate using this tool? =
 
 
 
 
285
 
286
+ Yes. If you have a back up, created with our Dropbox Backup and Restore plugin, then you can use it for migration or doing some clone to another place (server / web hosting). Also you can migrate your website locally. If you have a local back up, then you can download it to your PC, upload to another place and make recovery there.
287
 
288
+ = I cannot find my back up at my Dropbox. Why? How can I find them? =
289
 
290
+ We would recommend to check your app key and app secret, that you used for dropbox connection before launching the backuping task.
 
 
 
 
291
 
292
  = How to do a recovery of my website? =
293
 
294
+ Dropbox Backup and Restore plugin work autonomously.
 
 
 
 
295
 
296
+ = I want to create reserve copies of my webpage automatically on particular days and time. How can I schedule this process? =
297
 
298
+ It is possible to plan back ups either from www.webpage-backup.com or from the pro plugin version.
 
299
 
300
+ = Should I register for webpage backuping? =
301
 
302
+ Our plugin is completely autonomous, so you don't need to register, you can do it just from plugin main page at your wp panel.
303
 
304
+ = Is it possible to duplicate my website like Duplicator Plugin does that? =
305
 
306
+ Yes, you can do it and even simplier as Duplicator.<br />
307
+ If you want to duplicate your website, you should backup it first at some storage (for example Dropbox or Amazon, or just on your FTP). Once it is successful, you can precees with duplication process. If isn't , don't try to duplicate, because wrong or incorrect backup can crash your website during the process.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
308
 
309
  = Duplicate and clone is the same thing? =
310
 
311
+ These notions have one meaning and used to name the process of website coping.
 
 
312
 
313
+ = What can make your "duplicate" plugin, which doesn't make another (e.g. Duplicator plugin)? =
 
 
314
 
315
  Duplicating is a very complex process. We will explain the website duplicate in the next our explanations about "duplicate website".
316
 
317
  = Is it possible to make an Incremental Backup with Dropbox Backup & Restore plugin? =
318
 
319
+ This feature is expecting by many users, as it can help solve many problems for the implementation of the backup in complex systems. Create an incremental backup, that's what we're working at and this option will be available in one of the next plugin updates.<br /><br />
320
  (PS: Autor german language)<br />
321
  Inkrementelle Sicherung (Incremental backup) erwarten viele unser Nutzer. Inkrementelle Sicherung (Incremental backup) kann helfen viele Probleme für die Durchführung der Sicherung in komplexen Systemen zu lösen. Erstellung eines inkrementelles Backup, das ist, was wir eben noch planen zu implementieren in der Dropbox Backup & Restore Plugin. In den Zukünftigen Versionen wird es auch möglich, inkrementelle Backups zu erstellen.<br /><br />
322
 
323
+ = How to create MySQL backup? =
 
 
324
 
325
+ Free version of this plugin does not support just separate MySQL backuping (database backup) same as a separate filesystem back-up. You can realize this task with a file system or just use premium version of our plugin or from control panel at http://www.webpage-backup.com<br />
 
326
 
327
+ = We want to make an SCP Backup from our rackspace. For this operation we would like to use your Dropbox plugin. =
328
 
329
+ Please, wait for some newer versions of this plugin, and we will implement the option of an scp backup for you.
330
 
331
+ = What do I need to do? Local Backup wasn't created: There is not enough memory to perform archiving of big files and continue this operation, please increase the PHP variable memory_limit. =
332
 
333
  There are two ways to solve your problem:<br />
334
 
342
 
343
  = FTP Backup? =
344
 
345
+ Possible to make at http://www.webpage-backup.com online service.
 
 
 
 
346
 
347
+ = Is Backup & Restore Dropbox plugin really free? =
348
 
349
+ Yes, originally the plugin is free and provides inlimited tasks.
350
 
351
+ = Does his dropbox plugin back up site templates? =
352
 
353
+ As soon as the plugin creates FULL copy of the site, it includes all data - templates, plugins, content, articles, videos, images, etc.
354
 
355
+ = I try to create a dropbox backup. I enter the app key and app secret. Then I was asked for permission to access dropbox, so I hit "allow" and then I'm given an "Internal server error".<br /> What is causing this and how can I fix it? =
356
 
357
  Please, just wait for some time and try again later.<br />
358
+ We know this issue about "Internal Server Error" comes from the Dropbox servers. There is only one way is to be patient and give it another try.
359
  We cannot recommended you more, than just had to wait it out and problem went away after a while.
360
 
361
  = I want to move my website to the new hosting/server. How can I do this? =
362
 
363
+ Migration feature is available in Dropbox Full Backup PRO version.
364
 
365
+ = My website has very BIG files, like photos, videos and so on. During the creation of reserve copy it's return this message "Maximum execution time of XXX seconds exceeded" and sometimes some other messages while uploading to dropbox. I've tried to do my backups with some of known WordPress plugins like "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress" but it's all without success. Can you please advise me after all these failures, why I have to trust in "Dropbox Backup & Restore" plugin? =
366
 
367
+ There might be the problem not only in plugins"BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress", "Dropbox backup & restore" plugin but with your hosting configurations, namely resources which the hosting gives you<br />
 
368
 
 
 
 
369
 
370
+ = Why I cannot create local backup? =
371
+ There are many reasons for the failure. For example, it is necessary to check if you have enough free space at your hard drive (hosting contingent). Secondly, check if your access permissions for script running, file or folder creation are not limited.<br />
372
+ If you've corrected these problems and still can't make a local back up - please, contact www.webpage-backup.com support.
373
 
374
+ = Hi, I made a Local Backup and it created 23 zip files, 1 MD5 file and 1 SQL file. How I can validate that the process ended successfully and the files will work in the future for restore? =
375
+ At the end of successfully created backup you will receive a results message like "successful" .MD5 file will be created that is the main indicator that the process was finished successfully.
 
376
 
377
+ = I have been using your free version of Dropbox Backup without problem. I just paid for the Pro version and downloaded the files to my computer. What do I do now to activate the Pro version on my WP site and automate dropbox back ups? =
378
+ The PRO version of plugin was activated during the payment process, so if you already downloaded the PRO version it's already activated. Just upload zip.file with the plugin to your wp admin panel.
379
+ To automate backup to Dropbox, open Settings box withing the plugin main page and find the setting "Scheduler", turn it on, specify how frequently you want to create web copies and save your changes.
380
+
381
+ = Getting this message: "Dropbox Backup wasn't created. Website "XXXXXXXX" returned an error during file creation: Failed to create file, please check the permissions on the folder "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup". Please can you advise? =
382
+ For an appropariate plugin work and successful perform of all tasks, there should be created plugin folder with this path on you website hosting or website server "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup"<br />
383
+ AND this folder should have correct access permissions, that is in most cases 755 rights.<br />
384
  You can check this permissions using some FTP client like "WinSCP" or "FileZilla". You can google and download this software. This program is free of charge.<br />
385
+ If you have any difficulties, our support team can do it for you, but in this way you'll need send FTP access credentials of your website to our support.
386
 
387
+ = I have tried several times to perform a Dropbox backup of my wordpress site. It says that it has been performed, however it shows 0 even after being refreshed. The Dropbox folder is showing no items in it. What am I missing to do? =
388
+ 1. One of the possible thing you can try to do is to refresh your web browser cache using the combinations of keys - Ctrl+F5.<br />
389
 
390
  = I've been trying to back up a site and I just noticed that it stopped progressing about an hour ago at this line: yyyy-mm-dd xx:xx:xx Add a table "wp_tablexxx" in the database dump. Any idea what happened? =
391
+ By default the plugin does an automatic database optimization before any task, <br />however if you have any broken table in your database <br /> then you can tick the option to repair the database before lanching the process.<br />
 
392
 
393
  = Hallo, ich habe eben versucht über Ihre Webseite ein Backup in meine Dropbox zum machen - es wurde aber nicht ausgeführt. Das Geld wurde aber von meinem Guthaben bereits abgebucht. Im Scheduler stand auch "WAITING" und dann "PERFORMED" aber die Dropbox ist noch leer. Bitte um Hilfe. =
394
 
401
  *oder*<br />
402
  geben uns den FTP Zugriff von Ihrer Website, damit wir versuchen Ihnen zu helfen.<br />
403
 
 
 
 
 
404
  = Seems to be missing something: PHP Extensions sockets, ftp Not Found Functionality are not guaranteed. =
405
+ Yes, to create backup successfully you'll need such PHP extensions like Sockets or Curl, otherwise we can't guaranteed successful functionality of the tool.
406
 
407
+ = I've moved my website to the new hosting provider. Where can I find my PHP Extensions like sockets, ftp or curl to do a back up? Because the Dropbox plugin says me, that functionality for Dropbox back up and restoration plugin can't guaranteed... =
408
+ You can activate PHP Extensions on you cPanel or Plesk at your hosting administration panel.
409
  **If you use cPanel,** <br />
410
+ login at cPanel and scroll down to "Software and Services" or "Advanced" block and open "PHP configuration" or "PHP PEAR packages".<br />
411
  Check on the corresponding checkboxes to your php extensions, that you want activate.<br />
412
  Save the PHP configuration by clicking the button on bottom (in most cases on the bottom) of this page.<br />
413
  **If you use Plesk dashboard or Plesk (Version 12) administration panel,** <br />
414
  Login to Plesk and in main menu open "Tools & Settings" > "PHP Settings" > *any PHP 5.6 handler*<br />
415
  Clear the checkbox, to have the PHP extension appear on the customers "phpinfo" pages, and click "OK". Wait for the changes in list with PHP extensions to be applied, then select the checkbox and apply the changes once again.<br />
416
 
417
+ = I want to optimize my MySQL database before launching the back up process. How can I do that? =
418
+ The feature "Database optimization" is set by default in plugin settings. If you hasn't changed this configuration, then every time, as you doing backup, the database will be optimized automatically.
419
 
420
  = Once I tried to conduct a Dropbox backup I received this error - Dropbox Backup wasn't created. Dropbox returned an error during file sending: "Invalid OAuth1 token." =
421
  Please, reconnect to Dropbox, by clicking "Connect to Dropbox" button, in the "Settings" on plugin page of your website. <br />
422
 
423
 
424
+ = How much time does it take to create a backup of my website? =
425
+ There are many hardware and server dependences. Approximately the average time for website takes up to 360 seconds for 50 Mb website.
426
 
427
  = What does it cost to backup my website? =
 
428
 
429
+ Backups are free if you make them from standalone plugin version.
430
+
431
+ = After installing and trying to run a backup... my website fails to load... Can you please help me? =
432
+ <strong>The current plugin doesn't make any changes neither in your WordPress nor in its configuration.</strong> It does only archive of your files and copy this archive in local folder or dropbox folder without to make some changes.<br />
433
  Please, open a support ticket and we will try to help you.
434
 
435
+ = Can I close dropbox plugin page in my WordPress during back up procedre of my website? =
436
+ Yes, you can close dropbox plugin page in your WordPress website, as the backup will be created during the cron task of WordPress and the whole process will be executed in background.
437
 
438
+ = How can I clone my WordPress? I can't find this feature in your tool. =
439
+ Cloning feature is available only in Dropbox Full Backup PRO version.
440
+ Moreover, with some tricky steps you can clone your WordPress to the new place. Try to rename your domain backup folder on Dropbox and use the same Dropbox App key and App secret to get this backup folder on your new WordPress place. After restoring on new folder or hosting - it will give you new cloned WordPress.
441
 
442
 
443
  == Changelog ==
446
 
447
  **Rev.**&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;**Description** <br />
448
 
449
+ Bugs and syntax fixing for Version 1.6.2
450
+
451
+ Dropbox backup and restore plugin was successfully tested on WordPress 4.9.7<br />
452
 
453
  @1506575&nbsp;&nbsp;&nbsp;&nbsp;New version 1.4.7.3 with full update of Dropbox backup and restore plugin.<br />
454
  @1506495&nbsp;&nbsp;&nbsp;&nbsp;WordPress backup plugin Dropbox backup & restore, added "exclude/include" files and folder window. Bug fixes.<br />