Hosting di piccoli siti Drupal 7 su Aruba

Credo che Aruba possa essere una interessante soluzione economica per l'hosting di piccoli siti Drupal. Il problema è che out of the box Drupal non funziona su un hosting linux Aruba + MySQL (per capirci niente di più che la classica offerta base). Ma la cosa è in realtà facilmente risolvibile.

Dato che non ho ancora trovato in rete una guida completa che spiega esattamente tutti i passaggi che è necessario fare, lascio qui un paio di note.

Iniziamo col dire che con Drupal 7 è necessario anzitutto utilizzare PHP 5.3. Quindi dal pannello di gestione del dominio, impostiamo la versione di PHP da utilizzare:

[filefield-description]

Per quanto riguarda la configurazione di PHP, il php.ini di default va benissimo per Drupal:


[filefield-description]

Fin qui niente di nuovo. Veniamo invece ora alle reali problematiche.


.htaccess

La conf dei server di Aruba non consente la presenza di alcune regole nei file di configurazione htaccess di Apache. In particolare tutte le dichiarazioni di "Options" vanno commentate. Pena un bel messaggio di "Internal Server Error"

Gli .htaccess che vanno modificati sono tre. Il primo è nella root di Drupal ed è quello incluso nella distribuzione; gli altri vengono generati da Drupal stesso e sono creati nella cartella files e nella cartella temporanea (verificate in admin/config/media/file-system dove sono queste cartelle)

DRUPAL ROOT:

...
# Don't show directory listings for URLs which map to a directory.
# Options -Indexes

# Follow symbolic links in this directory.
# Options +FollowSymLinks

# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php

# Set the default handler.
# DirectoryIndex index.php index.html index.htm
...

CARELLA FILES:

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
# Options None
# Options +FollowSymLinks

CARTELLA TEMPORANEA:

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
Deny from all
# Options None
# Options +FollowSymLinks

Se gli .htaccess nella cartella file ed in quella temporanea non fossero presenti, è sufficiente crearli ed incollarci dentro le regole qui sopra.


Si noti che avevo provato anche a configurare boost per cachare il sito, ma a quanto pare non c'è modo di ovviare all'odioso "Internal server error". Non ho fatto che un rapido test, ma pare che boost non vada perchè il sistema sovrascrive di continuo il file .htaccess anche se i premessi sul file .htaccess sono impostati a sola lettura (come questo sia possibile è un mistero ;) ).

BOOST CACHE DIR:

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
# Options None
# Options +FollowSymLinks


PHP tuning

Di default Aruba prevede un memory limit di PHP pari a 64MB, troppo pochi per un'installazione Drupal con un po' di moduli attivi. Per prevenire errori del tipo "Allowed memory size  ... exhausted" è sufficiente aggiungere il seguente parametro nel settings.php del sito:

// Increase memory limit
ini_set('memory_limit', '256M');

256MB è un valore più che abbondante per piccoli siti.

Potrebbe infine risultare conveniente aumentare anche il max execution time di default impostato a 120 secondi. Impostarlo a 3 minuti dovrebbe essere sufficiente.

// Increase execution time
ini_set('max_execution_time', '180');

Per quanto riguarda il memory limit, potete fare un test in admin/reports/status, dovreste vedere il nuovo valore.