[phpBB3.2.x] Mysqldumper für PHP7

Hier gibt es diverse phpBB 3.2.x Tools zum Download.
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[phpBB3.2.x] Mysqldumper für PHP7

Beitrag von Mahony »

Hallo

Hier gibt es die Entwicklerversion des beliebten Mysqldumper - Tools für PHP7.

Github Downlad-Link Mysqldumper <-- dort bitte auf Clone or download klicken und dann Download ZIP auswählen.




ACHTUNG: In der Version auf Github, gibt es noch einen Fehler wenn man im SQL-Browser auf Tools klickt und dann auf "Tabellen überprüfen".
Es erscheinen dann die folgenden Fehlermeldungen:

Code: Alles auswählen

Warning: A non-numeric value encountered in /www/xxx/mysqldumper/inc/home/databases.php on line 140

Warning: A non-numeric value encountered in /www/xxx/mysqldumper/inc/home/databases.php on line 141
Ich habe den Fehler nun behoben und stelle hier die korrigierte Mysqldumper-Version zur Verfügung.

ACHTUNG: Diese Version des Mysqldumpers funktioniert definitiv bis zur PHP-Version 7.2
Ich werde im nächsten Jahr (2021) wohl eine PHP7.4 kompatible Version veröffentlichen, und diese dann auch hier zum Download bereit stellen.



Mysqldumper.zip
(655 KiB) 2311-mal heruntergeladen
Mysqldumper.zip
(655 KiB) 2311-mal heruntergeladen


Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[phpBB3.2.x] Crondump-Einstellungen für das Perlscript

Beitrag von Mahony »

Hallo Freunde des Mysqldumpers

Da das Forum von Daniel Schlichtholz (dem Programmierer des Mysqldumpers) nun leider nicht mehr online ist, und daher leider auch einige Tutorials, stelle ich hier mal das Tutorial (aus dem nicht mehr erreichbaren Forum) zur korrekten Konfiguration des Perl Cronscripts zur Verfügung.

Erklärung wofür man das Perl Cronscript benötigt: Das Perl Cronscript wird benötigt, um automatisierte Backups per Cronjob anfertigen zu können.

...und los geht es mit dem Tutorial

Crondump-Einstellungen für das Perlscript

Grundvorraussetzung ist natürlich, dass Perl von Deinem Webspace auch verstanden und ausgeführt wird. Ob die Ausführung eigener Perlscripte im Lieferumfang Deines Hosting-Vertrages liegt, musst Du selbst wissen oder Deinen Hoster fragen.
Wenn Du beim Ausführen der Perldateien einen Download angeboten bekommst oder Du den Quelltext siehst, dann wird Perl definitiv nicht ausgeführt. Erkundige Dich dann bei Deinem Hoster, ob und wie Du in den Genuß von Perl kommen kannst.

config.gif
config.gif (37.51 KiB) 42897 mal betrachtet
config.gif
config.gif (37.51 KiB) 42897 mal betrachtet

Dateiendung des Scripts: Hier wird festgelegt, welche Endungen die Perlskripte haben. Im Auslieferungszustand ist diese "pl".
Manche Provider lassen aber nur Skripte mit der Endung "cgi" zu. In diesem Fall müssen die Perlskripte manuell umbenannt werden. Damit der Mysqldumper ( MSD ) weiß, wie die Skripte heißen und man diese aus der Web-Oberfläche heraus starten kann, muss die richtige Endung hier eingestellt werden.

Pfad der Perlskripte: Im Auslieferungszustand ist dies der Unterordner msd_cron. Erlaubt sind absolute und relative Pfadangaben, d.h.: fängt der Pfad mit / an, ist es eine absolute Pfadangabe, die vom Web-Root ausgehend ist. Fängt der Pfad direkt mit einem Namen an, so ist dies eine relative Pfadangabe und bezieht sich auf Unterordner des Mysqldumper ( MSD ) Hauptverzeichnisses. Darfst Du Perlskripte nur in einem eigenen cgi-bin-Ordner ausführen, der oberhalb des Web-Roots liegt, dann wäre die richtige Adressierung des Ordners "./../../cgi-bin/".
Lese auch den unteren Artikel über die Grundvoraussetzungen.

Textausgabe: Wenn diese ausgeschaltet ist, sendet das perlskript keinerlei Textausgaben außer der Header-Anweisung, die Bedingung ist.
Manche Crons verweigern die Ausführung von Skripten mit Textausgabe.

Komplette Ausgabe loggen: Unabhängig von der Einstellung der Textausgabe wird hier bestimmt, ob alle Aktionen des Dumpers in ein ausführliches Logfile (complette_log) geschrieben werden sollen. Dieses kann man unter "Log/Complete-Perl Log" einsehen. Hier findet man ausführliche Informationen im Fehlerfall.

Datenbank: Hier wird vorgegeben, ob eine bestimmte Datenbank, alle Datenbanken oder gemäß den Multidump-Einstellungen mehrere, ausgewählte Datenbanken gesichert werden sollen.

Ob die erstellten Backups danach per E-Mail verschickt oder per FTP auf einen anderen Server übertragen werden, hängt von den Einstellungen im jeweiligen Bereich ab.



Zusatzinformationen zum lauffertigen Perlskript

Perlskripte müssen bestimmte Bedingungen erfüllen, damit sie laufen.

1. Perlskripte müssen immer im Ascii-Modus übertragen werden. Der Grund dafür sind die Zeilenumbrüche, die im UNIX-Format sein müssen. Editiert man die Skripte in einem Windowseditor, so werden i.d.R. Windows-Zeilenumbrüche geschrieben. Der Ascii-Transfermodus konvertiert diese Zeilenumbrüche ins UNIX-Format.
Hat man einen Editor, der die Dateien im UNIX-Format speichern kann, spielt der Transfermodus keine Rolle.

2. Perlskripte müssen den chmod-Wert 755 haben. Dies gilt auch für den Ordner, in dem sie sind.

3. Ist Perl auch außerhalb des cgi-bin erlaubt, kann man das Perlskript im Ordner msd_cron lassen, ansonsten muss man die Skripte ins cgi-bin kopieren (dies gilt für die meisten Serverkonfigurationen)

Um das Perlskript lauffähig zu machen, geht wie folgt vor:

1. Rufe den Mysqldumper ( MSD ) im Browser auf
2. Wähle im Menü "Backup" und klicke auf Backup Perl.
3. kopiere die Pfadangabe hinter "Eintrag in crondump.pl für absolute_path_of_configdir"
4. öffne das Skript crondump.pl im Editor.
5. Suche die Zeile my $absolute_path_of_configdir="";
6. Setze den Cursor zwischen die "" und füge den kopierten Pfad ein.
7. Speicher
8. Kopiere das Skript sowie die beiden Testskripts per Ascii-Modus ins cgi-bin-Verzeichnis
9. Änder den chmod aller Skripte auf 755
10. Trage im Mysqldumper ( MSD ) unter Konfiguration / Cronskript unter "Pfad der Perlskripte" ein: /cgi-bin/
11. Gehe auf die Backupseite.
12. Prüfe die Lauffähigkeit mit "Perl testen" - es sollte funktionieren.

Sollte es nicht gehen, stimmen die Voraussetzungen nicht.
Eine fehlerhafte Konfiguration erkennt ihr am 500er-Fehler.
Wenn der Browser die Skripte zum Download anbietet oder den Quelltext anzeigt, so läuft kein Perl in dem besagtem Verzeichnis.
Das cgi-bin-Verzeichnis muss ebenfalls chmod 755 haben.

Falls alles nicht hilft, müsst Ihr Euch an den Provider wenden.

Zusatz: Einige Provider belegen Perlskripte ebenfalls mit einem Timeout nach x sek. Wenn das Perlskript mittendrin abbricht, ist dieses Timeout erreicht. Im Perllogfile (complete_log) muss als letzte Zeile "#EOS" stehen (End of Script). Fehlt diese Angabe und die letzten Einträge sind Punkte, so ist es aufgrund dieser Zeitbegrenzung abgebrochen worden.




Der Weg zum automatisierten Cronjob

Nichts liegt näher als das Perlskript zu automatisieren, d.h. es in bestimmten Zeitintervallen aufzurufen.
Dieses kann das Skript nicht leisten, es wird vom Server vom sogenannten Cron erledigt. Dies ist ein kleines Programm, das Jobs nach bestimmten Regeln aufruft.

Wer Cronjobs auf seinem Server einrichten kann, der kann das Perlskript in die Crontab eintragen. Hierfür gibt es mehrere Möglichkeiten:

1. Über Oberflächen wie Webmin, Confixx, ... - dort ist der Eintrag leicht
2. über die Konsole: crontab -e
Dazu muss man das Format der Einträge kennen. Das Format lautet:
Minute(n) Stunde(n) Tag(e) Monat(e) Wochentag(e) Kommando(s)

Soll das Skript z.B. morgens um 5 Uhr ausgeführt werden, lautet der Eintrag
0 5 * * * Kommando
Braucht man mehrere Aufrufe, z.B. Aufruf alle 10 min., geht das so:
0,10,20,30,40,50 * * * * Kommando

Ist der Cronjob auf dem gleichen Server, so lautet das Kommando:

entweder, wenn cgi-bin auf diesem Server als Alias konfiguriert ist:
perl /pfad_zum_webroot/cgi-bin/crondump.pl config=mysqldumper.conf

oder
perl /pfad_zu_mysqldumper/msd_cron/crondump.pl config=mysqldumper.conf

Wer keinen Cronjob einrichten kann, der kann sich an externe Cronjobanbieter wenden. Hier muss man das Kommando wie im Browser angeben:

Code: Alles auswählen

http://www.meinedomain.de/cgi-bin/crondump.pl?config=mysqldumper.conf
Edit DSB:
Da immer wieder danach gefragt wird -> es gibt keine zuverlässige PHP-Alternative für das Automatisieren des Backups durch Aufruf einer PHP-Datei (Timeout-Problematik). Einige wollen besonders "clever" sein und rufen trotz unserer Erklärungen per Cronjob die Datei dump.php auf. Ein Cronjob ist kein Browser und so werden die Selbstaufrufe, welche durch Javascript realisiert sind, nicht ausgeführt, da dies normalerweise im Browser passiert. Das geht natürlich in die Hose und liefert keinesfalls ein vollständiges Backup!
Klipp und klar: kein Perl = keine Automatisierung des Backup-Vorgangs durch einen Cronjob!


Emailversand mit MIME::Lite

Das Perl-Zusatzmodul Mime::Lite wird vom Crondump.pl-Script des MySQLDumpers benötigt, um die Backups oder Textnachrichten per E-Mail zu verschicken. Auch wenn der Versand aus der Web-GUI des Dumpers heraus funktioniert, kann es sein, dass dies im Perlskript nicht funktioniert. Perl und PHP sind 2 unterschiedliche Sprachen, die nichts mit einander zu tun haben.

Ob das Modul Mime::Lite auf dem Server installiert ist, kann man unter "Backup/Backup Perl/ Perl Module testen" in Erfahrung bringen.
Ist das Modul nicht installiert, so wird der E-Mail-Versand beim Aufruf des Perlskripts automatisch deaktiviert. Dies kann man unter "Log/Perl Complete Log" nachlesen.

Wer über den Perltest im MySQLDumper festgestellt hat, dass auf seinem Webspace kein Mime::Lite zur Verfügung steht, kann es selbst installieren.

Es gibt 2 Wege:
1.Man installiert es über cpan oder manuell in den Perl-Modules-Pfad. Das ist der sicherste Weg und es gibt keine Probleme.
2.Man kopiert es in den cgi-bin-Pfad (MIME/Lite.pm)

Bei der zweiten Lösung gibt es keine Probleme, wenn man das Script im Browser aufruft, da Mime::Lite immer im aktuellen Pfad mitgesucht und so auch gefunden wird.
Wird das Script aber über einen Cronjob aufgerufen, so ist der Pfad zu Mime::Lite nicht bekannt. Für diesen Fall kann man den Pfad händisch in der Datei crondump.pl angeben. Dafür gibt es die Zeilen

Code: Alles auswählen

my $absolute_path_of_configdir=""; 
my $cgibin_path=""; # this is needed for MIME::Lite if it is in cgi-bin 
my $default_configfile="mysqldumper.conf";
Die 2.Zeile ist die entscheidende! Dort muss man den Pfad des cgi-bin-Verzeichnisses eintragen (absoluter Pfad, mit "/cgi-bin" und ohne Slash und ohne den Unterordner MIME am Ende!).
Dieser wird dann dem Suchpfad hinzugefügt und es funktioniert.

Downloadlink von Mime::Lite: http://search.cpan.org/dist/MIME-Lite/ (direkter Download-Link >>> http://search.cpan.org:80/CPAN/authors/ ... 030.tar.gz ).

Oder direkt hier im Anhang, die Version MIME-Lite-3.030 als gz-Datei und als zip-Datei
MIME-Lite-3.030.tar.gz
(79.91 KiB) 1846-mal heruntergeladen
MIME-Lite-3.030.tar.gz
(79.91 KiB) 1846-mal heruntergeladen
MIME-Lite-3.030.zip
(88.83 KiB) 2252-mal heruntergeladen
MIME-Lite-3.030.zip
(88.83 KiB) 2252-mal heruntergeladen

Und hier eine schöne Übersicht von RPM-Paketen für die händische Installation: http://rpmfind.net/linux/rpm2html/searc ... -MIME-Lite

Noch ein Tipp von Hamlet für die Installation unter Debian:

Code: Alles auswählen

apt-get install libmime-lite-perl


Can't locate Email/Date/Format.pm

Nach einem Tipp von Draconknight
Draconknight hat geschrieben:Sollte folgende Fehlermeldung "Can't locate Email/Date/Format.pm ..." am Ende der Cronausführung stehen kann man sich das Modul Format.pm hier herunterladen: http://search.cpan.org/~rjbs/Email-Date ... /Format.pm . Hier einfach den Ordner EMail aus dem Verzeichnis lib hochladen in das Verzeichnis CGI-BIN. Dann sollte der Mailversand mit SMTP funktionieren
Für den Fall, dass ihr die Datei dort nicht findet, oder diese irgendwann mal entfernt wird, stelle ich diese mal hier zur Verfügung (als gz-Datei und als zip-Datei).

Email-Date-Format-1.002.tar.gz
(9.91 KiB) 1876-mal heruntergeladen
Email-Date-Format-1.002.tar.gz
(9.91 KiB) 1876-mal heruntergeladen
Email-Date-Format-1.002.zip
(11.3 KiB) 1871-mal heruntergeladen
Email-Date-Format-1.002.zip
(11.3 KiB) 1871-mal heruntergeladen

Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Benutzeravatar
Tastenplayer
Beiträge: 92
Registriert: 22. Jan 2017 12:03
Familienstand: Verheiratet
Wohnort: Schweiz
Hat sich bedankt: 1 Mal
Danksagung erhalten: 22 Mal

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von Tastenplayer »

Hallo Mahony

Beim Punkt Verzeichnisschutz erstellen Wird man ziemlich unsicher, was man wählen soll.

Code: Alles auswählen

Crypt maximal 8 Zeichen (Linux und Unix-Systeme)
	MD5 (Linux und Unix-Systeme)
	SHA1 (alle Systeme)
Soll man da jetzt besser SHA1 für alle Systeme wählen? Auf diesen Punkt wird leider in keiner Anleitung ausführlicherer darauf eingegangen. Klar ist nur, dass man für einen Linux Server den Punkt unverschlüsselt (Windows) nicht wählen darf.
Be the best version of yourself rather than a bad copy of someone else!
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von Mahony »

Hallo
Tastenplayer hat geschrieben: 17. Apr 2019 11:55 Auf diesen Punkt wird leider in keiner Anleitung ausführlicherer darauf eingegangen.
Weil das auch nicht nötig ist! Die Möglichkeiten stehen nämlich bereits da.
Crypt maximal 8 Zeichen (Linux und Unix-Systeme)
MD5 (Linux und Unix-Systeme)
SHA1 (alle Systeme)


Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Benutzeravatar
Tastenplayer
Beiträge: 92
Registriert: 22. Jan 2017 12:03
Familienstand: Verheiratet
Wohnort: Schweiz
Hat sich bedankt: 1 Mal
Danksagung erhalten: 22 Mal

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von Tastenplayer »

Mahony hat geschrieben: 18. Apr 2019 13:13 Weil das auch nicht nötig ist! Die Möglichkeiten stehen nämlich bereits da.
Ja sie stehen da, aber man weiss nicht, welches die sicherste Methode ist ;)
Ich habe jetzt "alle" gewählt, ich vermute jedoch, dass "Crypt" besser/sicherer gewesen wäre.
Be the best version of yourself rather than a bad copy of someone else!
danieljena
Beiträge: 2
Registriert: 17. Aug 2020 16:46
Hat sich bedankt: 0
Danksagung erhalten: 0

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von danieljena »

Hallo,
was kann man machen, wenn vom CronJob folgender Fehler ausgegeben wird:

[Mon Aug 17 14:45:18 2020] crondump.cgi: Deep recursion on subroutine "main::PrintOut" at /***/cgi-bin/crondump.cgi line 667.
[Mon Aug 17 14:45:18 2020] crondump.cgi: Deep recursion on subroutine "main::err_trap" at /***/cgi-bin/crondump.cgi line 721.
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von Mahony »

Hallo
danieljena hat geschrieben: 17. Aug 2020 16:48 was kann man machen, wenn vom CronJob folgender Fehler ausgegeben wird:

Code: Alles auswählen

[Mon Aug 17 14:45:18 2020] crondump.cgi: Deep recursion on subroutine "main::PrintOut" at /***/cgi-bin/crondump.cgi line 667.
[Mon Aug 17 14:45:18 2020] crondump.cgi: Deep recursion on subroutine "main::err_trap" at /***/cgi-bin/crondump.cgi line 721.
Das solltest du deinen Hoster fragen. Vermutlich ist Perl auf dem Server nicht korrekt konfiguriert worden.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
danieljena
Beiträge: 2
Registriert: 17. Aug 2020 16:46
Hat sich bedankt: 0
Danksagung erhalten: 0

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von danieljena »

Allerdings wissen sie nicht mehr weiter.
Ne Idee wo man ansetzen könnte?
HaioPaio
Beiträge: 4
Registriert: 6. Jun 2020 17:45
Familienstand: Verheiratet
Hat sich bedankt: 1 Mal
Danksagung erhalten: 0

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von HaioPaio »

Hallo Mahony
Es gibt ja nun den OOS-Dumper in der Version 504, die auch SFTP unterstützt.
Leider ist im mitgelieferten Perlscript das ich im Cronjob verwende kein Aufruf für SFTP enthalten.
Für SFTP muss ich die Sicherung manuell über den Button PHP Sicherung aufrufen. Dann klappt SFTP.

Hast du einen Tipp wie ich die PHP Sicherung über einen Cronjob auslösen könnte?
Ich habe schon Ralf r23 angesprochen, aber die haben gerade wichtigere Baustellen.
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[phpBB3.2.x] Re: Mysqldumper für PHP7

Beitrag von Mahony »

Hallo
HaioPaio hat geschrieben: 13. Mai 2021 16:47
Hast du einen Tipp wie ich die PHP Sicherung über einen Cronjob auslösen könnte?
Nein, ich kenne den OOS-Dumper nicht und habe auch nicht die Zeit mich da hinein zu arbeiten.

Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Antworten