Project

General

Profile

DrupalInstall » History » Version 21

Amministratore Truelite, 10/23/2006 06:40 PM

1 1 Amministratore Truelite
[[TracNav(TOC)]]
2 13 Amministratore Truelite
== Installare e configurare Drupal a livello di intero server ==
3 1 Amministratore Truelite
4 20 Amministratore Truelite
Benché sia disponibile anche nei pacchetti per Debian ed Ubuntu, la versione distribuita dal progetto stesso (a partire da http://www.drupal.org) è normalmente molto più aggiornata (al momento della scrittura di queste note su Sid la versione disponibile era la 4.5.8 contro la 4.7.4 ufficiale). Per questo nonostante la manutenzione diventi più difficile, tratteremo l'installazione a partire dai sorgenti.
5 1 Amministratore Truelite
6 19 Amministratore Truelite
Il problema generale della configurazione di Drupal a livello di server è quello che il programma è pensato per essere installato nella home di un utente via FTP. Questo comporta una serie di problemi sia di efficienza che di sicurezza.
7 19 Amministratore Truelite
8 19 Amministratore Truelite
Nel nostro caso vedremo come fare una installazione a livello di server. Il primo passo è quello di scaricare i sorgenti di Drupal e scompattarli nella directory di destinazione; abbiamo scelto di mantenere tutto sotto la directory {{{/usr/share/local/drupal}}}. I comandi da eseguire sono i seguenti:
9 1 Amministratore Truelite
{{{
10 1 Amministratore Truelite
cd
11 1 Amministratore Truelite
wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.x.tar.gz
12 1 Amministratore Truelite
cd /usr/share/local/drupal
13 1 Amministratore Truelite
tar -xvzf ~/drupal-4.7.x.tar.gz
14 1 Amministratore Truelite
mv drupal-4.7.x drupal
15 1 Amministratore Truelite
}}}
16 1 Amministratore Truelite
17 12 Amministratore Truelite
Occorre poi creare il database, nel caso specifico si è usato MySQL, (per l'impostazione iniziale del quale si veda [wiki:MySQLInitConf]) e creato un database apposito '''sitodrupal'''; poi si sono dati i privilegi di gestione per detto database ad un apposito utente con:
18 1 Amministratore Truelite
{{{
19 1 Amministratore Truelite
mysqladmin  -u root -p create sitodrupal
20 1 Amministratore Truelite
mysql -u root -p
21 1 Amministratore Truelite
...
22 1 Amministratore Truelite
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,
23 1 Amministratore Truelite
       ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON sitodrupal.*  TO
24 1 Amministratore Truelite
      'utentedrupal'@'localhost' IDENTIFIED BY 'passwordsegreta';
25 1 Amministratore Truelite
}}}
26 19 Amministratore Truelite
fatto questo si sono create le tabelle con l'apposito script fornito da Drupal:
27 2 Amministratore Truelite
{{{
28 2 Amministratore Truelite
cd /usr/share/local/drupal
29 2 Amministratore Truelite
mysql -u utentedrupal -p sitodrupal < database/database.4.1.mysql
30 2 Amministratore Truelite
}}}
31 2 Amministratore Truelite
è modificato il file {{{sites/default/settings.php}}} impostando il valore:
32 1 Amministratore Truelite
{{{
33 1 Amministratore Truelite
$db_url = 'mysql://utentedrupal:passwordsegreta@localhost/sitodrupal';
34 6 Amministratore Truelite
}}}
35 1 Amministratore Truelite
36 19 Amministratore Truelite
Inoltre per la sicurezza dell'installazione è opportuno impostare dei permessi adeguati, questo significa assegnare a ''root'' tutti i file in modo che non siano modificabili da Apache, lo si fa con qualcosa del tipo:
37 6 Amministratore Truelite
{{{
38 6 Amministratore Truelite
chown -R root.root /usr/share/local/drupal
39 6 Amministratore Truelite
}}}
40 19 Amministratore Truelite
questo però non consentirà a Drupal di eseguire l'upload di file (ad esempio immagini) sul server. Drupal infatti fa si che i suddetti file vengono tutti manenuti in una sotto-directory {{{files}}} di quella in cui si è installato il programma; se questa non esiste, viene dal programma creata al primo upload.
41 6 Amministratore Truelite
42 19 Amministratore Truelite
Il problema è che avendo installato il tutto sotto {{{/usr}}} e senza permesso di scrittura per Apache questo meccanismo non funzionerà. Sarà allora necessario crare un'altra directory sotto {{{/var}}} e dargli adeguati permessi (in modo che Apache possa scriverci), e poi usare un link simbolico; lo si è fatto con i comandi:
43 6 Amministratore Truelite
{{{
44 1 Amministratore Truelite
mkdir /var/www/drupal/files
45 1 Amministratore Truelite
chmod 755 /var/www/drupal/files
46 1 Amministratore Truelite
chown www-data www-data /var/www/drupal/files
47 1 Amministratore Truelite
cd /usr/share/local/drupal
48 13 Amministratore Truelite
ln -s /var/www/drupal/files files
49 1 Amministratore Truelite
}}}
50 1 Amministratore Truelite
51 21 Amministratore Truelite
Occorre infine configurare Apache perché sia in grado di visualizzare il sito; anzitutto occorre installare ed abilitare {{{mod_php5}}}, per questo si è fatto:
52 1 Amministratore Truelite
{{{
53 21 Amministratore Truelite
apt-get install php5-mysql php5-gd libapache2-mod-php5 
54 18 Amministratore Truelite
a2enmod php5
55 18 Amministratore Truelite
}}}
56 21 Amministratore Truelite
inoltre occorrerà anche attivare SSL per consentire l'uso sicuro dell'interfaccia di amministrazione e creare un opportuno virtual host per le connessioni sulla porta 443.
57 18 Amministratore Truelite
58 21 Amministratore Truelite
Infine, dato che nel nostro caso si è deciso di rendere visibile il sito sotto una URL del tipo di '''!http://www.miosito.it/drupal''', si è modificato il file di configurazione del sito (nel caso {{{/etc/apache2/sites-available/default}}}) inserendovi la direttiva:
59 18 Amministratore Truelite
{{{
60 16 Amministratore Truelite
Alias /drupal /usr/local/share/drupal/
61 1 Amministratore Truelite
}}}
62 1 Amministratore Truelite
63 19 Amministratore Truelite
Un altro aspetto riguardante la configurazione di Apache è quello della riscrittura delle URL in modo da renderle più gradevoli (e facili da ricordare). Questo viene abilitato in Drupal nella sezione '''administer -> setting''' nella sezione delle impostazioni generali. Perché funzioni però è necessario abilitare delle rewrite rule, che sono mantenute nel file {{{.htaccess}}} installato nella directory principale dei sorgenti. 
64 1 Amministratore Truelite
65 18 Amministratore Truelite
Dato che l'uso di questo file comporta un maggior carico di lavoro per il server (che lo rilegge ad ogni accesso) si è preferito inserire la suddetta configurazione dentro la configurazione di Apache, questa è sostanzialmente la stessa presente nel suddetto file:
66 13 Amministratore Truelite
{{{
67 13 Amministratore Truelite
<Directory "/usr/local/share/drupal">
68 13 Amministratore Truelite
69 13 Amministratore Truelite
        # Protect files and directories from prying eyes.
70 13 Amministratore Truelite
        <FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root)$">
71 13 Amministratore Truelite
                Order deny,allow
72 13 Amministratore Truelite
                Deny from all
73 13 Amministratore Truelite
        </FilesMatch>
74 13 Amministratore Truelite
75 13 Amministratore Truelite
        # Set some options.
76 13 Amministratore Truelite
        Options -Indexes
77 1 Amministratore Truelite
        Options +FollowSymLinks
78 13 Amministratore Truelite
        # Override PHP settings. More in sites/default/settings.php
79 13 Amministratore Truelite
        # but the following cannot be changed at runtime.
80 13 Amministratore Truelite
        # PHP 5, Apache 1 and 2
81 13 Amministratore Truelite
        <IfModule mod_php5.c>
82 13 Amministratore Truelite
          php_value magic_quotes_gpc                0
83 21 Amministratore Truelite
          php_value register_globals                0
84 13 Amministratore Truelite
          php_value session.auto_start              0
85 13 Amministratore Truelite
        </IfModule>
86 13 Amministratore Truelite
87 13 Amministratore Truelite
        # Reduce the time dynamically generated pages are cache-able.
88 13 Amministratore Truelite
        <IfModule mod_expires.c>
89 13 Amministratore Truelite
          ExpiresByType text/html A1
90 13 Amministratore Truelite
        </IfModule>
91 13 Amministratore Truelite
92 13 Amministratore Truelite
        # Various rewrite rules.
93 13 Amministratore Truelite
        <IfModule mod_rewrite.c>
94 13 Amministratore Truelite
          RewriteEngine on
95 13 Amministratore Truelite
          # Modify the RewriteBase if you are using Drupal in a subdirectory and                               
96 13 Amministratore Truelite
          # the rewrite rules are not working properly.
97 1 Amministratore Truelite
          RewriteBase /drupal
98 1 Amministratore Truelite
99 1 Amministratore Truelite
          # Rewrite current-style URLs of the form 'index.php?q=x'.
100 1 Amministratore Truelite
          RewriteCond %{REQUEST_FILENAME} !-f
101 1 Amministratore Truelite
          RewriteCond %{REQUEST_FILENAME} !-d
102 13 Amministratore Truelite
          RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
103 13 Amministratore Truelite
        </IfModule>
104 1 Amministratore Truelite
</Directory>
105 1 Amministratore Truelite
}}}
106 21 Amministratore Truelite
solo che avendo spostato tutto sotto {{{/drupal}}} rispetto al default è necessaria anche la direttiva {{{RewriteBase /drupal}}} (qualora si sia fatta una scelta diversa si modifichino di conseguenza questa direttiva e la precedente {{{Alias}}}).  Inoltre perché le regole di riscrittura funzionino occorre anche abilitare il rispettivo modulo di Apache con:
107 19 Amministratore Truelite
{{{
108 19 Amministratore Truelite
a2enmod rewrite
109 19 Amministratore Truelite
}}}
110 21 Amministratore Truelite
Una volta cambiata la configurazione e riavviato Apache si abbia cura di rimuovere {{{.htaccess}}}.
111 21 Amministratore Truelite
 
112 16 Amministratore Truelite
113 16 Amministratore Truelite
=== Come aggiornare Drupal ===
114 16 Amministratore Truelite
115 16 Amministratore Truelite
Una volta eseguita l'installazione iniziale sarà sufficiente scaricare la nuova versione del programma e riscompattare i file; si dovrà ripetere la correzione dei permessi