Project

General

Profile

DrupalInstall » History » Version 13

Amministratore Truelite, 10/23/2006 04:22 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 13 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, e visto che essa fornisce anche un efficiente sistema di aggiornamento, alla fine la scelta di usare la versione ufficiale rispetto a quella della distribuzione è sostenibile in quanto il maggior carico di lavoro per la manutenzione è ridotto e viene abbondantemente bilanciato dalle maggiori funzionalità messe a disposizione.
5 1 Amministratore Truelite
6 13 Amministratore Truelite
Il primo passo allora è quello di scaricare i sorgenti di Drupal e scompattarli nella directory di destinazione; nel nostro caso piazzeremo tutto sotto {{{/usr/share/local/drupal}}} con:
7 1 Amministratore Truelite
{{{
8 1 Amministratore Truelite
cd
9 1 Amministratore Truelite
wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.x.tar.gz
10 1 Amministratore Truelite
cd /usr/share/local/drupal
11 1 Amministratore Truelite
tar -xvzf ~/drupal-4.7.x.tar.gz
12 1 Amministratore Truelite
mv drupal-4.7.x drupal
13 1 Amministratore Truelite
}}}
14 1 Amministratore Truelite
15 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:
16 1 Amministratore Truelite
{{{
17 1 Amministratore Truelite
mysqladmin  -u root -p create sitodrupal
18 1 Amministratore Truelite
mysql -u root -p
19 1 Amministratore Truelite
...
20 1 Amministratore Truelite
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,
21 1 Amministratore Truelite
       ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON sitodrupal.*  TO
22 1 Amministratore Truelite
      'utentedrupal'@'localhost' IDENTIFIED BY 'passwordsegreta';
23 1 Amministratore Truelite
}}}
24 2 Amministratore Truelite
fatto questo si sono create le tabelle con l'apposito script fornito Drupal:
25 2 Amministratore Truelite
{{{
26 2 Amministratore Truelite
cd /usr/share/local/drupal
27 2 Amministratore Truelite
mysql -u utentedrupal -p sitodrupal < database/database.4.1.mysql
28 2 Amministratore Truelite
}}}
29 2 Amministratore Truelite
è modificato il file {{{sites/default/settings.php}}} impostando il valore:
30 2 Amministratore Truelite
{{{
31 1 Amministratore Truelite
$db_url = 'mysql://utentedrupal:passwordsegreta@localhost/sitodrupal';
32 6 Amministratore Truelite
}}}
33 6 Amministratore Truelite
34 6 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, con qualcosa del tipo:
35 6 Amministratore Truelite
{{{
36 6 Amministratore Truelite
chown -R root.root /usr/share/local/drupal
37 6 Amministratore Truelite
}}}
38 8 Amministratore Truelite
questo però non consentirà a Drupal di eseguire l'upload di file (ad esempio immagini) sul server. La caratteristica di Drupal infatti è che i suddetti file vengono tutti manenuti in una sotto directory {{{files}}} relativa a quella in cui si è installato il programma, che viene creata al primo upload.
39 6 Amministratore Truelite
40 8 Amministratore Truelite
Il problema è che avendo installato il tutto sotto {{{/usr}}} e senza permesso di scrittura  questo meccanismo non funzionerà; per questo sarà opportuno crare l'apposita directory sotto {{{/var}}} e dargli adeguati permessi, e poi usare un link simbolico; lo si è fatto con:
41 6 Amministratore Truelite
{{{
42 6 Amministratore Truelite
mkdir /var/www/drupal/files
43 6 Amministratore Truelite
chmod 755 /var/www/drupal/files
44 1 Amministratore Truelite
chown www-data www-data /var/www/drupal/files
45 1 Amministratore Truelite
cd /usr/share/local/drupal
46 1 Amministratore Truelite
ln -s /var/www/drupal/files files
47 13 Amministratore Truelite
}}}
48 13 Amministratore Truelite
49 13 Amministratore Truelite
Un altro aspetto critico è quello della riscrittura delle URL in modo da renderle più gradevoli (e facili da ricordare). Questo viene abilitato da 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. 
50 13 Amministratore Truelite
51 13 Amministratore Truelite
Dato che l'uso di questi file comporta (giustificato quando l'installazione è nella home di un utente, non per una generale) un maggior carico di lavoro per il server (che li rilegge ad ogni accesso) si è preferito inserire la suddetta configurazione dentro la configurazione di Apache, con un qualcosa del tipo:
52 13 Amministratore Truelite
{{{
53 13 Amministratore Truelite
#
54 13 Amministratore Truelite
# Apache/PHP/Drupal settings:
55 13 Amministratore Truelite
#
56 13 Amministratore Truelite
<Directory "/usr/local/share/drupal">
57 13 Amministratore Truelite
58 13 Amministratore Truelite
        # Protect files and directories from prying eyes.
59 13 Amministratore Truelite
        <FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root)$">
60 13 Amministratore Truelite
                Order deny,allow
61 13 Amministratore Truelite
                Deny from all
62 13 Amministratore Truelite
        </FilesMatch>
63 13 Amministratore Truelite
64 13 Amministratore Truelite
        # Set some options.
65 13 Amministratore Truelite
        Options -Indexes
66 13 Amministratore Truelite
        Options +FollowSymLinks
67 13 Amministratore Truelite
        # Override PHP settings. More in sites/default/settings.php
68 13 Amministratore Truelite
        # but the following cannot be changed at runtime.
69 13 Amministratore Truelite
        # PHP 5, Apache 1 and 2
70 13 Amministratore Truelite
        <IfModule mod_php5.c>
71 13 Amministratore Truelite
          php_value magic_quotes_gpc                0
72 13 Amministratore Truelite
          php_value register_globals                0
73 13 Amministratore Truelite
          php_value session.auto_start              0
74 13 Amministratore Truelite
        </IfModule>
75 13 Amministratore Truelite
76 13 Amministratore Truelite
        # Reduce the time dynamically generated pages are cache-able.
77 13 Amministratore Truelite
        <IfModule mod_expires.c>
78 13 Amministratore Truelite
          ExpiresByType text/html A1
79 13 Amministratore Truelite
        </IfModule>
80 13 Amministratore Truelite
81 13 Amministratore Truelite
        # Various rewrite rules.
82 13 Amministratore Truelite
        <IfModule mod_rewrite.c>
83 13 Amministratore Truelite
          RewriteEngine on
84 13 Amministratore Truelite
          # If your site can be accessed both with and without the prefix www.
85 13 Amministratore Truelite
          # you can use one of the following settings to force user to use only
86 13 Amministratore Truelite
one option:
87 13 Amministratore Truelite
          #
88 13 Amministratore Truelite
          # If you want the site to be accessed WITH the www. only, adapt and uncomment the following:
89 13 Amministratore Truelite
          # RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
90 13 Amministratore Truelite
          # RewriteRule .* http://www.example.com/ [L,R=301]
91 13 Amministratore Truelite
          #
92 13 Amministratore Truelite
          #
93 13 Amministratore Truelite
          # If you want the site to be accessed only WITHOUT the www. , adapt and uncomment the following:
94 13 Amministratore Truelite
          # RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
95 13 Amministratore Truelite
          # RewriteRule .* http://example.com/ [L,R=301]
96 13 Amministratore Truelite
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 13 Amministratore Truelite
          RewriteBase /drupal
100 13 Amministratore Truelite
101 13 Amministratore Truelite
          # Rewrite current-style URLs of the form 'index.php?q=x'.
102 13 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 2 Amministratore Truelite
}}}