Project

General

Profile

DrupalInstall » History » Revision 16

Revision 15 (Amministratore Truelite, 10/23/2006 04:36 PM) → Revision 16/33 (Amministratore Truelite, 10/23/2006 06:01 PM)

[[TracNav(TOC)]]
== Installare e configurare Drupal a livello di intero server ==

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.

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:
{{{
cd
wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.x.tar.gz
cd /usr/share/local/drupal
tar -xvzf ~/drupal-4.7.x.tar.gz
mv drupal-4.7.x drupal
}}}

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:
{{{
mysqladmin -u root -p create sitodrupal
mysql -u root -p
...
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,
ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON sitodrupal.* TO
'utentedrupal'@'localhost' IDENTIFIED BY 'passwordsegreta';
}}}
fatto questo si sono create le tabelle con l'apposito script fornito Drupal:
{{{
cd /usr/share/local/drupal
mysql -u utentedrupal -p sitodrupal < database/database.4.1.mysql
}}}
è modificato il file {{{sites/default/settings.php}}} impostando il valore:
{{{
$db_url = 'mysql://utentedrupal:passwordsegreta@localhost/sitodrupal';
}}}

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:
{{{
chown -R root.root /usr/share/local/drupal
}}}
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.

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:
{{{
mkdir /var/www/drupal/files
chmod 755 /var/www/drupal/files
chown www-data www-data /var/www/drupal/files
cd /usr/share/local/drupal
ln -s /var/www/drupal/files files
}}}

Occorre poi configurare Apache perché sia in grado di visualizzare il sito, nel nostro caso si è deciso di porlo sotto la URL '''http://www.miosito.it/drupal''' per questo si è modificato {{{/etc/apache2/sites-available/default}}} inserendovi la direttiva:
{{{
Alias /drupal /usr/local/share/drupal/
}}}

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.

Dato che l'uso di questo 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 lo li rilegge ad ogni accesso) si è preferito inserire la suddetta configurazione dentro la configurazione di Apache, con un qualcosa del tipo:
{{{
#
# Apache/PHP/Drupal settings:
#
<Directory "/usr/local/share/drupal">

# Protect files and directories from prying eyes.
<FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root)$">
Order deny,allow
Deny from all
</FilesMatch>

# Set some options.
Options -Indexes
Options +FollowSymLinks
# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.
# PHP 5, Apache 1 and 2
<IfModule mod_php5.c>
php_value magic_quotes_gpc 0
# php_value register_globals 0
php_value session.auto_start 0
</IfModule>

# Reduce the time dynamically generated pages are cache-able.
<IfModule mod_expires.c>
ExpiresByType text/html A1
</IfModule>

# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# Modify the RewriteBase if you are using Drupal in a subdirectory and
# the rewrite rules are not working properly.
RewriteBase /drupal

# Rewrite current-style URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
</Directory>
}}}
inserito in {{{/etc/apache2/sites-available/default}}},

=== Come aggiornare Drupal ===


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