Amministrazione

In questa sezione si possono trovare le domande più comuni sull'amministrazione di Drupal, se non trovi la risposta alla tua domanda usa l'aposito forum.

Come si aggiorna Drupal?

Revisione maggiore: come aggiornare drupal da una versione X.n ad una Y.t.
Esempio, come posso aggiornare Drupal dalla versione 4.7.6 alla versione 5.2?

Il procedimento non è molto complesso. Tuttavia bisogna premettere che passare da una versione 4.xx ad una versione 5.xx, cioè una revisione di tipo massimo, i moduli precedentemente creati per la 4.xx non gireranno più correttamente su una 5.xx

Il procedimento da fare è quindi:

  1. Fare un backup dell'intero sito tramite FTP (consiglio FileZilla per l'immediatezza).
  2. Fare un backup del database su cui è installato Drupal (fatelo tramite il vostro hoster, probabilmente userete phpMyAdmin).
  3. Disabilitate tutti i moduli e i temi aggiuntivi che avete installato e abilitato.
  4. Impostate il sito off-line (in manutenzione).
  5. Spostate il contenuto del vostro vecchio sito in una sotto cartella.
  6. Copiate il contenuto del file Drupal-6.xx.tar.gz scaricato da Drupal.org.
  7. Copiate le informazioni dal file di backup settings.php sullo spazio, presente in /sites/default/settings.php. (e se avete fatto delle modifiche, anche robotx.txt e .htaccess nella cartella principale).
  8. Puntate il vostro Browser a www.sito.it/update.php (dove sito.it è l'URL dove avete installato Drupal).
  9. Eseguite il processo di aggiornamento.
  10. Se non vi da' errori potete scaricare tutti i moduli che usavate nella vecchia installazione ed abilitarli. Ovviamente dovranno essere quelli aggiornati alla nuova versione di Drupal. Quelli vecchi non saranno compatibili.

Revisione minore: come aggiornare drupal da una versione X.n ad una X.t, dove t>n
Esempio, come posso aggiornare Drupal dalla versione 6.6 alla versione 6.8

Il procedimento da fare è quindi:

  1. Fare un backup dell'intero sito tramite FTP (consiglio FileZilla per l'immediatezza).
  2. Fare un backup del database su cui è installato Drupal (fatelo tramite il vostro hoster, probabilmente userete phpMyAdmin).
  3. Copiate il contenuto del file Drupal-5.xx.tar.gz scaricato da Drupal.org. e sovrascriveteli con quelli vecchi.
  4. Copiate il file di backup settings.php su quello nuovo, presente in /sites/default/settings.php. Se avete modificato robots.txt e .htaccess, dovrete ricopiare anche quelli. In alternativa potete evitare di caricarli sul sito cancellando la cartella sites e i due files sopracitati.
  5. Puntate il vostro Browser (possibilmente Gecko-based od Opera) a www.sito.it/update.php (dove sito.it è l'URL dove avete installato Drupal).
  6. Eseguite il processo di aggiornamento.

Argomenti:

E' sparito il blocco per il login degli utenti. Come faccio a ripristinarlo/autenticarmi?

Vai alla pagina www.sito.it/?q=user e loggati come amministratore.
Poi vai alla pagina www.sito.it/?q=admin/block e abilita il blocco "login".

Esportare Drupal da un sito locale ad un sito online.

Può succedere a volte che esportando drupal da uno spazio web ad un altro vi siano sull'ultimo dei problemi nella visualizzazione dei caratteri (di solito lettere accentate) o che semplicemente il database mysql ritorni un errore simile al seguente:
"Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation"
In questi casi il problema è quasi sicuramente da imputare alla collation.
Una breve introduzione: set di caratteri e collation
Un set di caratteri è un sistema col quale i diversi caratteri e simboli vengono memorizzati su un computer con un valore binario. In un insieme di caratteri (set di caratteri) un valore binario corrisponde quindi ad un simbolo preciso. Ad esempio possiamo avere un alfabeto composto da due lettere: "A", "a". A queste due lettere assegnamo un numero: "A" = 0, "a" = 1. La "A" è un simbolo e lo 0 è la codifica per tale simbolo. La "a" è un altro simbolo e la sua codifica è 1. La combinazione di queste due lettere e delle rispettive codifiche è un set di caratteri. MySQL dalla versione 4.1 possiede un supporto molto avanzato ai set di caratteri; è infatti possibile gestire i set di caratteri a livello server, database, tabella e colonna, client e connessione.Una collation è invece un insieme di regole utilizzate per confrontare i simboli che fanno parte di un set di caratteri. Collation si traduce con collazione, che significa confronto.Ad esempio possiamo fare in modo che "A" sia uguale ad "a". In questo caso dovremmo avere almeno due regole:

  1. considera la lettera minuscola "a" uguale alla lettera maiuscola "A".
  2. confronta le codifiche.

Abbiamo applicato una collation (confronto) non sensibile alle maiuscole.
Se con PhpMyAdmin vedete la seguente dicitura sotto la voce collation: latin1_general_cs vuol dire che si sta utilizzando il set di caratteri latin1, che tale collation è multilingua (general) e che tale collation considera come differenti le lettere maiuscole e minuscole (cs: case sensitive).
Le operazioni da fare per esportare il sito (files e database).
Supponiamo che abbiate un sito web in locale e che tale sito contenga già contenuti, moduli aggiuntivi e magari un tema che avete costruito appositamente. Ora per esportare il tutto online occorre esportare il database e caricare tutti i files del sito da locale a remoto.
Ecco la procedura da eseguire:

  • creare il database sul proprio spazio remoto
  • cambiare le impostazioni nel file settings.php
  • caricare da locale a remoto tutti i files che c'erano nella cartella locale della propria installazione di drupal
  • impostare a 777 la cartella /files/ sul sito remoto (CHMOD -R 777 /tua_cartella_drupal/files/)
  • guardare la collation del database ( cliccando su "Struttura") e memorizzarla.
  • esportare il database locale. In phpmyadmin andare quindi su "Esporta" e selezionare "Struttura" e "Dati".
  • in remoto, prima di andare ad accedere col browser all'indirizzo del sito web, importare il database, scegliendo lo stesso set di caratteri che si utilizzava sul database locale. In phpmyadmin andare su "Importa"e selezionare dal menù a tendina il set di caratteri che si utilizzava nella collation. Se ad esempio si utilizzava come collation utf8_general_ci scegliere dal menù a tendina utf8 come set di caratteri.
  • andare a controllare che la collation del database remoto sia uguale a quella utilizzata dal database locale. Portarsi quindi con phpmyadmin in "Operazioni" e in basso controllare la collation.
  • accedere all'indirizzo del proprio sito web e controllare che sia tutto uguale al sito locale (temi, moduli selezionati, caratteri accentati stampati in modo giusto e tutto il resto).

"Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation"
Mi è capitato una volta di dover migrare un sito web basato su drupal da un server MySQL 3.23 ad un server MySQL 4.1. Avevo ottenuto degli errori nella collation. Questo perchè MySQL 4.1 utilizza una collation predefinita che Drupal invece non utilizza. Le tabelle stanno utilizzando la collation latin1_swedish_ci e la connessione impostata da Drupal sta utilizzando invece utf8_general_ci.Per risolvere il problema, la collation su ogni tabella deve essere uft8_general_ci.
Alcune query utili
Per cambiare il set di caratteri:
ALTER DATABASE drupal_database CHARACTER SET utf8;
Per cambiare la collation:
ALTER DATABASE drupal_database COLLATE utf8_general_ci;
Per cambiare set di caratteri e collation ad una tabella
ALTER TABLE drupal_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Ridefinire una variabile in Drupal: Override di variabili nel settings.php

Drupal può ridefinire le variabili staticamente, basta che dai un nuovo valore alla variabile nel tuo settings.php

<?php
/**
* Variable overrides:
*
* To override specific entries in the 'variable' table for this site,
* set them here. You usually don't need to use this feature. This is
* useful in a configuration file for a vhost or directory, rather than
* the default settings.php. Any configuration setting from the 'variable'
* table can be given a new value.
*
* Remove the leading hash signs to enable.
*/
 
$conf = array(
   
'default_nodes_main' => 1000,
  );
?>

Grazie ad Ainur.

Argomenti: