M-am lovit de curand de o problema destul de deranjanta si anume updatarea mai multor instalari WordPress. Updatarea unui WordPress nu e o treaba complicata si se poate face in patru pasi simpli:
- se descarca ultima versiune;
- se dezarhiveaza;
- se uploadeaza/suprascriu fisierele de pe server;
- se acceseaza fisierul de updatare a bazei de date – /wp-admin/upgrade.php.
Upgradarea nu este complicata, dar daca avem un numar mare de bloguri (ex. 50) uploadarea fiecarei instalari ar presupune uploadarea fisierelor de mai multe ori. Cu un mic script in Perl primii trei pasi pot fi facuti automat. Ultimul pas trebuie executat manual pentru fiecare instalare in parte, dar avand in vedere ca partea costisitoare este uploadarea fisierelor putem considera rularea urmatorului script ca fiind un avantaj mare:
#!/usr/bin/perl use Archive::Tar; use WWW::Mechanize; use strict; # Descarc ultima versiune print "Descarc ultima versiune de WordPress...\n"; my $url = 'http://wordpress.org/latest.tar.gz'; my $mech = WWW::Mechanize->new(); $mech->get( $url ); $mech->save_content('latest.tar.gz'); my @lista; my $tar = Archive::Tar->new; # Dezarhivez latest.tar.gz print "Dezarhivez WordPress...\n"; $tar->read('latest.tar.gz'); $tar->extract(); # Preiau lista de instalari print "Incarc lista pentru instalare...\n"; open(LISTA,"lista.txt"); push(@lista,$_) while( <lista> ); close(LISTA); chomp( @lista ); # Suprascriu fisierele pentru fiecare instalare print "Suprascriu fisierele:\n"; foreach( @lista ) { my $path = $_; $path =~ /^\/home\/([^\/]+)\//; my $user = $1; print "... suprascriu $path\n"; system("cp -r wordpress/* $path"); system("find $path -user root -exec chown $user '{}' \\;"); } # Sterg fisierele de care nu mai am nevoie system("rm -rf wordpress"); system("rm latest.tar.gz"); </lista>
Scriptul de mai sus il salvam cu numele upgrade.pl si ii dam drept de executie (chmod 755 upgrade.pl).
Pentru ca scriptul sa functioneze trebuie sa cream un fisier lista.txt care va contine pe cate o linie calea catre fiecare instalare WordPress care trebuie updatata. Ex:
/home/site1/public_html/ /home/site2/public_html/blog/ /home/site3/public_html/stiri/
Dupa ce am creat fisierele upgrade.pl si lista.txt rulam ca root comanda ./upgrade.pl:
[root@hosting ~/wordpress]# ./upgrade.pl Descarc ultima versiune de WordPress... Dezarhivez WordPress... Incarc lista pentru instalare... Suprascriu fisierele: ... suprascriu /home/site1/public_html/ ... suprascriu /home/site2/public_html/blog/ ... suprascriu /home/site3/public_html/stiri/
Mai departe trebuie doar sa accesam din browser fisierul /wp-admin/upgrade.php pentru fiecare instalare in parte.
Popularity: 2% [?]



uite asta prinde foarte bine.
Daca e vorba de 50+ bloguri nu ar mai simplu un wpmu cu parcare domeniu? Zic si eu, nu dau cu parul!
Depinde de context. In cazul de fata era vorba de un client care oferea servicii de web hosting unor clienti de-ai lui. Cele 47 de conturi erau ale unor persoane diferite, deci nu prea mergea faza cu WordPress MU. De era vorba de un singur cont de hosting cu mai multe bloguri era intr-adevar lejer cu MU
E buna ideea, dar automatic update.. cu un click, se poate face si din Dashboard.
Imi prinde bine postul tau.Tocmai mi-am instalat de curand, pe curat, WP 2.9.
Ma bucur ca ti-am fost de ajutor
Ms moolt admin. Mi-a fost si mie de ajutor