Project

General

Profile

DrupalInstall » History » Version 19

Amministratore Truelite, 10/23/2006 06:28 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 19 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. 
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 19 Amministratore Truelite
Occorre infine configurare Apache perché sia in grado di visualizzare il sito; anzitutto occorre installare ed abilitare {{{mod_php5}}}, inoltre occorrerà anche attivare SSL per consentire l'uso sicuro dell'interfaccia di amministrazione; per questo si è fatto:
52 1 Amministratore Truelite
{{{
53 19 Amministratore Truelite
apt-get install php5-mysql php5-gd libapache2-mod-php5 openssl
54 1 Amministratore Truelite
echo Listen 443 >> /etc/apache2/ports.conf
55 18 Amministratore Truelite
a2enmod ssl
56 18 Amministratore Truelite
a2enmod php5
57 18 Amministratore Truelite
}}}
58 19 Amministratore Truelite
e è anche creato un opportuno virtual host per le connessioni sulla porta 443.
59 18 Amministratore Truelite
60 19 Amministratore Truelite
Infine, dato che nel nostro caso si è deciso di rendere visibile il sito sotto una del tipo URL '''!http://www.miosito.it/drupal''' si è modificato il file di configurazione del sito (nel caso {{{/etc/apache2/sites-available/default}}}) inserendovi la direttiva:
61 18 Amministratore Truelite
{{{
62 16 Amministratore Truelite
Alias /drupal /usr/local/share/drupal/
63 1 Amministratore Truelite
}}}
64 1 Amministratore Truelite
65 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. 
66 1 Amministratore Truelite
67 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:
68 13 Amministratore Truelite
{{{
69 13 Amministratore Truelite
<Directory "/usr/local/share/drupal">
70 13 Amministratore Truelite
71 13 Amministratore Truelite
        # Protect files and directories from prying eyes.
72 13 Amministratore Truelite
        <FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root)$">
73 13 Amministratore Truelite
                Order deny,allow
74 13 Amministratore Truelite
                Deny from all
75 13 Amministratore Truelite
        </FilesMatch>
76 13 Amministratore Truelite
77 13 Amministratore Truelite
        # Set some options.
78 13 Amministratore Truelite
        Options -Indexes
79 13 Amministratore Truelite
        Options +FollowSymLinks
80 13 Amministratore Truelite
        # Override PHP settings. More in sites/default/settings.php
81 13 Amministratore Truelite
        # but the following cannot be changed at runtime.
82 13 Amministratore Truelite
        # PHP 5, Apache 1 and 2
83 13 Amministratore Truelite
        <IfModule mod_php5.c>
84 13 Amministratore Truelite
          php_value magic_quotes_gpc                0
85 15 Amministratore Truelite
#          php_value register_globals                0
86 13 Amministratore Truelite
          php_value session.auto_start              0
87 13 Amministratore Truelite
        </IfModule>
88 13 Amministratore Truelite
89 13 Amministratore Truelite
        # Reduce the time dynamically generated pages are cache-able.
90 13 Amministratore Truelite
        <IfModule mod_expires.c>
91 13 Amministratore Truelite
          ExpiresByType text/html A1
92 13 Amministratore Truelite
        </IfModule>
93 13 Amministratore Truelite
94 13 Amministratore Truelite
        # Various rewrite rules.
95 13 Amministratore Truelite
        <IfModule mod_rewrite.c>
96 13 Amministratore Truelite
          RewriteEngine on
97 13 Amministratore Truelite
          # Modify the RewriteBase if you are using Drupal in a subdirectory and                               
98 13 Amministratore Truelite
          # the rewrite rules are not working properly.
99 1 Amministratore Truelite
          RewriteBase /drupal
100 1 Amministratore Truelite
101 1 Amministratore Truelite
          # Rewrite current-style URLs of the form 'index.php?q=x'.
102 1 Amministratore Truelite
          RewriteCond %{REQUEST_FILENAME} !-f
103 13 Amministratore Truelite
          RewriteCond %{REQUEST_FILENAME} !-d
104 13 Amministratore Truelite
          RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
105 13 Amministratore Truelite
        </IfModule>
106 13 Amministratore Truelite
</Directory>
107 1 Amministratore Truelite
}}}
108 1 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}}}).
109 1 Amministratore Truelite
 
110 19 Amministratore Truelite
Inoltre perché le regole di riscrittura funzionino occorre anche abilitare il rispettivo modulo di Apache, e quindi si è anche usato il comando:
111 19 Amministratore Truelite
{{{
112 19 Amministratore Truelite
a2enmod rewrite
113 19 Amministratore Truelite
}}}
114 16 Amministratore Truelite
115 16 Amministratore Truelite
116 16 Amministratore Truelite
=== Come aggiornare Drupal ===
117 16 Amministratore Truelite
118 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