DrupalInstall » Cronologia » Versione 19
Amministratore Truelite, 23-10-2006 18:28
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 | |||
8 | 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 | 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 | 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 | a2enmod php5 |
||
57 | }}} |
||
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 | |||
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 | <Directory "/usr/local/share/drupal"> |
||
70 | |||
71 | # Protect files and directories from prying eyes. |
||
72 | <FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root)$"> |
||
73 | Order deny,allow |
||
74 | Deny from all |
||
75 | </FilesMatch> |
||
76 | |||
77 | # Set some options. |
||
78 | Options -Indexes |
||
79 | Options +FollowSymLinks |
||
80 | # Override PHP settings. More in sites/default/settings.php |
||
81 | # but the following cannot be changed at runtime. |
||
82 | # PHP 5, Apache 1 and 2 |
||
83 | <IfModule mod_php5.c> |
||
84 | 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 | </IfModule> |
||
88 | |||
89 | # Reduce the time dynamically generated pages are cache-able. |
||
90 | <IfModule mod_expires.c> |
||
91 | ExpiresByType text/html A1 |
||
92 | </IfModule> |
||
93 | |||
94 | # Various rewrite rules. |
||
95 | <IfModule mod_rewrite.c> |
||
96 | RewriteEngine on |
||
97 | # Modify the RewriteBase if you are using Drupal in a subdirectory and |
||
98 | # the rewrite rules are not working properly. |
||
99 | 1 | Amministratore Truelite | RewriteBase /drupal |
100 | |||
101 | # Rewrite current-style URLs of the form 'index.php?q=x'. |
||
102 | RewriteCond %{REQUEST_FILENAME} !-f |
||
103 | 13 | Amministratore Truelite | RewriteCond %{REQUEST_FILENAME} !-d |
104 | RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] |
||
105 | </IfModule> |
||
106 | </Directory> |
||
107 | 1 | Amministratore Truelite | }}} |
108 | 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 | |||
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 | {{{ |
||
112 | a2enmod rewrite |
||
113 | }}} |
||
114 | 16 | Amministratore Truelite | |
115 | |||
116 | === Come aggiornare Drupal === |
||
117 | |||
118 | 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 |