[erledigt] [PHP] gzopen / fopen für Backup-Script

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
moneycoach
Mitglied
Beiträge: 217
Registriert: 02.02.2007 21:57

[erledigt] [PHP] gzopen / fopen für Backup-Script

Beitrag von moneycoach »

Ich mal wieder :wink:

Ich stehe irgendwie kurz vorm verzweifeln :(
Also, von vorne:
Ich versuche, ein relativ einfaches und gleichzeitig komfortables Backup-Script zu erstellen. Soweit kein Problem, das Script an sich funktioniert wunderbar.
Aber ich wäre ja nicht ich, wenn ich alles nicht nochmal auseinanderreiße und dann alles step by step wieder zusammenbaue und mir dabei die Funktionen auf php.net erklären lasse und versuche, bei dem ganzen dann auch noch was zu lernen, also learning by doing ;)

Das ganze funktioniert nach einigem Gefummel und hin und her auch ganz gut, aber das Backup-Script kann die Daten jetzt nur als normales SQL-File übertragen. Das verursacht jedoch eine Menge Traffic und dauert selbst im DSL-Zeitalter noch so seine Zeit. Also Gzip komprimieren!

Schön und gut, denkt man sich, nimmt man eben die erstbeste Funktion, die man in die Finger bekommt, noch schnell ein kleines Tutorial angucken und los geht's.
Gefunden habe ich dann die Funktionen gzopen, gzwrite und gzclose.
Naja, hat leider nicht so geklappt wie ich das wollte (es scheiterte an gzopen), also mit einem Umweg:
Komprimieren via gzencode() und den Gzip-Text dann einfach mittels fopen, fwrite und fclose in eine Datei schreiben. Aber wie beim Versuch mit dem gzopen scheitert es auch hier schon an fopen.
Herausgefunden habe ich das mittels folgendem Script:

Code: Alles auswählen

$Backup_gzip = gzencode($Backup);
if($Backup_gzip == false)
	{echo "Fehler beim komprimieren<br>";}
else
	{echo "anscheinend komprimiert<br>";}

$fp = fopen ("/2008.03.07.19.uhr_structure.sql.gz", "w");
if($fp == false)
	{echo "Fehler beim &ouml;ffnen<br>";}
else
	{echo "anscheinend geöffnet<br>";}

$tt = fwrite($fp, $Backup_gzip);
if($tt == false)
	{echo "Fehler beim schreiben<br>";}
else
	{echo "anscheinend geschrieben<br>";}

$tu = fclose($fp);
if($tu == false)
	{echo "Fehler beim schlie&szlig;en<br>";}
else
	{echo "anscheinend geschlossen<br>";}
ergibt folgendes:
anscheinend komprimiert
Fehler beim öffnen
Fehler beim schreiben
Fehler beim schließen

Da ich nun mittlerweile die betroffenen Seiten von de.php.net auswendig kenne und bisher keinen Schritt weiter gekommen bin, melde ich mich jetzt mal hier ;)

Ich für meinen Teil bin jedoch schon fast zu 100% sicher, dass irgendwo eine Kleinigkeit wie ein Komma oder so fehlt, aber ich finde einfach kein fehlendes und auch sonst bin ich alle aus meiner Sicht wahrscheinlichen Fehlerquellen durchgegangen, aber es scheitert fortlaufend an gzopen bzw. fopen. Die Anführungszeichen in fopen/gzopen habe ich schon weggelassen, gegen einfache Anführungszeichen ( ' ) ausgetauscht, das "w" habe ich ich "wb" umgetauscht (in gzopen habe ich auch "wb9" probiert), ich habe Leerstellen hinter dem Komma gesetzt und wieder gelöscht, habe Google und die Suchfunktion benutzt, aber ich finde keinen Fehler. :cry:

Also, ich hoffe auf eure Hilfe :)

Grüße
Zuletzt geändert von moneycoach am 07.03.2008 22:53, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Du versuchst das ganze in das Root-Verzeichnis ( "/") zu schreiben, das ist vermutlich gegen deinen Zugriff gesperrt... Auf Windows weiß ich gar nicht wie er das versucht zu interpretieren, das könntest du mit [php:realpath] oder sowas mal versuchen rauszufinden.

Probier mal lieber einen anderen Pfad, sowas wie ./ z.B. (oder einfach ganz ohne Slash am Anfang). Ansonsten generell beim entsprechenden Verzeichnis darauf Achten, dass die Schreibrechte korrekt eingestellt sind (KB:chmod).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

gn#36 hat geschrieben:Du versuchst das ganze in das Root-Verzeichnis ( "/") zu schreiben, das ist vermutlich gegen deinen Zugriff gesperrt... Auf Windows weiß ich gar nicht wie er das versucht zu interpretieren
Unter Windows wird daraus das oberste Verzeichnis auf dem aktuellen Laufwerk (also z.B. "C:\Windows\Temp" -> "C:" oder "D:\www\phpBB3" -> "D:")
KB:knigge
Benutzeravatar
moneycoach
Mitglied
Beiträge: 217
Registriert: 02.02.2007 21:57

Beitrag von moneycoach »

Laut phpinfo ist es ein Linux-Server ;)

Aber es wurde wirklich versucht, im root-verzeichnis zu speichern.
Ein Punkt vor den Filenamen gesetzt und es läuft...
Jaja, immer diese Kleinigkeiten :roll:

Aber danke euch beiden für den wie immer überragenden Support :wink:
Antworten

Zurück zu „Coding & Technik“