Aggiungere moduli al vostro server

Il supporto per i DSO c'è dalla versione 1.3 di Apache, quindi potete caricare o compilare i moduli di Apache per il Red Hat Linux Apache/SSL Server. Il supporto DSO significa che i moduli possono essere caricati dinamicamente. Dato che i moduli vengono caricati solo quando necessari, non usano risorse di memoria.

Il team di sviluppo di Apache fornisce una completa documetazione al sito http://www.apache.org/docs/dso.html. Dopo aver installato il vostro server potete anche controllare http://your_domain/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.

Per far sì che il vostro Red Hat Linux Apache/SSL Server utilizzi dinamicamente i moduli condivisi, il modulo deve apparire nelle direttive LoadModule e AddModule all'interno del file httpd.conf. Per default le due entry indicate sopra sono già incluse in httpd.conf, con una serie di moduli più usati.

Se avete la necessità di utilizzare questi moduli non caricati, guardate nel file httpd.conf per verificare quali sono 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 il Red Hat Linux Apache/SSL Server carichi un modulo, per prima cosa togliete il commento alla linea corrispondente al modulo. Per esempio se volete che il vostro Red Hat Linux Apache/SSL Server carichi il modulo mime_magic_module, cambiate la linea LoadModule :

#LoadModule mime_magic_module modules/mod_mime_magic.so
	

Togliete il commento alla linea precedente:

LoadModule mime_magic_module modules/mod_mime_magic.so
	

Successivamente, avrete bisogno di togliere il commento alla linea corrispondente dalla sezione AddModule nel file httpd.conf. Per continuare l'esempio precedente togliete il commento alla linea mod_mime_magic:

#AddModule mod_mime_magic.c
	

La linea decommentata dovrebbe essere:

AddModule mod_mime_magic.c
	

Quando avete tolto il commento alle linee LoadModule e AddModule relative al modulo che volete caricare fate ripartire il server Web, come spiegato nella la sezione Avvio e Terminazione di Apache nel Capitolo 11. Dopo aver eseguito uno start il modulo dovrebbe essere stato caricato nel vostro Red Hat Linux Apache/SSL Server.

Se avete il modulo potete aggiungerlo al file httpd.conf quindi compilarlo ed caricarlo come DSO. Per fare ciò dovete installare anche il pacchetto apache-devel come visto in Capitolo 10. Il pacchetto apache-devel installa i file include e il tool APache eXtenSion (APXS). APXS usa i file include per compilare il modulo in modo da farlo funzionare con Apache.

Se avete scritto il modulo dovete usare APXS per compilare i vostri sorgenti al di fuori dell'albero delle directory di Apache. Se avete bisogno di maggiori informazioni su APXS, si veda la documentazione di Apache al sito http://www.apache.org/docs/dso.html.

Quando avete compilato il vostro modulo utilizzando APXS, inserite il vostro modulo in /usr/lib/apache. Quindi il vostro modulo ha bisogno sia di una entry LoadModule sia di una entry AddModule nel file httpd.conf. Dopo LoadModule in httpd.conf, aggiungete una linea per l'oggetto condiviso per il vostro modulo come segue:

LoadModule foo_module 	modules/mod_foo.so
	

Si noti che avrete bisogno di cambiare il nome del modulo ed il n-me dell'oggetto condiviso.

Alla fine dell'elenco AddModule nel file httpd.conf, aggiungete la seguente linea:

AddModule mod_foo.c
	

Si noti che avrete bisogno di cambiare il nome del file del codice sorgente.

Quando avete completato i passi precedenti riavviate il vostro server Web come indicato nella la sezione Avvio e Terminazione di Apache nel Capitolo 11. Se avete eseguito tutto correttamente il vostro server Web dovrebbe trovare il vostro modulo e caricarlo.

Il modulo mod_ssl Security

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

--with-eapi-only
	  

Il comando completo deve essere simile al seguente.

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

Quindi ricostruite ed installate Apache.

NotaNota Bene
 

Red Hat non supporta le versioni ri-compilate del server Web Apache. Non ricompilate Apache se non conoscete esattamente i passi da seguire.