Twitter RSS

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: 6% [?]

Comentarii pentru “Upgrade semi-automat pentru instalari WordPress multiple”

  • uite asta prinde foarte bine.

  • Eugen spune:

    Daca e vorba de 50+ bloguri nu ar mai simplu un wpmu cu parcare domeniu? Zic si eu, nu dau cu parul! :)

  • admin spune:

    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 :D

  • George Jipa spune:

    E buna ideea, dar automatic update.. cu un click, se poate face si din Dashboard.

  • Cornel M spune:

    Imi prinde bine postul tau.Tocmai mi-am instalat de curand, pe curat, WP 2.9.

  • Sergiu spune:

    Ma bucur ca ti-am fost de ajutor :)

  • Jocuri spune:

    Ms moolt admin. Mi-a fost si mie de ajutor :)

  • Boxe spune:

    Interesant trucul. Poate ar merge integrat intr-un plugin pe care sa il postezi pe site-ul WordPress. Oricum, eu sunt destul de ingrijorat cand vine vorda de facut update unui blog.

    De fiecare data imi este teama ca ceva nu o sa mearga bine si o sa crape tot. Am mai multe site-uri la care nu am facut niciodata update-ul din cauza asta. E vreun pericol sa se intample ceva aiurea ?

  • Sergiu Tot spune:

    In orice CMS se descopera vulnerabilitati si buguri. Daca nu face update, e posibil ca siteul sa fie hackuit la un moment dat. Mai bine fa un backup si apoi updateaza. Daca ceva merge prost (desi sunt mici sansele) dai un restore si ai rezolvat problema.

  • Ciprian spune:

    BuddyPress. Am spus tot. Intr-adevar asa se faceau upgrade-urile inainte la furnizorii de hosted blogs, dar acum nu cred ca mai e cazul.

    Oricum, exemplul tau a fost notat.

Ai intrebari?

* Te rog sa postezi pe NetHelp orice intrebare care nu are legatura cu articolul.

Retele sociale
Reclamã
Sharing makes you cool!
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Retele
Tutoriale despre retele de calculatoare, configurarea interfetelor de retea si rutarea IP-urilor.
/retele-networking/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Web hosting
Articole despre serviciile de gazduire web, dedicate sau in regim shared.
/web-hosting/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
cpadmin.ro
ABCDomenii