DrupalInstall » Cronologia » Versione 32
Amministratore Truelite, 17-07-2007 12:38
1 | 1 | Amministratore Truelite | [[TracNav(TOC)]] |
---|---|---|---|
2 | |||
3 | 32 | Amministratore Truelite | h2. Installare e configurare Drupal a livello di intero server |
4 | |||
5 | |||
6 | 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. |
7 | 1 | Amministratore Truelite | |
8 | 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. |
||
9 | 19 | Amministratore Truelite | |
10 | 32 | Amministratore Truelite | <pre> |
11 | <pre> |
||
12 | 1 | Amministratore Truelite | cd |
13 | wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.x.tar.gz |
||
14 | cd /usr/share/local/drupal |
||
15 | tar -xvzf ~/drupal-4.7.x.tar.gz |
||
16 | mv drupal-4.7.x drupal |
||
17 | 32 | Amministratore Truelite | </pre> |
18 | 23 | Amministratore Truelite | |
19 | 32 | Amministratore Truelite | Occorre poi creare il database, nel caso specifico si è installato [[MySQL]], (per l'impostazione iniziale del quale si veda [[MySQLInitConf]]) e creato un database dedicato chiamato *sitodrupal*; poi si sono dati i privilegi di gestione per detto database ad un apposito utente con: |
20 | <pre> |
||
21 | 1 | Amministratore Truelite | mysqladmin -u root -p create sitodrupal |
22 | mysql -u root -p |
||
23 | ... |
||
24 | mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, |
||
25 | ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON sitodrupal.* TO |
||
26 | 'utentedrupal'@'localhost' IDENTIFIED BY 'passwordsegreta'; |
||
27 | 32 | Amministratore Truelite | </pre> |
28 | 1 | Amministratore Truelite | fatto questo si sono create le tabelle con l'apposito script fornito da Drupal: |
29 | 32 | Amministratore Truelite | <pre> |
30 | 2 | Amministratore Truelite | cd /usr/share/local/drupal |
31 | mysql -u utentedrupal -p sitodrupal < database/database.4.1.mysql |
||
32 | 32 | Amministratore Truelite | </pre> |
33 | <pre> |
||
34 | <pre> |
||
35 | 1 | Amministratore Truelite | $db_url = 'mysql://utentedrupal:passwordsegreta@localhost/sitodrupal'; |
36 | 32 | Amministratore Truelite | </pre> |
37 | 1 | Amministratore Truelite | |
38 | |||
39 | 32 | Amministratore Truelite | Per la sicurezza dell'installazione è anzitutto opportuno impostare dei permessi adeguati sui file, questo significa assegnare a _root_ tutti i file in modo che non siano modificabili da Apache, lo si fa con qualcosa del tipo: |
40 | <pre> |
||
41 | 1 | Amministratore Truelite | chown -R root.root /usr/share/local/drupal |
42 | 32 | Amministratore Truelite | </pre> |
43 | 1 | Amministratore Truelite | |
44 | 32 | Amministratore Truelite | <pre> |
45 | 1 | Amministratore Truelite | |
46 | 32 | Amministratore Truelite | <pre> |
47 | <pre> |
||
48 | 1 | Amministratore Truelite | mkdir /var/www/drupal/files |
49 | 13 | Amministratore Truelite | chmod 755 /var/www/drupal/files |
50 | 1 | Amministratore Truelite | chown www-data www-data /var/www/drupal/files |
51 | cd /usr/share/local/drupal |
||
52 | ln -s /var/www/drupal/files files |
||
53 | 32 | Amministratore Truelite | </pre> |
54 | 21 | Amministratore Truelite | |
55 | 32 | Amministratore Truelite | <pre> |
56 | <pre> |
||
57 | 23 | Amministratore Truelite | apt-get install php5-mysql php5-gd libapache2-mod-php5 |
58 | 1 | Amministratore Truelite | a2enmod php5 |
59 | 32 | Amministratore Truelite | </pre> |
60 | 16 | 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 (tralasciamo questo passaggio, non essendo legato all'installazione di Drupal). |
61 | 1 | Amministratore Truelite | |
62 | 32 | Amministratore Truelite | <pre> |
63 | <pre> |
||
64 | 1 | Amministratore Truelite | Alias /drupal /usr/local/share/drupal/ |
65 | 32 | Amministratore Truelite | </pre> |
66 | 23 | Amministratore Truelite | |
67 | 32 | Amministratore Truelite | <pre> |
68 | 1 | Amministratore Truelite | |
69 | 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, inserendo nel solito file di configurazione la seguente sezione: |
||
70 | 32 | Amministratore Truelite | <pre> |
71 | 1 | Amministratore Truelite | <Directory "/usr/local/share/drupal"> |
72 | 13 | Amministratore Truelite | # Protect files and directories from prying eyes. |
73 | 1 | Amministratore Truelite | <FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root)$"> |
74 | Order deny,allow |
||
75 | Deny from all |
||
76 | 13 | Amministratore Truelite | </FilesMatch> |
77 | 1 | Amministratore Truelite | |
78 | # Set some options. |
||
79 | Options -Indexes |
||
80 | Options +FollowSymLinks |
||
81 | 21 | Amministratore Truelite | # Override PHP settings. More in sites/default/settings.php |
82 | 13 | Amministratore Truelite | # but the following cannot be changed at runtime. |
83 | 1 | Amministratore Truelite | # PHP 5, Apache 1 and 2 |
84 | <IfModule mod_php5.c> |
||
85 | php_value magic_quotes_gpc 0 |
||
86 | 13 | Amministratore Truelite | php_value register_globals 0 |
87 | php_value session.auto_start 0 |
||
88 | </IfModule> |
||
89 | |||
90 | # Reduce the time dynamically generated pages are cache-able. |
||
91 | <IfModule mod_expires.c> |
||
92 | 32 | Amministratore Truelite | [[ExpiresByType]] text/html A1 |
93 | 13 | Amministratore Truelite | </IfModule> |
94 | 1 | Amministratore Truelite | |
95 | # Various rewrite rules. |
||
96 | <IfModule mod_rewrite.c> |
||
97 | 32 | Amministratore Truelite | [[RewriteEngine]] on |
98 | # Modify the [[RewriteBase]] if you are using Drupal in a subdirectory and |
||
99 | 1 | Amministratore Truelite | # the rewrite rules are not working properly. |
100 | 32 | Amministratore Truelite | [[RewriteBase]] /drupal |
101 | 1 | Amministratore Truelite | |
102 | # Rewrite current-style URLs of the form 'index.php?q=x'. |
||
103 | 32 | Amministratore Truelite | [[RewriteCond]] %{REQUEST_FILENAME} !-f |
104 | [[RewriteCond]] %{REQUEST_FILENAME} !-d |
||
105 | [[RewriteRule]] ^(.*)$ index.php?q=$1 [L,QSA] |
||
106 | 23 | Amministratore Truelite | </IfModule> |
107 | 1 | Amministratore Truelite | </Directory> |
108 | 32 | Amministratore Truelite | </pre> |
109 | 1 | Amministratore Truelite | |
110 | 32 | Amministratore Truelite | <pre> |
111 | <pre> |
||
112 | 1 | Amministratore Truelite | a2enmod rewrite |
113 | 32 | Amministratore Truelite | </pre> |
114 | <pre> |
||
115 | 25 | Amministratore Truelite | |
116 | |||
117 | 32 | Amministratore Truelite | h2. Configurazione di sicurezza |
118 | |||
119 | |||
120 | 25 | Amministratore Truelite | Una volta eseguita la configurazione di base è opportuno proteggere adeguatamente gli accessi; per questo motivo si abbia cura di redirigere sotto SSL la pagina assegnata al login degli utenti. Questo si potrà fare con qualcosa del tipo: |
121 | 32 | Amministratore Truelite | <pre> |
122 | 25 | Amministratore Truelite | <VirtualHost *:80> |
123 | 1 | Amministratore Truelite | Include "/etc/apache2/sites-available/config-common" |
124 | 25 | Amministratore Truelite | Redirect /drupal/login https://www.miosito.it/drupal/login |
125 | 1 | Amministratore Truelite | </VirtualHost> |
126 | 32 | Amministratore Truelite | </pre> |
127 | <pre> |
||
128 | 1 | Amministratore Truelite | |
129 | 32 | Amministratore Truelite | <pre> |
130 | <pre> |
||
131 | 1 | Amministratore Truelite | ini_set('arg_separator.output', '&'); |
132 | 25 | Amministratore Truelite | ini_set('magic_quotes_runtime', 0); |
133 | 1 | Amministratore Truelite | ini_set('magic_quotes_sybase', 0); |
134 | ini_set('session.cache_expire', 86400); |
||
135 | ini_set('session.cache_limiter', 'none'); |
||
136 | 25 | Amministratore Truelite | ini_set('session.cookie_lifetime', 86400); |
137 | 1 | Amministratore Truelite | ini_set('session.gc_maxlifetime', 86400); |
138 | 25 | Amministratore Truelite | ini_set('session.save_handler', 'user'); |
139 | 1 | Amministratore Truelite | ini_set('session.use_only_cookies', 1); |
140 | ini_set('session.use_trans_sid', 0); |
||
141 | 32 | Amministratore Truelite | ini_set('url_rewriter.tags', _); |
142 | </pre> |
||
143 | 26 | Amministratore Truelite | |
144 | 23 | Amministratore Truelite | |
145 | |||
146 | 32 | Amministratore Truelite | h2. Come aggiornare Drupal |
147 | |||
148 | |||
149 | <pre> |
||
150 | <pre> |
||
151 | 23 | Amministratore Truelite | cd /usr/share/local/ |
152 | mv drupal drupal_old |
||
153 | tar -xvzf ~/drupal-4.7.new.tar.gz |
||
154 | mv drupal-4.7.new drupal |
||
155 | 24 | Amministratore Truelite | cp drupal_old/sites/default/settings.php drupal/sites/default/settings.php |
156 | 1 | Amministratore Truelite | cd drupal |
157 | ln -s /var/www/drupal/files files |
||
158 | 26 | Amministratore Truelite | rm .htaccess |
159 | 32 | Amministratore Truelite | </pre> |
160 | 1 | Amministratore Truelite | |
161 | 31 | Amministratore Truelite | Inoltre se si sono installati dei moduli aggiuntivi si abbia cura di verificare se esistono aggiornamenti anche per questi, e di reinstallarli nella nuova versione: |
162 | 32 | Amministratore Truelite | <pre> |
163 | 31 | Amministratore Truelite | cd /usr/share/local/ |
164 | cp -a drupal_old/modules/moduloaggiuntivo drupal/modules/ |
||
165 | 32 | Amministratore Truelite | </pre> |
166 | 1 | Amministratore Truelite | |
167 | 27 | Amministratore Truelite | La cosa si complica notevolmente qualora invece si debba passare ad una |
168 | 32 | Amministratore Truelite | diversa _major release_, in particolare il passaggio dalla versione 4.7 alla |
169 | 27 | Amministratore Truelite | 5.1 è reso molto complicato dalle variazioni effettuate alla struttura del |
170 | database, che richiedono un passaggio per gradi, con la necessità di eseguire |
||
171 | 28 | Amministratore Truelite | prima l'upgrade alla versione 5.0 e da questa alla 5.1. |
172 | |||
173 | La procedura suggerita in questo caso è installare la nuova versione su un sito di test, utilizzando un backup della versione corrente. Il primo passo allora è duplicare i file della precedente installazione con: |
||
174 | 32 | Amministratore Truelite | <pre> |
175 | 28 | Amministratore Truelite | cp -a drupal drupal_new |
176 | cp -a /var/www/drupal/files /var/www/drupal/files_new |
||
177 | rm drupal_new/files |
||
178 | 1 | Amministratore Truelite | ln -s /var/www/drupal/files_new drupal_new/files |
179 | 32 | Amministratore Truelite | </pre> |
180 | 28 | Amministratore Truelite | |
181 | 31 | Amministratore Truelite | Poi occorre replicare i dati del database, per questo prima si deve fare un backup dello stesso, ed usare quest'ultimo per creare un nuovo database per il sito di prova, questo si fa con: |
182 | 32 | Amministratore Truelite | <pre> |
183 | 1 | Amministratore Truelite | mysqldump -u utentedrupal -p sitodrupal > db_sito.sql |
184 | 28 | Amministratore Truelite | mysqadmin -u root -p create nuovosito |
185 | 32 | Amministratore Truelite | </pre> |
186 | 1 | Amministratore Truelite | dopo di che si devono assegnare i permessi anche sul sito replicato, in maniera analoga a quanto fatto in sede di installazione, con |
187 | 32 | Amministratore Truelite | <pre> |
188 | 1 | Amministratore Truelite | use nuovosito; |
189 | 29 | Amministratore Truelite | GRANT ALL PRIVILEGES ON nuovosito.* TO utente@localhost IDENTIFIED BY 'password'; |
190 | 32 | Amministratore Truelite | </pre> |
191 | 1 | Amministratore Truelite | qualora si debba resettare la password di amministrazione (quella dell'utente con uid 1 dentro Drupal) si potranno invece utilizzare i seguenti comandi: |
192 | 32 | Amministratore Truelite | <pre> |
193 | 1 | Amministratore Truelite | use nuovosito; |
194 | 31 | Amministratore Truelite | update users set pass=md5('NEWPASS') where uid = 1; |
195 | 32 | Amministratore Truelite | </pre> |
196 | 1 | Amministratore Truelite | ed infine si potranno reinserire i dati con: |
197 | 32 | Amministratore Truelite | <pre> |
198 | 31 | Amministratore Truelite | mysql -u utente -p nuovosito < db_sito.sql |
199 | 32 | Amministratore Truelite | </pre> |
200 | 31 | Amministratore Truelite | |
201 | Fintanto che si è installato un solo sito dovrebbe essere sufficiente |
||
202 | 32 | Amministratore Truelite | <pre> |
203 | 30 | Amministratore Truelite | nuova URL del sito e la diversa stringa di connessione al database, per |
204 | riottenere tutto, qualora si siano inseriti siti con la tecnica di tante |
||
205 | 32 | Amministratore Truelite | <pre> |
206 | 1 | Amministratore Truelite | perché queste vanno rinominate per riflettere la posizione del nuovo sito e se |
207 | ci sono dei temi dentro, dato che alcuni pathname sono nel database, si |
||
208 | possono avere comunque disfunzioni, per cui alla fine oltre a rinominare può |
||
209 | essere il caso di lasciare dei link simbolici con il vecchio nome. |
||
210 | 30 | Amministratore Truelite | |
211 | Per eseguire l'upgrade occorre mettere collegarsi come amministratore, |
||
212 | impostare un tema di default e disabilitare tutti i moduli, dopo di che, se |
||
213 | 31 | Amministratore Truelite | non si sono apportate modifiche significative, e se il passaggio è minore |
214 | (cioè ad una versione successiva nella stessa serie di sviluppo) è sufficiente |
||
215 | 1 | Amministratore Truelite | scompattare i sorgenti della nuova versione sul sito corrente, e poi |
216 | 31 | Amministratore Truelite | ripristinare le configurazioni, in sostanza qualcosa del tipo: |
217 | 32 | Amministratore Truelite | <pre> |
218 | 31 | Amministratore Truelite | cd /usr/local/share |
219 | 1 | Amministratore Truelite | mv drupal_new/sites/default sitedefault |
220 | mv drupal_new drupal-4.7.6 |
||
221 | tar -xvzf /root/software/drupal-4.7.6.tar.gz |
||
222 | mv drupal-4.7.6 drupal_new |
||
223 | rm -fR drupal_new/sites/default |
||
224 | 31 | Amministratore Truelite | mv sitedefault drupal_new/sites/default |
225 | 32 | Amministratore Truelite | </pre> |
226 | 31 | Amministratore Truelite | (eventualmente si ripristinino i permessi come illustrato in precedenza) tutto |
227 | questo andrà fatto restando collegati come amministratore, in modo da poter |
||
228 | 32 | Amministratore Truelite | <pre> |
229 | 31 | Amministratore Truelite | dall'interfaccia di configurazione dei moduli o all'indirizzo standard |
230 | 32 | Amministratore Truelite | <pre> |
231 | 31 | Amministratore Truelite | accessibile occorrerà seguire le istruzioni riportate nella pagina di errore |
232 | (in sostanza modificare lo script per permetterne l'esecuzione da chiunque). |
||
233 | |||
234 | Una volta eseguito l'aggiornamento, se non ci sono stati errori (o se questi |
||
235 | non sono significativi) si possono riabilitare i moduli, avendo cura di |
||
236 | aggiornare anche questi, qualora vi fossero nuove versioni, e di rieseguire |
||
237 | ogni volta che si riabilita un modulo. |
||
238 | |||
239 | Se il passaggio è dal 4.7 al 5.1, vista l'entità dei cambiamenti, il |
||
240 | procedimento si complica, conviene di nuovo fare una copia del sito originale |
||
241 | (che si suppone sia aggiornato all'ultima versione del 4.7) come illustrato in |
||
242 | precedenza, e poi però una volta che su detta copia si siano disabilitati i |
||
243 | moduli e impostato un tema di default, si deve passare direttamente ai |
||
244 | sorgenti della nuova versione di drupal con qualcosa del tipo: |
||
245 | 32 | Amministratore Truelite | <pre> |
246 | 31 | Amministratore Truelite | tar -xvzf /root/software/drupal-5.0.tar.gz |
247 | rm -fR drupal-5.0/sites/default |
||
248 | cp -a drupal_new/sites/default drupal-5.0/sites/ |
||
249 | rm -fR drupal_new |
||
250 | mv drupal-5.0 drupal_new |
||
251 | 32 | Amministratore Truelite | </pre> |
252 | <pre> |
||
253 | 31 | Amministratore Truelite | personalizzazione). |
254 | |||
255 | A questo punto si potrà eseguire l'aggiornamento alla versione 5.0 usando lo |
||
256 | 32 | Amministratore Truelite | <pre> |
257 | 31 | Amministratore Truelite | procedimento per passare al 5.1, con: |
258 | 32 | Amministratore Truelite | <pre> |
259 | 31 | Amministratore Truelite | tar -xvzf /root/software/drupal-5.1.tar.gz |
260 | rm -fR drupal-5.1/sites/default |
||
261 | cp -a drupal_new/sites/default drupal-5.1/sites/ |
||
262 | rm -fR drupal_new |
||
263 | mv drupal-5.1 drupal_new |
||
264 | 32 | Amministratore Truelite | </pre> |
265 | <pre> |
||
266 | <pre> |
||
267 | 31 | Amministratore Truelite | |
268 | Una volta arrivati al 5.1 si potranno reinstallare gli eventuali moduli |
||
269 | aggiuntivi (da scaricare sul sito di Drupal, prendendo la versione per il |
||
270 | 5.1. Si tenga presente che alcuni di essi sono stati modificati pesantemente, |
||
271 | la regola generale è che tutte le volte che si inserisce un nuovo modulo e lo |
||
272 | 32 | Amministratore Truelite | <pre> |
273 | 31 | Amministratore Truelite | questo non è sufficiente, e si deve aver cura di controllare le istruzioni |
274 | riportate nel README allegato al modulo. |
||
275 | |||
276 | 32 | Amministratore Truelite | <pre> |
277 | 31 | Amministratore Truelite | procedimento molto più complesso. Il modulo infatti è stato riscritto da zero |
278 | in maniera indipendente, per questo motivo oltre a disabilitare e |
||
279 | disinstallare il precedente modulo prima della migrazione, occorre anche |
||
280 | intervenire sul database prima di riabilitarlo, eliminando ogni riferimento ad |
||
281 | esso presente (a causa della precedente installazione), è cioè richiesto che, |
||
282 | una volta collegatisi al database, si eseguano i seguenti comandi: |
||
283 | 32 | Amministratore Truelite | <pre> |
284 | 31 | Amministratore Truelite | use nuovosito; |
285 | DELETE FROM system WHERE name = 'ldapauth'; |
||
286 | DELETE FROM system WHERE name = 'ldapgroups'; |
||
287 | 1 | Amministratore Truelite | DELETE FROM system WHERE name = 'ldapdata'; |
288 | 32 | Amministratore Truelite | </pre> |
289 | 1 | Amministratore Truelite | |
290 | A questo punto si potrà installare il nuovo modulo, eseguire lo script |
||
291 | 32 | Amministratore Truelite | <pre> |
292 | 1 | Amministratore Truelite | interna di Drupal. |