Hallo, hat jemand von euch zufälliger weise ein Script was folgendes kann:
Ich hoste kostenlos mehrere Foren (mitlerweile ~50), welche ich auch update etc..
Dafür habe ich zur Zeit folgende Methode:
Ich mache ein "richtiges" update bei einem Testforum (alle Foren bestehen mehr oder weniger aus einem "fertig Image" welches ich erstellt hab, sprich sie sind alle gleich), teste ob alles funktioniert und wenn ja, dann nehme ich die geänderten Datein sowie die database_update.php und lade die in jedes einzelne Forum hoch, rufe einmal kurz http://meinedomain.de/forum1/install/da ... update.php auf und lösche wieder den install Ordner.
Und das ganze mache ich für jedes der Foren, was auf dauer wie ihr euch sicherlich vorstellen könnt ziemlich mühselig ist.
Deswegen suche ich ein Script, was folgendes kann:
Meine FTP Strucktur sieht wie folgt aus:
htdocs (also das root verzeichniss des Webverzeichnisses)
in diesem htdocs Ordner sind ~50 Foren in folgender Strucktur:
/forum1/
/forum2/
/forum3/
etc.
Dann würde ich noch einen Ordner namens /update/ im Web-rootverzeichniss anlegen, wo ich die geänderten Datein vom Backup sowie die /install/database_update.php hinlege.
Das Script sollte dann den Inhalt vom /update/ Ordner in jedes der einzelnen Foren kopieren, die database_update.php aufrufen und dann wieder jeden /install/ Ordner im Forum löschen.
Ich hoffe ich habe verständlich ausgedrückt was ich möchte =)
Falls niemans soetwas bereits im Einsatz hat, werde ich das ganze wohl mal in der Jobbörse posten.
Grüße
Mehrere Foren updaten
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Wie einfach du dir sowas machen kannst hängt sehr davon ab wie viel Zugriff du auf deinen Server hast, recht einfach automatisieren kann man zumindest den Dateiupload z.B. per Shellskript. Im Prinzip kannst du so ein Skript natürlich auch auf deinem PC ausführen und das Skript dann FTP Befehle ausführen lassen (so mache ich das z.B. im Moment, das setzt aber ein Linux Betriebssystem voraus oder einen Windows Interpreter für bash inklusive des benötigten Kommandozeilen FTP Programms (ich nutze nicht das standard ftp Programm). Außerdem nutzt das System SVN (legt eine lokale Kopie an und schaut gewissermaßen im Log welche Dateien sich geändert haben und läd die dann hoch). Das kann man natürlich so umbauen dass das Skript die Dateien an 50 verschiedene Stellen hochläd. Anschließend läd man dann noch 50 verschiedene URLs per wget oder so und fertig.
Am einfachsten wird es dann, wenn du ein SVN System oder ähnliches einsetzt und deinen eigenen (v)Root hast. Dann brauchst du nur noch ein kleines Skript das nacheinander in alle Ordner geht und svn update ausführt und dann per wget o.ä. die URLs aufruft (und den Output nach /dev/null ins Nirvana verschwinden lässt).
Am einfachsten wird es dann, wenn du ein SVN System oder ähnliches einsetzt und deinen eigenen (v)Root hast. Dann brauchst du nur noch ein kleines Skript das nacheinander in alle Ordner geht und svn update ausführt und dann per wget o.ä. die URLs aufruft (und den Output nach /dev/null ins Nirvana verschwinden lässt).
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.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
nicht weiter schwierig, mach doch einfach ne schleife, in der du alles erledigst...
die database_update.php mit [php:fsockopen] aufrufen...
(*1): die funktion copyFolder() von hier kopieren und ins script einbinden
(*2): die funktion rec_dir() von hier kopieren und ins script einbinden
der code ist nicht getestet, also bitte vorher ein datenbankbackup machen
(wenn dus nicht schon machst^^)
die database_update.php mit [php:fsockopen] aufrufen...
Code: Alles auswählen
<?php
//datei sollte im hauptverzeichnis sein...
$source = 'update'; //pfad zu den zu kopierenden dateien
$dest = 'forum'; // pfad zum foren hauptverzeichnis (ohne zahl hintendran)
// hier kommen noch 2 funktionen hin... (siehe (*1) und (*2) )
for($i = 1; $i <= 50; $i++) {
// dateien rekursiv kopieren (*1)
copyFolder($source, $dest . $i, null, true) ? null: print('Fehler beim kopieren der Dateien.');
//nun die database_update.php aufrufen....
$fp = fsockopen("deinedomain.tld", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /forum$i/install/database_update.php HTTP/1.1\r\n";
$out .= "Host: deinedomain.tld\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
fclose($fp);
}
// install-verzeichnis löschen... (*2)
$del = $dest.$i.'/install';
switch(rec_rmdir($del)) {
case -1:
echo "Fehler beim löschen: $del ist kein Verzeichnis";
break;
case -2:
echo "Unbekannter Fehler beim Löschen";
break;
case -3:
echo "Ein Eintrag eines Verzeichnisses ist keine Datei, kein Verzeichnis und kein Link.";
break;
}
}
?>
(*2): die funktion rec_dir() von hier kopieren und ins script einbinden
der code ist nicht getestet, also bitte vorher ein datenbankbackup machen

Hallo, danke euch erstmal vielmals.
Werde das Script mal testen bzw mir das ganze angucken, hab aber grade zu wenig Zeit dafür und sowieso nicht wirklich ahnung von php.
Laufen tut das ganze auf nem VPS mit debian etch.
Ab Freitag allerdings auf nem Leistungsstärkeren RootDS.
Sprich root zugang ist vorhanden =)
Grüße
Werde das Script mal testen bzw mir das ganze angucken, hab aber grade zu wenig Zeit dafür und sowieso nicht wirklich ahnung von php.
Laufen tut das ganze auf nem VPS mit debian etch.
Ab Freitag allerdings auf nem Leistungsstärkeren RootDS.
Sprich root zugang ist vorhanden =)
Grüße
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
In dem Fall empfehle ich dir wirklich einen Blick auf SVN zu werfen. Damit kannst du dann im Prinzip gleich alles auf einmal automatisieren wenn du willst (inklusive Upload von deinem PC auf den Server), wobei ich empfehlen würde weiterhin nur ein Shell Skript zu nutzen (mit SVN ist das in ein paar Minuten geschrieben).
Dafür musst du aber einen SVN Server auf deinem Server installieren.
Dafür musst du aber einen SVN Server auf deinem Server installieren.
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.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.