Actualitzar el Drupal i no morir en l'intent

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

A continuació explicaré com fer un "upgrade" al drupal i no morir en l'intent. Aquest sistema és el que vam fer servir al GiLUG. Exactament va ser un upgrade de la versió 4.2 a la 4.4.1, però crec que es podrà aplicar a tots els canvis de versions.

El drupal ja conté un script en php que permet fer l'update d'una manera més o menys automatitzada.
Recomanacions abans de tot:
Bé les recomanacions són les típiques, que si copies de seguretat dels fitxers, de la base de dades... tot seguit ho explicaré.

  1. Fer còpia de seguretat de la base de dades:
  2. Suposant que la vostra base de dades s'anomena drupal i l'usuari d'aquesta s'anomena “drupal” i la contrasenya també és “drupal” podríem fer:

    $ mysqldump -u drupal -pdrupal drupal > drupal-4.2-backup.sql

  3. Fer còpies de seguretat dels fitxers antics:
  4. $ cp -R drupal drupal_old

    Ara treballarem amb el directori “drupal” (on hi ha una versió 4.2)

  5. Esborrar coses que no funcionin amb la nova versió:
  6. Això no crec que sigui imprescindible, però sempre va bé i així de pas es fa una mica de neteja :)
    El que és important és que el tema que tingueu per defecte sigui compatible amb la nova versió, sinó sempre pot donar problemes i bastants missatges d'error. Per tant primer els desactiveu des de la zona d'administració i seguidament els borreu del directori.

  7. Descarregar l'última versió:
  8. En aquests moments l'última versió és la 4.4.1

    $ wget http://drupal.org/drupal/drupal-4.4.1.tgz

  9. Descomprimir i sobreescriure els antics:
  10. $ tar xvzf drupal-4.4.1.tgz
    $ cp -R drupal-4.4.1 drupal

  11. Configurar la nova versió:
  12. Bé això no crec que formi part d'aquest how-to a més si ja teníeu una versió antiga funcionat també podreu configurar la nova ;-)

Passem a actualitzar!

  1. Editar l'update.php:
  2. En alguns casos cal editar el fitxer update.php, que es troba a l'arrel del directori drupal. S'ha d'editar en els casos que la persona que vulgui fer l'actualització no tingui l'uid 1 (La persona que va instal·lar el drupal la primera vegada). Encare que si tot i sent l'uid 1 no ús deixa entrar també l'haureu de modificar.
    Només s'ha de canviar la variable $access_check a 0, així no comprobarà l'uid que tenim.

  3. Actualitzar:
  4. Doncs ara amb el navegador només ens hem de situar a http://llocdeldrupal/update.php.
    @@s sortirà una pàgina on hi ha una petita explicació, depenent de la versió des de la que voleu actualitzar pot ser que hàgiu de crear algunes taules manualment, en aquest cas copieu les comandes SQL a un fitxer i les carregueu:

    $ mysql -u drupal -pdrupal drupal < script-update-drupal.sql

  5. Ara sí!
  6. Ara anem a l'enllaç del començament de la pàgina que posa “run the database upgrade script”.
    Allà hem de seleccionar la versió actual que estem fent servir, és a dir, si volem actualitzar des de una 4.2 hem de seleccionar la que menciona “drupal 4.2.0”
    Li donem al botó “Update” i llestos!
    Si tot ha anat bé ja tindríeu el drupal actualitzat a la última versió!
    Però ja se sap que cada casa és un món :P

  7. Desactivar l'accesss_check
  8. Doncs només queda canviar la variable $access_check = 1 perquè així no ens puguin anar a “upgradejant” qualsevol persona :)

  9. Polir algunes coses:
  10. Segurament haureu de canviar algunes coses com la codificació de “utf-8” a “iso-8859-1” com vau fer el primer dia per tal que els accents es mostrin correctament.

Segur que m'he deixat coses, però bé podeu fer comentaris i afegir-ho vosaltres :)

Hi ha un petit error...

Per carregar un conjunt de comandes sql d'un fitxer,
s'ha d'utilitzar <, no >...
$ mysql -u drupal -pdrupal drupal < script-update-drupal.sql
Suposo que és un descuït de l'autor .. :-)

mm

Sip, aquest meu cap que a vegades es despita, ja està corregit.

merci!

P.D. Si voleu posar el caràcter < o > feu-ho escrivint &lt; i &gt; que sinó es menja la resta del comentari ;)