Aiuto! Il mio sito non va più! Problemi comuni.

Stato documento: Alpha

Drupal è un applicativo web, e dipende su un'infrastruttura (Web server, interprete PHP, RDBMS) per funzionare correttamente. Spesso sui forum incontriamo problemi dove il disperato utente "non ha fatto niente", o è stato trasferito l'applicativo su un altro server. Cerchiamo qui di spiegare i problemi (e anche le loro soluzioni) a questi comportamenti "anomali".
La prima regola (cioè regola #1) è: "Non fatevi prendere dal panico", e la seconda regola (cioè regola #2) è: leggi sotto...

N.B: Quando ci riferiamo ai vari URL di Drupal, mettiamo solo il percorso. Bisogna quindi prefissare questo con il dominio del tuo sito - per esempio http://localhost/, http://localhost/drupal, o http://www.drupalitalia.org/
Quando ci riferiamo all'indirizzo del sito sul server usiamo ~drupal per indicare l'indirizzo root dell'applicativo.
Si presume sempre un sito singolo, per siti multisito, sostituisci ~drupal/sites/default con ~drupal/sites/[dominio-del-sito]

Vedi anche: Problemi ricorrenti.

Non riesco più a fare il login!
Drupal (di default) fornisce un blocco per il login 'Accesso utente'. Se questo viene disabilitato come si fa?
Usando ?=user

Ho fatto, ma non mi ricordo più il mio password!
(Vedi anche Ho perso la password dell'amministrazione) Oops. Non si può ricuperare il password, perchè criptato - ma si può sempre creare una nuova, accedendo direttamente alla basedati.

  1. Entriamo in phpMyAdmin
  2. Scelgiamo il db giusto, se hai più di uno (dev'essere quello usato in settings.php)
  3. Troviamo una luuuunga lista di tabelle
  4. Scrolli giù finchè arrivi a quella chiamato users
  5. Clicca sulla prima icone a destra del nome (Browse)
  6. Se non hai aggiunto altri utenti, ci saranno solo 2 righe
  7. L'utente amministratore è quello col valore uid = 1
  8. Controlla che il valore di status è anche 1

A questo punto hai due possibilità: nella riga con uid = 1, clicca sulla matita (Edit) per editare la riga, e per il campo 'pass' seleziona la funzione MD5 e scrivi il nuovo password, infine clicca su 'Go'.
Altrimenti clicca sul tab 'SQL' ed inserire:
UPDATE users SET pass = MD5( 'NUOVAPASSWORD' ) WHERE uid=1;
sostituendo NUOVAPASSWORD con il tuo password.

Ho fatto anche questo, ma non c'è una riga con uid = 1!
Oops, sembra che hai cancellato l'utente amministratore. Niente panico - puoi sempre ricostruirlo. Hai sempre due opzioni: il primo è di cliccare sul tab 'Insert' poi metti 1 come valore del campo 'uid', scrivi il nome come valore del campo 'name', metti 1 come valore del campo 'status', per il campo 'pass' seleziona la funzione MD5 e scrivi il nuovo password, infine clicca su 'Go'.
Altrimenti clicca sul tab 'SQL' ed inserire:
INSERT INTO users (uid, name, pass, status) VALUES ('1', 'NOMEUTENTE', MD5( 'NUOVAPASSWORD' ), 1);
sempre sostituendo NOMEUTENTE e NUOVAPASSWORD con il tuo nome e password.

Ho caricato i miei immagini ma non si vedono nelle pagine!
Se non riesci a vedere un immagine neanche specificando l'URL direttamente: sites/default/files/test.png, il problema sta nel file .htaccess o i permessi del indirizo.
In ~drupal/sites/default/files controlla il file .htaccess - è molto breve:

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
Options None
Options +FollowSymLinks

Controlla anche i permessi per il percorso indirizzo:

~drupal 755
  sites 755
    default 555
      files 775
        ecc... 775

Per i curiosi, bisogna settare 'execute' su un indirizzo (folder) per rendere il suo contenuto accessibile...
[en] http://en.wikipedia.org/wiki/File_system_permissions#Permissions
[it] http://it.wikipedia.org/wiki/Permessi_%28Unix%29#Permessi_di_base

Tutti i links mi portano al "home page"!
Prova a prendere il percorso di uno di quei link e prefissare ?q=, per esempio user/register in ?q=user/register. Se funziona, allora hai Clean URLs abilitato, ma il server non lo sta gestendo.
Ci sono due soluzione: disabilitare Clean URLs ;-), o controllare il file ~drupal/.htaccess (simile al originale: http://drupalcode.org/viewvc/drupal/drupal/.htaccess?revision=1.90.2.5&v...) e che il web server ha il modulo rewrite: ?q=admin/reports/status/php voce apache2handler, nella casella Loaded modules ci dovrebb'essere mod_rewrite.
E' possibile che devi settare $base_url (anche a "/") tipo: $base_url = "/"; in ~drupal/sites/default/settings.php
Se stai gestendo il web server tu (cioè non hai shared hosting, o sei in locale) allora bisogna controllare il file di configurazione in Apache: /etc/apache2/sites-available/default dove ci sarà un commando tipo:

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
       allow from all
</Directory>

Bisogna controllare che AllowOverride ha il valore di All e non None.

Sfortunatamente, potrebbe anche essere un problema di un database corrotto. Basta caricare uno degli ultimi backup del database per vedere.

Non si vede bene lo stile della pagine, manca del testo qui e là, non c'è affatto uno stile!
Questo può capitare quando usiamo qualche ottimizzazione di Drupal. In ?q=admin/settings/performance si può abilitare ottimizzazioni per CSS e JavaScript. Questi ottimizzazioni creano dei file di CSS e JavaScript in ~drupal/sites/default/files, ma se vengono persi - niente CSS e JavaScript. E sufficiente disailitare questi ottimizzazioni per ripristinare i CSS e JavaScript originale. A questo punto si può riabilitarli, perchè hanno rigenerati i file mancante.

Non ci sono caratteri accentati, ma solo "�"!
Drupal e PHP utilizzano una libreria chiamato mbstring per codificazione di carattere UTF8, per esempio i caratteri accentati in italiano. Se questa librerie non è installato, Drupal e PHP funzionano lo stesso, ma non hanno la 'capacità' di visualizzare caratteri di questo genere.
Puoi controllare la presenza di questa libreria in ?q=admin/reports/status dove, alla voce "Libreria Unicode" dovrebb'essere scritto "Estensione Mbstring per PHP", oppure in ?q=admin/reports/status/php, semplicamente cercando per la voce mbstring.
La soluzione se manca è di installare la libreria. Qui trovi qualche guide:
[en] http://php.net/manual/en/mbstring.installation.php

[Edit: Manca indicazioni per Windows]

Argomenti:

il modulo gallery su drupal 6.15 mi da' questi problemi e essendo nuovo non so cosa fare su mysql

* user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT(n.nid), n.created, n.title FROM drupal_gallery_assist_item p ' at line 1 query: SELECT count( * ) as items, DISTINCT(n.nid), n.created, n.title FROM drupal_gallery_assist_item p JOIN drupal_node n ON n.nid = p.ref WHERE p.uid = 1 GROUP BY p.gref ORDER BY created DESC in /web/htdocs/www.gporro.it/home/gpdrpl/modules/gallery_assist/gallery_assist.module on line 383.
* warning: Invalid argument supplied for foreach() in /web/htdocs/www.gporro.it/home/gpdrpl/modules/gallery_assist/gallery_assist.module on line 390.