WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#76 08.01.2022 18:43:33

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Ja, das ist ein Problem, einen Port im Dateinamen ist nicht möglich, das gibt es ja nur bei einer URL

Offline

#77 08.01.2022 20:33:53

berny
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Könnte man den : zu einem _ übersetzen?
Betrifft anscheinend eh nur den Dateinamen...

Prinzipiell nicht schlimm, aber doch eine Eventualität....

Offline

#78 09.01.2022 18:28:42

berny
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Hab jetzt mal in der init.php zeile 65 folgendes hinzugefügt:

// replace von : in filenames
$host = str_replace(":", "..", $host);
	

Macht aus einen : einen .. was funktionieren sollte.
aber trotzdem haut es noch nicht wirklich hin.
Komm in den nächsten Tagen aufgrund einer OP aber nicht dazu....
aber noch passt etwas anderes nicht,

Offline

#79 11.01.2022 19:20:52

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Hallo berny,

scheinbar verstehe ich das Problem nicht.
Habe in der config.php den Eintrag

define('WB_URL', 'https://wbce.loc:443');

gemacht.

Dann alle erstellten Seiten gesichert, läuft ohne Fehler durch.

Was muss ich tun, um den Fehler zu produzieren, gib mir bitte weitere Informationen

Offline

#80 11.01.2022 21:08:04

berny
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Wie heisst deine Backup-Datei?

ev liegt es gar nicht am :

Offline

#81 16.01.2022 10:36:50

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Die Datei sieht so aus:

wbce.loc_2022-01-11-1641921334-p-ZNRNNg.zip

also Domain ("$_SERVER['HTTP_HOST']"), Datum, Uhrzeit, Typ, Random Token und dann zip, sql und log

Allerdings habe ich gesehen, dass in der URL Zeile des Browsers das ":443" fehlt.
Vielleicht teste ich falsch. Ist bei dir in der URL der Port zu sehen?

Im Anhang findest du eine Version zum Test, wo ein Doppelpunkt durch einen Unterstrich ersetzt wird.
Sag Bescheid, ob das funktioniert.

Last edited by mastermind (16.01.2022 10:54:02)

Offline

#82 16.01.2022 12:34:48

colinax
Administrator

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

mastermind wrote:
define('WB_URL', 'https://wbce.loc:443');
mastermind wrote:

Allerdings habe ich gesehen, dass in der URL Zeile des Browsers das ":443" fehlt.
Vielleicht teste ich falsch. Ist bei dir in der URL der Port zu sehen?

Hallo mastermind,

ja in diesem Fall wird die Port Kompatibilität falsch getestet.

Wenn man Standardports wie 443 oder 80 angibt, wird das als Umleitung zu dem jeweiligen Protokoll erkannt und aus geführt.
Bei der URL oberhalb wird dass 443 einfach gelöscht, da du bereits auf https bist.

Verwende als Port

define('WB_URL', 'https://wbce.loc:10443');

und packe auf 443 etwas anderes hin, damit du sehen kannst ob es auch richtig funktioniert.

Wenn nur der Port verändert wird und im Standardport nichts vorhanden ist, kann es je nach config und verwendete Systeme vorkommen dass ein redirect false positive Ergebnisse erzeugt

Last edited by colinax (16.01.2022 12:36:51)

Offline

#83 17.01.2022 13:46:54

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Danke für den Tipp.

Sehe jetzt tatsächlich auch den geänderten Port im Browser.
Habe damit das Backup getestet und mit der Version 2.7.1 funktioniert es ohne Probleme.

Die Datei sieht jetzt so aus:

wbce.loc_999_2022-01-17-1642419678-f-Smszup.zip

also Domain ("$_SERVER['HTTP_HOST']"), wenn vorhanden: Portnummer,
Datum, Uhrzeit, Typ, Random Token und dann zip, sql und log

Last edited by mastermind (19.01.2022 09:46:34)

Offline

Liked by:

berny

#84 01.02.2022 12:30:32

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Bitte die Version 2.7.1 von backup_plus ins AOR stellen.

DANKE

Offline

#85 01.02.2022 13:46:10

florian
Administrator

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

done

Offline

#86 18.02.2022 23:55:45

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Ich habe heute einen unangenehmen Fehler in BackupPlus entdeckt.

Auf unsere Seite gibt es ein Verzeichnis /media/blog. Und das wird nicht mitgesichert. Ups.

Und da der Restore kein komplett lauffähiges System ergab, nehme ich an, dass noch mehr Verzeichnisse nicht gesichert wurden.

Ursache sind die excludes aus backup_settings.php:

[== PHP ==]
// -------------------- Excludes for backup type FULL ----------------------------
// Specify directories you do NOT want in the backup as an array for backup type "full"
$ignoreFullDirs = array('backups', 'owncloud','nextcloud','logs','log','cgi-bin');

In backup.php werden diese Excludes nicht sauber geprüft, so dass z.B. das Verzeichnis blog als log erkannt und ausgeschlossen wird.

Hier der relevante Ausschnitt aus backup.php.

Der Teil 'wbce' ist noch unverändert, den Teil 'full' habe ich korrigiert.
Da ich mich erst seit ein paar Tagen mit PHP beschäftige, mag es auch eine schönere Lösung geben.

Ein paar Kommentare sind direkt im Code.

[== PHP ==]
                // Skip ignored directories if "wbce" backup
                if ($_GET['type'] == 'wbce') {
                        foreach ($ignoreWbceDirs as $exclude) {
                                $exclude = $exclude.DIRECTORY_SEPARATOR;
                                if (strpos($rootpath, $exclude) !== false || $rootpath == $exclude) {
                                        $continue = true;
                                        break;
                                }
                        }
                        if ($continue) continue;
                }

                // Skip ignored directories if "full" backup
                if ($_GET['type'] == 'full') {
                        foreach ($ignoreFullDirs as $exclude) {
                                // make sure to exclude full directory name only and not parts of it as well!
                                // (since it should run with PHP 7 too, we can't use str_starts_with())
                                // (perhaps preg_match() would fit here...)
                                //
                                // 1.) dir/ as first part of path
                                // 2.) /dir/ somewhere in path (note leading slash)
                                // 3.) but what is that 3rd thing for? 

                                if (strpos($rootpath, $exclude.DIRECTORY_SEPARATOR) === 0 ||
                                    strpos($rootpath, DIRECTORY_SEPARATOR.$exclude.DIRECTORY_SEPARATOR) !== false ||
                                    $rootpath == $exclude) {
                                        $continue = true;
                                        break;
                                }
                        }
                        if ($continue) continue;
                }

Last edited by chriz (19.02.2022 00:07:41)

Offline

Liked by:

berny

#87 19.02.2022 09:08:50

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Nachtrag:

Die Excludes sollten vielleicht besser nicht im kompletten Pfad gesucht werden.
Es kann immer Verzeichnisse geben, die vom Namen her zutreffen, aber nicht ausgeschlossen werden sollten.

Ich würde die Excludes rooten. Bei Typ 'wbce' am WB_PATH. Also nicht "backups" sondern "/backups".
Mit entsprechender Anpassung an $rootpath natürlich.

Und die Namen jeweils excludeten Dateien sollten m.M.n ins Backup-Log geschrieben werden.

Übrigens war meine Vermutung richtig: es waren wohl andere wichtige Dateien/Verzeichnisse nicht im Backup, z.B.
modules/ckeditor/ckeditor/plugins/dialog/... - weil es auf log/ passte.

Und das war einer der Gründe, warum die restore-te Installation nicht richtig funktionierte.

Last edited by chriz (19.02.2022 09:44:42)

Offline

Liked by:

berny

#88 19.02.2022 11:19:22

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Hier mein Zwischenstand der backup.php.

Folgende Änderungen sind drin:

* oben genanntes ungenaue Ermitteln der exclude-Verzeichnisse korrigiert (aber weiterhin im gesamten $rootpath)
* Log-Ausgaben etwas ergänzt
* einige Tippfehler beseitigt
* Hinweis auf ähnliche Problematik bei $includes eingefügt, aber noch nichts geändert

Bei dem Full-Backup habe ich bemerkt, dass es (logischerweise) auf die Nase fällt,
wenn der WBCE-Datenbanknutzer nicht auch die Rechte an den möglicherweise anderen Datenbanken in dieser DB-Instanz hat.
Vielleicht wäre ein Hinweis darauf auf der BackupPlus Admin-Seite ganz sinnvoll.

Angehängt mein aktuelles backup.php und ein diff gegen Version 2.7.1.

Offline

#89 19.02.2022 19:13:43

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Und mir ist aufgefallen, dass leere Verzeichnisse nicht gesichert werden.

Beispiele:

  • ./modules/backup_plus/pages

  • ./modules/miniform/defaults

  • ./temp/opf_plugins

  • ./templates/adventurestrap-wbce/assets

  • ./var/modules/elfinder/.quarantine

  • ./git/plesk-git

Meiner Meinung nach sollte das aber geschehen.
Ansonsten fällt ein aus einem Restore entstandenes System möglicherweise später auf die Nase, weil ein erwartetes Verzeichnis nicht (mehr) existiert.

Zumindest sollte es aber im Log stehen.

Offline

#90 21.02.2022 10:44:03

florian
Administrator

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Danke für das Testen und den Bugfix. Mir war das zwar auch aufgefallen, dass bei per Backup gesicherten und andernorts hochgeladenen Seiten der CKEditor nicht funktionierte, ich hatte da aber immer Übetragungsfehler aufgrund der zigtausend Einzeldateien des CKEs als Ursache vermutet...
Dass leere Verzeichnisse nicht gesichert werden, ist mMn nicht so schlimm (ein Modul sollte, falls es das Verzeichnis benötigt, es selbst anlegen können, und ansonsten wüsste ich nicht, wozu leere Verzeichnisse noch gut sein könnten).

Last edited by florian (21.02.2022 10:44:45)

Offline

#91 22.02.2022 09:55:45

florian
Administrator

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Hier die Version 2.7.2 mit der geänderten backup.php von chriz zum Testen.

Offline

#92 12.03.2022 19:33:55

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Habe mir das noch mal angesehen, vielen Dank für die fundierte Analyse.

Im Anhang die neue Version zum Test mit den Änderungen, die bei mir funktionieren (unter Windows und Linux).
Die gemachten Änderungen stehen in der info.php

Last edited by mastermind (14.03.2022 13:26:26)

Offline

#93 13.03.2022 11:13:26

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Beim Testen der 2.80 sind mir noch Problemfälle aufgefallen, die auch in 2.7x stecken.
Ich melde mich im Laufe des Tages mit Details oder auch schon Lösungen...

Offline

#94 13.03.2022 13:00:49

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

So, hier meine Ergebnisse:

1.) Mindestens seit 2.7x läuft eine Gesamtsicherung (full) auf schwer erkennbare Fehler, wenn irgendeine Datei nicht lesbar ist (z.B. wegen fehlender Rechte). Das kann natürlich leicht passieren bei einer über evtl. mehrere Installationen gehenden Sicherung. Aber die Sicherung sollte nicht abbrechen!
Ich habe jetzt eingefügt:

if (is_readable($file)) {}

2.) Entsprechend konnte es bei einer abgebrochenen Sicherung passieren, dass das Aufräumen auf einen "Internal Server Error 500" lief, wenn in list.php das temporäre zipfile inklusive des SQL-Files gelöscht wurde. Und zwar wenn das SQL-File (noch) nicht (mehr) existierte. Das habe ich abgefangen durch ein

if (file_exists($sqlfile)) {}

3.) Vermutlich um meinen Vorschlag bzgl. des Sicherns leerer Verzeichnisse zu ermöglichen, fehlte in 2.80 die Abfrage

if (is_file($file)) {}

Das klappt aber so nicht. Die PHP zip-Funktion kann keine Verzeichnisse einpacken und bricht mit Fehler ab, wenn ein Verzeichnis ankommt.
Also habe ich es wieder auf Dateien beschränkt...
Ein Workaround wäre es, in leeren Verzeichnissen z.B. eine Datei ".empty" anzulegen und die zu packen. Aber toll ist das nicht.

4.) Minimale Textanpassungen für's Log.

Meine angepassten backup.php und list.php sind zusammen mit diffs hier angehängt.

Last edited by chriz (13.03.2022 13:26:58)

Offline

#95 13.03.2022 14:13:48

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Hallo Chis,
zu 1: kann ich verstehen, wenn man nicht komplette Rechte hat

zu 2: OK

zu 3: die Abfrage habe ich bewusst entfernt, weil ich die Zeile 107 geändert habe von

$files = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);

in

$files = new RecursiveIteratorIterator($iterator);

damit kommt kein Verzeichnis in der Schleife an, sondern nur Dateien.
Das funktioniert bei mir im Test mit leeren Verzeichnissen

Last edited by mastermind (13.03.2022 14:54:36)

Offline

#96 13.03.2022 14:58:52

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

mastermind wrote:

zu 3: die Abfrage habe ich bewusst entfernt, weil ich die Zeile 107 geändert habe  [...]

$files = new RecursiveIteratorIterator($iterator);

damit kommt kein Verzeichnis in der Schleife an, sondern nur Dateien.
Das funktioniert bei mir im Test mit leeren Verzeichnissen

Hmmm, dann teste ich noch etwas weiter, warum das bei mir hakte...

Edit:

Das ging fix: Ich habe in /var/www/html/ einen Link

phpmyadmin -> /usr/share/phpmyadmin

Und der lässt das Full-Backup abbrechen.
Dateien werden korrekt bearbeitet, Verzeichnisse korrekt ignoriert, aber Links rutschen durch die Prüfungen.

Last edited by chriz (13.03.2022 15:47:46)

Offline

#97 13.03.2022 20:11:15

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Löst die Abfrage

if (is_file($file)) {}

das Problem oder sollte man irgendwelche Datei-suffixe abfragen?

Last edited by mastermind (13.03.2022 20:12:03)

Offline

#98 13.03.2022 21:31:18

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

mastermind wrote:

Löst die Abfrage

if (is_file($file)) {}

das Problem oder sollte man irgendwelche Datei-suffixe abfragen?

Ja, das ursprüngliche is_file(), so wie ich es auch in #94 wieder drin hatte, scheint zu genügen.
Das verlinkte Verzeichnis läuft dann nicht auf Fehler, es scheint übersprungen zu werden.

Mir ist allerdings noch nicht ganz klar, was RecursiveIteratorIterator($iterator) genau so treibt, insbesondere mit Links...

Also insofern müsste man überlegen, ob die Sicherung Links folgen soll oder besser nicht. (Und das dann irgendwo erwähnen.)

Übrigens:

Folgende Aussage im Dialog von Backup_Plus ist (mir) unklar

backup_plus wrote:

Dateien, die mit einem Punkt beginnen, werden NICHT gesichert!

($iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);)

In meinen ZIPs sind zumindest einige dotfiles drin. Zum Glück!!! (.git usw.)

Edit: 
Bezieht sich SKIP_DOTS nicht eigentlich nur auf die beiden Verzeichnisse "." und ".."?

Last edited by chriz (13.03.2022 21:50:45)

Offline

#99 14.03.2022 08:12:37

chriz
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Hier mein aktueller Stand (nur die geänderten Dateien).

Das is_file() habe ich etwas verändert, auch für Logging.

Die Log-Ausgaben sind noch etwas angepasst/erweitert, deshalb auch Änderungen in tool.php, backup_settings und languages.


Edit:

Sorry, noch eine Änderung. Nun Version "c3". Hinweise auf Verhalten bei Links ergänzt/verbessert.
Links auf Verzeichnisse werden ignoriert, Links auf Dateien wird aber gefolgt!!!!!??

Und eine Frage: Habt ihr eigentlich ein Git- oder Mercurial-Repository für Backup-Plus?

Last edited by chriz (14.03.2022 09:25:45)

Offline

#100 14.03.2022 13:25:29

mastermind
Member

Re: Modul "Backup Plus" bitte testen - Please try it: Modul "Backup Plus"

Habe die Änderungen in die Version 2.8.0 übernommen, vielen Dank.

Der Text "Dateien, die mit einem Punkt beginnen, werden NICHT gesichert!" ist natürlich falsch, habe nicht aufgepasst.
Muß natürlich heissen: "Verzeichnisse die mit einem Punkt beginnen, werden NICHT gesichert!" (z.B. habe ich im root ein Verzeichnis ".vscode").
Der Text ist jetzt wieder entfernt.

Es gibt das WBCE Addon Repository, dort werden die aktuellen Versionen von florian eingestellt.

Offline

Board footer

up