Aggiungere moduli al server

Il supporto per i DSO è disponibile dalla versione 1.3 di Apache, quindi potete caricare o compilare i moduli di Apache per il vostro server Web. Il supporto DSO permette di caricare i moduli in modo dinamico durante l'esecuzione del programma. Dal momento che i moduli vengono caricati solo se necessario, non usano risorse di memoria.

Il team di sviluppo di Apache fornisce una documentazione completa all'indirizzo http://www.apache.org/docs/dso.html. Dopo aver installato il vostro server potete anche controllare http://vostro_dominio/manual/mod/ per la documentazione sui moduli di Apache in formato HTML. Una descrizione su come caricare i moduli viene fornita di seguito, ma se avete bisogno di un approfondimento, consultate le pagine Web agli indirizzi sopracitati.

Affinché Apache utilizzi dinamicamente il modulo condiviso, tale modulo deve comparire nelle direttive LoadModule e AddModule all'interno del file httpd.conf. Per default le due entry indicate sopra sono già incluse in httpd.conf, ma alcuni dei moduli meno usati sono commentati e quindi non vengono caricati di default.

Se avete la necessità di utilizzare questi moduli non caricati, verificate nel file httpd.conf i moduli disponibili. Ogni modulo disponibile ha un riferimento LoadModule. Per mostrarvi un esempio ecco alcune entry della sezione LoadModule:

#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule env_module         modules/mod_env.so
LoadModule config_log_module  modules/mod_log_config.so
LoadModule agent_log_module   modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
#LoadModule mime_magic_module  modules/mod_mime_magic.so

Molte delle linee non sono commentate, il che significa che ogni modulo associato viene compilato e caricato per default. La prima linea è commentata, perciò il modulo corrispondente (mmap_static_module) viene compilato ma non caricato.

Per essere sicuri che Apache carichi un modulo, per prima cosa eliminate il commento alla linea corrispondente. Per esempio se volete che Apache attivi il modulo mime_magic_module, modificate la linea LoadModule in questo modo:

#LoadModule mime_magic_module modules/mod_mime_magic.so

È poi necessario eliminare il commento situato davanti alla direttiva AddModule in httpd.conf:

#AddModule mod_mime_magic.c

Dopo aver eliminato il commento dalle linee LoadModule e AddModule per il modulo che desiderate caricare, chiudete e riavviate Apache, come illustrato nella la sezione Avvio e chiusura di httpd. Dopo l'avvio il modulo dovrebbe essere caricato in Apache.

Se avete un modulo personale, potete aggiungerlo al vostro file httpd.conf in modo che venga compilato e caricato come un DSO. Per farlo è necessario installare il pacchetto apache-devel, come illustrato nel Capitolo 13, perché comprende i file include, i file header e il supporto per ampliare Apache (APXS). APXS utilizza i file include e i file header per compilare il vostro modulo in modo che funzioni con Apache.

AttenzioneAvvertimento
 

Se intendete utilizzare il Tool di configurazione di Apache, un'utility grafica fornita con Red Hat Linux, non è necessario compilare i propri moduli o modificare il file di configurazione di Apache httpd.conf. Viceversa, se desiderate aggiungere moduli ad Apache o modificare il file httpd.conf manualmente, non utilizzate il Tool di configurazione di Apache.

Per maggiori informazioni sul Tool di configurazione di Apache, consultate la Official Red Hat Linux Customization Guide.

Se avete scritto il modulo dovete usare APXS per compilare i file sorgenti esterni all'albero delle directory di Apache. Se avete bisogno di maggiori informazioni su APXS, consultate la documentazione di Apache all'indirizzo http://www.apache.org/docs/dso.html.

Dopo aver compilato il vostro modulo utilizzando APXS, inseritelo in /usr/lib/apache. Inserite ora sia una linea LoadModule che una linea AddModule nel file httpd.conf. Dopo LoadModule in httpd.conf, aggiungete una linea per l'oggetto condiviso simile alla seguente:

LoadModule foo_module 	modules/mod_foo.so

È necessario cambiare il nome del modulo e il nome dell'oggetto condiviso.

Alla fine dell'elenco AddModule nel file httpd.conf, aggiungete la seguente linea (per il file con il codice sorgente):

AddModule mod_foo.c

È necessario modificare il nome del file con il codice sorgente.

Terminate le fasi precedenti, riavviate il vostro server Web come indicato nella la sezione Avvio e chiusura di httpd. Se avete eseguito tutto correttamente, il server Web dovrebbe trovare il modulo e caricarlo.

Il modulo di sicurezza mod_ssl

La parte relativa alla sicurezza (mod_ssl) del vostro server Web Apache viene fornita come Dynamic Shared Object (DSO). Questo significa che il server Web può essere ricompilato dagli utenti e che ad Apache viene applicata la patch per l'estensione EAPI dal modulo mod_ssl. Seguite le istruzioni nella documentazione fornita con mod_ssl per inserire il mod_ssl in Apache, ma aggiungete il flag qui indicato:

--with-eapi-only

Il comando completo deve essere simile al seguente:

./configure [userflags] --with-eapi-only

Successivamente installate Apache.

NotaNota Bene
 

Red Hat non supporta le versioni ricompilate del server Web Apache. Dunque non ricompilate Apache se non conoscete esattamente i passi da seguire.