DrupalInstall » Cronologia » Versione 22
Amministratore Truelite, 23-10-2006 18:44
1 | 1 | Amministratore Truelite | [[TracNav(TOC)]] |
---|---|---|---|
2 | 13 | Amministratore Truelite | == Installare e configurare Drupal a livello di intero server == |
3 | 1 | Amministratore Truelite | |
4 | 22 | 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 manutenzione ed aggiornamento diventino più difficili, tratteremo l'installazione a partire dai sorgenti. |
5 | 1 | Amministratore Truelite | |
6 | 22 | Amministratore Truelite | Il problema generale della configurazione di Drupal è che il programma è pensato per essere installato nella home di un utente via FTP e non come parte delle applicazioni web presenti su un server. Questo comporta che la procedura illustrata nella distribuzione ufficiale presenta una serie di problemi sia di efficienza che di sicurezza. |
7 | 19 | Amministratore Truelite | |
8 | 22 | Amministratore Truelite | Nel nostro caso vedremo come fare una installazione a livello di applicazione web installata su un server e non nella home di un utente. 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 | cd |
||
11 | wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.x.tar.gz |
||
12 | cd /usr/share/local/drupal |
||
13 | tar -xvzf ~/drupal-4.7.x.tar.gz |
||
14 | mv drupal-4.7.x drupal |
||
15 | }}} |
||
16 | |||
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 | mysqladmin -u root -p create sitodrupal |
||
20 | mysql -u root -p |
||
21 | ... |
||
22 | mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, |
||
23 | ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON sitodrupal.* TO |
||
24 | 'utentedrupal'@'localhost' IDENTIFIED BY 'passwordsegreta'; |
||
25 | }}} |
||
26 | 19 | Amministratore Truelite | fatto questo si sono create le tabelle con l'apposito script fornito da Drupal: |
27 | 2 | Amministratore Truelite | {{{ |
28 | cd /usr/share/local/drupal |
||
29 | mysql -u utentedrupal -p sitodrupal < database/database.4.1.mysql |
||
30 | }}} |
||
31 | è modificato il file {{{sites/default/settings.php}}} impostando il valore: |
||
32 | 1 | Amministratore Truelite | {{{ |
33 | $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 | chown -R root.root /usr/share/local/drupal |
||
39 | }}} |
||
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 | chmod 755 /var/www/drupal/files |
||
46 | chown www-data www-data /var/www/drupal/files |
||
47 | cd /usr/share/local/drupal |
||
48 | 13 | Amministratore Truelite | ln -s /var/www/drupal/files files |
49 | 1 | Amministratore Truelite | }}} |
50 | |||
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 | }}} |
||
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 | |||
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 | <Directory "/usr/local/share/drupal"> |
||
68 | |||
69 | # Protect files and directories from prying eyes. |
||
70 | <FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root)$"> |
||
71 | Order deny,allow |
||
72 | Deny from all |
||
73 | </FilesMatch> |
||
74 | |||
75 | # Set some options. |
||
76 | Options -Indexes |
||
77 | 1 | Amministratore Truelite | Options +FollowSymLinks |
78 | 13 | Amministratore Truelite | # Override PHP settings. More in sites/default/settings.php |
79 | # but the following cannot be changed at runtime. |
||
80 | # PHP 5, Apache 1 and 2 |
||
81 | <IfModule mod_php5.c> |
||
82 | 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 | </IfModule> |
||
86 | |||
87 | # Reduce the time dynamically generated pages are cache-able. |
||
88 | <IfModule mod_expires.c> |
||
89 | ExpiresByType text/html A1 |
||
90 | </IfModule> |
||
91 | |||
92 | # Various rewrite rules. |
||
93 | <IfModule mod_rewrite.c> |
||
94 | RewriteEngine on |
||
95 | # Modify the RewriteBase if you are using Drupal in a subdirectory and |
||
96 | # the rewrite rules are not working properly. |
||
97 | 1 | Amministratore Truelite | RewriteBase /drupal |
98 | |||
99 | # Rewrite current-style URLs of the form 'index.php?q=x'. |
||
100 | RewriteCond %{REQUEST_FILENAME} !-f |
||
101 | RewriteCond %{REQUEST_FILENAME} !-d |
||
102 | 13 | Amministratore Truelite | RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] |
103 | </IfModule> |
||
104 | 1 | Amministratore Truelite | </Directory> |
105 | }}} |
||
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 | a2enmod rewrite |
||
109 | }}} |
||
110 | 21 | Amministratore Truelite | Una volta cambiata la configurazione e riavviato Apache si abbia cura di rimuovere {{{.htaccess}}}. |
111 | |||
112 | 16 | Amministratore Truelite | |
113 | === Come aggiornare Drupal === |
||
114 | |||
115 | 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 |