Joomla Updates per perl auf einzele web's verteilen?

stramsteiner

New Member
Guten Morgen :)

Mich quält seit einiger Zeit die Frage ob es nicht möglich ist ein perl Script zu schreiben das es mir ermöglicht ein Joomla Update auf alle meine Joomla Intallationen anzuwenden.?

Also bei einem Joomla Update muss ich ja das Update für jede Domain/jedes Web erneut per ftp übertragen...

Kann man ein Script schreiben das mir dass erspart? Z.B. Das Update einmal hochladen dann ein Script auf der shell ausführen dass das Update Automatisch auf die dafür vorgesehenen Web's verteilt?

Dabei sollte natürlich auch der Chmod, die User und Gruppen -Rechte beachtet werden. So dass z.B die configuration.php schreibbar bleibt falls diese ausgetauscht wird.

Gibt es da für evl. schon ein "fertiges Script"? Wenn nicht wie könnte ich so ein Script selber schreiben?
 
Ich hoffe die Frage ist nicht ganz ernst gemeint...
Find ich irgendwie lustig. Denn möglich ist mit Perl/PHP in dieser Richtung fast alles, man muss die Sprache nur ein wenig beherrschen. Wenn du kein Perl kannst, dann sieht es einfach ein wenig schlecht aus. Aber wieso überhaupt Perl? Verstehe ich nicht. Joomla basiert auf PHP, auch die Updates werden so gemacht (glaube ich).
Am einfachsten wäre es einfach ein PHP CLI Script zu schreiben, welches sich einmal die Sources zieht und dann praktisch die Updateprodzedur für mehrere Verzeichnisse vollzieht.
Aber so was muss man schon selber schreiben.
 
Hi server4downs,

Ja ist ernst gemeint ;)

Ist zwar beinahe schon peinlich aber ich habe mich in PHP überwigend mit if-else abfragen, mysql -insert's -updates, E-Mails verschicken, Generierung von Passwörtern etc. beschäftigt. Kurz auch mal mit "File operationen" wie z.B. "fopen". Mit PHP geht das auch? :eek: Ups ich hatte mich jetzt so auf Perl eingeschossen weil die meisten Backup-Scripts darin gerschieben sind... Das wird dann allerdings einen anderen Grund haben :( Ja das muss ich zugeben mit Perl kenne ich mich nicht aus, hab damit zwar schon "rum gespielt" aber mehr auch noch nicht...

Updates werden bei Joomla per FTP aufgespielt so das die alten PHP-Dateien durch die neuen aus dem Update ersetzt werden.

Ja dann bin ich jetzt mal bei PHP.net unterwegs und suche mir die passenden Funktionen raus. Ganz klar sollte man schon selber schreiben... Aber es hätte ja sein können :)

EDIT:
Code:
<?php
if (!copy($file, $file.'.bak')) {
   print ("failed to copy $file...<br>\n");
}
?>

Man oh Man. Ich korregiere mich die Frage war nicht ernst gemeint! :D
 
Last edited by a moderator:
Kurze Zwischenfrage:
Hast du SSH-Zugriff?
Dann ist es nämlich einfacher...
Dann ziehst du dir einmal die ganzen Sources und los gehts.
Der Rest ist stressig.
Wieviel Installationen sind es denn?
 
ssh = ja
Sind momentan 7 könnten aber mehr werden...
Aber momentan sind noch alle UpToDate (1.0.8)

Jetzt sag mir bitte nicht dass ich das auch direkt auf der Konsole machen kann :eek:
 
Also ich weiß nicht genau, wie ein Update aussieht... Das müsstest du erst schildern...
Rein theoretisch sollte es so gehen, dass du alle neuen Files ins Verzeichnis kopierst und dann gibt es da wahrscheinlich wie für die Installation ein Update-Assistenten. Da müsstest du dir den Source (Quellcode :)) dieses Assistenten anschauen und selbiges dann für die Console (PHP CLI sei hier ein Stichwort) nachbauen.
Da du aber in PHP nach eigenen Angaben nicht sonderlich bewandert bist, wird es für dich wahrscheinlich jedoch leichter sein einfach alles von Hand zu machen, als die Geschichte zu automatisieren.
Kommt ganz drauf an.
Ich für meinen Teil kenne auf jeden Fall kein fertiges Script.
 
server4downs said:
Rein theoretisch sollte es so gehen, dass du alle neuen Files ins Verzeichnis kopierst und dann gibt es da wahrscheinlich wie für die Installation ein Update-Assistenten.

Nee ist noch viel einfacher... Die Dateien werden einfach nur ausgetauscht :) Wenn Du dir das Update zip herunterlädst sind dort die kompletten ordner strukturen drin, in diesen sind dann wieder die PHP-Dateien an denen eine änderung vorgenommen wurde. Einfach entpacken hochladen und fertig ;)

Es würde sich grundliegend nur um ein Script gehen das die Dateien in den jeweiligen web-Ordner kopiert, mit dem richtigen chmod und dem richtigen eigentümer User:Gruppen

server4downs said:
Da du aber in PHP nach eigenen Angaben nicht sonderlich bewandert bist, wird es für dich wahrscheinlich jedoch leichter sein einfach alles von Hand zu machen, als die Geschichte zu automatisieren.
Kommt ganz drauf an.

Och ja man lernt ja immer gerne etwas dazu :) Hab ja mommentan eh recht viel Zeit.
 
Na, dann ists doch nicht so schwer.

PHP CLI benutzt du so:
du erstellst wie gewohnt auf dem Server irgendwo eine .php Datei.
Vor <?php musst du noch eine Zeile (shebang) einfügen:
#!/usr/bin/php
Die .php Datei muss ausführbar sein.
Und schon kann es losgehen.
Hier sollte der Befehl exec() dir viel weiterhelfen.
Mit dem "Linux-Befehl"
Code:
wget URL
kannst du dir die Sources ziehen. Z.B.:
Code:
wget http://joomla.../updates/ljsf.zip
So, dann kannst du diesen Befehl ja einfach über exec ausführen.
Dann hast du das Update schonmal als Zip aufm Server.
Nun gehts ans entpacken:
Code:
gunzip ljsf.zip
geht nat. auch über exec().
Nun ist alles entpackt und muss nur noch verschoben werden.
Einfach mit dem Befehl "cp" kopieren...
Code:
man cp
wird dir hier sicherlich eine bessere Hilfe sein.
Kann dann nat. auch alles mit exec() gemacht werden.
Dann kommt noch ein nettes
Code:
chmod -R user:group /path/to/joomla
welches dir die chmods setzt.
Ist ja alles nicht so schwer. Einfach ein bissle Google, ein bissle PHP.net und ein bissle Hirn=On, dann wirds schon klappen.
 
Super Dank Dir, funktioniert wunderbar :D Bei mir fehlt manchmal nur ein kleiner Denkanstoß und den hast Du mir gerade gegeben. Eigentlich gaaanz einfach. :)
 
Back
Top