<!doctype linuxdoc system>
<article opts="italian">

<!-- Title Information -->

<title>Apache Overview HOWTO
<author>Daniel Lopez Ridruejo, <tt/ridruejo@apache.org/ 
<date>v0.9, 10 ottobre 2002 

<!-- Abstract -->
<abstract>
Questo documento passa in rassegna i diversi progetti che riguardano
Apache, come il server Apache HTTP ed il motore per Servlet e JSP Tomcat; inoltre
fornisce indicazioni per ulteriori approfondimenti. Traduzione a cura di Tito Rizzo,
<tt/tito.rizzo@tiscali.it/e revisione a cura di Giuseppe Briotti, <tt/g.briotti@mclink.it/.
</abstract>

<!-- Table of Contents -->
<toc>
<sect>Introduzione
<p>
Questo documento fornisce un'introduzione al mondo di Apache, includendo i
vari progetti della Apache Software Foundation come il web server Apache e i
vari software di terze parti, sia commerciali che open source. Apache è <url
name="il server più popolare di Internet"
url="http://www.netcraft.com/survey/">. I nuovi utilizzatori di Apache,
specie quelli che provengono da Windows, sono spesso inconsapevoli delle
potenzialità di Apache, della sua estensibilità e, più in generale, della
efficiente interrelazione tra i vari componenti. Lo scopo di questo
documento è quello di fornire una panoramica di tali possibilità, con una breve
descrizione di ciascuna e indicazioni per ulteriori approfondimenti. Le
informazioni sono state raccolte da varie fonti, includendo le pagine web
dei vari progetti, interventi a conferenze, mailing list e siti web di Apache, 
oltre alla mia personale esperienza. Tali autori meritano la più ampia considerazione,
poiché senza il loro lavoro, questo documento non sarebbe stato né possibile
né necessario.

<p>Copyright 2002 Daniel Lopez Ridruejo

Si accorda il permesso di copiare, distribuire e/o modificare questo
documento entro i termini della Open Content Publication License, Versione
1.1. Una copia della licenza è contenuta nell'appendice "Open
Content Open Publication License", o è consultabile al sito www.opencontent.org/openpub/.

<sect1>Apache Software Foundation
<p>
<em>La Apache Software Foundation fornisce il supporto alla comunità
che si occupa dei progetti di software open-source per Apache, progetti
caratterizzati da un processo di sviluppo collaborativo e basato sul consenso,
da una licemza aperta e pragmatica e dal desiderio di creare software di
alta qualità, che apra nuove strade in questo campo. Ci reputiamo
non semplicemente un gruppo di progetti che abbiano in comune lo stesso server, 
ma piuttosto una comunità di sviluppatori e di utenti.</em>
<p>La ASF è la casa madre di innumerevoli progetti Open Source di successo,
come il motore Tomcat per Servlet/JSP e lo strumento di compilazione ANT.
<p>Per saperne di più sulla fondazione si veda  <url name="qui" url="http://www.apache.org/foundation/">.

<sect1>Struttura del documento
<p>La prima parte del documento si occupa del Web Server Apache e dei
relativi moduli. Tratta la storia, l'architettura e le possibilità di
questo server e descrive in quali modi lo si possa estendere e personalizzare.
<p>La seconda parte del documento tratta i progetti della Apache Software
Foundation, come quelli che costituiscono le comunità Jakarta e Java XML.
Piuttosto che organizzare i progetti in base al linguaggio di programmazione
o alla tecnologia impiegata, si è preferito organizzarli in base
alle funzionalità che offrono.

<sect>Apache
<p>Apache è il principale server web, con una quota di mercato superiore
al 60%, secondo <url name="Netcraft survey" url="http://www.netcraft.com/survey">.
Al successo di Apache hanno contribuito svariati fattori chiave:
<itemize>
<item>La <url name="licenza di Apache" url="http://www.apache.org/LICENSE.txt">. è una
licenza open source, di tipo BSD, che consente l'utilizzo di Apache per scopi sia commerciali
che non.
<item>Una comunità di abili <url name="sviluppatori" url="http://www.apache.org/foundation/members.html">
con una varietà di bagagli culturali e un processo di sviluppo aperto basato su
meriti tecnici.
<item>Architettura modulare. Gli utenti di Apache possono facilmente aggiungere nuove funzionalità  
o adattare Apache al loro specifico ambiente di lavoro.
<item>Portabilità: Apache funziona praticamente su tutte le versioni di Unix (e di Linux), Windows, BeOs, sui mainframe...
<item>Robustezza e sicurezza.
</itemize>
Svariate società commerciali hanno adottato soluzioni basate su Apache per i loro prodotti, incluse <url name="Oracle"
url="http://www.oracle.com">, <url name="Red Hat" url="http://www.redhat.com"> e <url name="IBM" url="http://www.ibm.com">.
In aggiunta, <url name="Covalent" url="http://www.covalent.net"> fornisce moduli aggiuntivi e supporto 24x7 per Apache.
<p>I seguenti siti web usano Apache o uno dei suoi derivati. Se Apache va bene per
loro, dovrebbe andare bene anche per voi :)
<itemize>
<item><url name="Amazon.com" url="http://www.amazon.com">
<item><url name="Yahoo!" url="http://www.yahoo.com">
<item><url name="W3 Consortium" url="http://www.w3c.org">
<item><url name="Financial Times" url="http://www.ft.com">
<item><url name="Apple" url="http://www.apple.com">
<item><url name="MP3.com" url="http://www.mp3.com"
<item><url name="Stanford" url="http://www.stanford.edu">
</itemize>
<p>
Dal <url name="sito web di Apache" url="http://httpd.apache.org">:
<p>
<em>Il progetto del Server HTTP Apache rappresenta uno sforzo per sviluppare 
e mantenere un server HTTP open-source per i moderni sistemi operativi, 
incluso Unix e Windows NT. Il fine di questo progetto è quello di fornire un server
sicuro, efficiente e estensibile che garantisca servizi HTTP in aderenza con gli standard
HTTP correnti.</em>
<p>Il server Apache iniziò la sua vita come modifica del server Web NCSA, 
uno dei primi server HTTP. Per saperne di più sulla storia
di Apache si veda <url name="qui" url="http://httpd.apache.org/ABOUT_APACHE.html">. 
<p>
Il progetto Apache è poi cresciuto oltre la semplice implementazione di un server web,
occupandosi dello sviluppo di altre tecnologie critiche dal lato server. La Apache
Software Foundation, che sarà descritta più oltre, serve da ala protettiva per questi progetti.

<sect1>Architettura
<p>Ci sono due versioni principali di Apache, la serie 1.3 e la
serie 2.0. Per quanto siano da considerarsi entrambe prodotti di qualità, nondimeno
differiscono per architettura e possibilità.
<p>
<sect2>2.1.1 Apache 1.3
<p>Apache 1.3 è stato portato su una grande varietà di piattaforme Unix, ed
è il server Web più largamente utilizzato in Internet.

<sect3>Server Web basato su processi
<p>
Apache 1.3 su Unix è un server Web basato su processi. Il programma
Apache, al suo avvio, genera (fork) svariati processi figli; con il fork un processo 
primario genera copie identiche di se stesso, chiamate <em>figli</em>. 
Ognuno di tali figli può servire una richiesta indipendente dalle altre, con
il vantaggio di migliorare la stabilità: se uno di tali figli ha un comportamento anomalo 
(va fuori controllo o ha perdite di memoria) può essere interrotto senza
alcun effetto sugli altri. La stabilità è conseguita a spese delle prestazioni. 
Nella maggior parte dei sistemi Unix, la creazione di processi e il cambiamento 
del contesto (assegnazione di tempo del processore a ogni processo) sono
operazioni costose in termini di risorse di sistema, dal momento che i processi sono
isolati gli uni dagli altri e non possono quindi facilmente condividere codice e dati.

<sect3>Supporto per Windows
<p>
Apache 1.3 è la prima versione di Apache a supportare Windows, per quanto tale 
adattamento non sia considerato stabile come quello su Unix, visto che
il server è stato progettato prendendo come riferimento Unix, mentre la
versione per Windows ha costituito una aggiunta successiva, non molto bene integrata.

<sect3>Modularità
<p>Apache 1.3 possiede un'architettura modulare, che permette di abilitare o
disabilitare moduli per aggiungere o rimuovere funzionalità al server Web.
È possibile personalizzare Apache per migliorarne le prestazioni e la sicurezza.
In aggiunta ai moduli di base, esiste un gran numero di moduli di terze parti, con i
quali è possibile ampliare ulteriormente le funzionalità del server.

<sect2>2.1.2 Apache 2.0
<p>Apache 2.0 è la più recente e migliore versione del server Apache, la cui architettura
contiene significativi miglioramenti rispetto alla serie 1.3, tra i quali si possono menzionare 
i seguenti.


<sect3>Moduli multiprocesso
<p>Apache 2.0 astrae l'architettura di elaborazione delle richieste
tramite moduli speciali, chiamati Multi Processing modules (MPMs), ossia
moduli Multi Processo, grazie ai quali Apache può essere configurato come un
server basato su processi, come un server puramente basato su thread o come
un misto di tali modelli. I thread sono inglobati all'interno dei processi e
sono eseguiti simultaneamente; a differenza dei processi, possono condividere 
sia dati che codice, risultando così più "leggeri", tanto che in molti
casi i server di tipo "threaded" hanno una migliore scalabilità rispetto ai
server basati su processi. Il server risulta, per contro, meno affidabile,
perché se un thread ha un comportamento anomalo può causare la corruzione di
codice o di dati appartenenti ad altri thread.

<sect3>Moduli di protocollo
<p>La gestione dei protocolli in Apache 2.0 è stata incapsulata in un suo
proprio livello, rendendo possibile la scrittura di moduli per protocolli
diversi da HTTP, quali POP3 per la posta o FTP per il trasferimento di file.
Questi moduli di protocollo possono trarre vantaggio dalla solida ossatura
del server e dalla funzionalità dei moduli, come l'autenticazione e la
generazione di contenuti dinamici. Questo significa che, per esempio, è
possibile autenticare i propri utenti POP3 tramite lo stesso database di
utenti che Apache usa per le richieste web e che il contenuto FTP può essere
generato dinamicamente grazie a PHP, CGI o qualunque altra delle tecnologie
descritte più avanti in questo stesso documento.

<sect3>Architettura dei moduli e dei filtri
<p>Apache 2.0 conserva l'architettura modulare di 1.3 con l'aggiunta di un ulteriore
meccanismo di estensione rappresentato dai filtri, che consentono ai moduli di 
modificare il contenuto generato da altri moduli. Possono criptare, effettuare la scansione
alla ricerca di virus o comprimere non solo i file statici, ma anche i contenuti generati dinamicamente.

<sect3>Problemi di compatibilità
<p>Sfortunatamente, per quanto il modulo API sia simile in entrambe le versioni, non è
comunque identico e i moduli di Apache 1.3 necessitano di essere adattati alla nuova
architettura. La maggioranza dei moduli più importanti, come PHP o mod_perl hanno già 
la versione per Apache 2.0, mentre altri, come mod_dav e mod_ssl, sono ora parte
della distribuzione del server. Il funzionamento dei moduli su un'architettura "threaded"
richiede modifiche specifiche ai moduli. I moduli distribuiti con Apache hanno beneficiato di  
tali modifiche e sono ora considerati 'thread-safe', ma i moduli e le librerie di terze
parti possono non esserlo, per cui, se si ha bisogno di qualcuno di questi ci si deve limitare
a usare Apache come server basato unicamente su processi.

<sect3>Portabilità
<p>Apache funziona ugualmente bene sia su piattaforme Windows che Unix grazie
alla libreria Apache Portable Runtime (APR), che astrae le differenze tra sistemi
operativi, come le API di accesso al network o ai file. Adattare Apache ad una
nuova piattaforma risulta spesso altrettanto semplice che adattare il  
livello di astrazione rappresentato dalla Apache Portable Runtime, la quale 
provvede anche alla messa a punto e all'ottimizzazione specifica per una
determinata piattaforma.


<sect1>Sicurezza
<p>Apache fornisce svariati moduli orientati alla sicurezza per 
regolamentare gli accessi al server.

<sect2>Autenticazione
<p>I moduli di autenticazione permettono di determinare l'identità 
di un client, solitamente attraverso la verifica del nome utente e della password
rispetto ai dati registrati in un database. Apache comprende inoltre moduli
di autenticazione che connettono Apache con strutture o database
di sicurezza, includendo tra gli altri: NT Domain controller, Oracle, mySQL, 
PostgresSQL e così via.
<p>Particolarmente interessanti sono i moduli LDAP, in quanto consentono
l'integrazione con servizi di directory a livello di compagnia o di impresa.
È possibile trovare tali moduli presso <htmlurl url="http://modules.apache.org">.
Un modulo LDAP per Apache 2.0 può essere scaricato <url name="dal sito web di Apache"
url="http://httpd.apache.org/docs-2.0/mod/mod_auth_ldap.html">.


<sect2>Controllo degli accessi
<p>Apache fornisce il modulo mod_access che può limitare l'accesso
alle risorse basandosi su parametri della richiesta del client, come la presenza
di una specifica intestazione o dell'indirizzo IP o del nome host del client.
Moduli di terze parti permettono di limitare l'accesso per quei client responsabili di
comportamenti irregolari, come spiegato più oltre nelle sezioni dedicate 
alle prestazioni e al controllo dell'ampiezza di banda.

<sect2>SSL/TLS
<p>I protocolli Secure Sockets Layer/Transport Layer Security consentono
di criptare i dati trasmessi tra il server Web e il client. In Apache 1.3, i
protocolli sono implementati con il mod_ssl, distribuito separatamente dal
<url name="sito web di mod_ssl" url="http://www.modssl.org">, che rende necessario
applicare alcune patch al server, a causa della regolamentazione sull'esportazione
di software di criptatura. La maggior parte di tali restrizioni sono
nel frattempo decadute e, a partire da Apache 2.0, il modulo mod_ssl
è incluso in Apache come modulo base.

<sect1>Proxy
<p>Un proxy è un programma che effettua richieste per conto di qualcun altro.
Esistono diversi tipi di proxy per il Web. Un tradizionale proxy HTTP, chiamato
anche <em>forward proxy</em>, accetta richieste dai client (solitamente browser
Web), contatta il server remoto e restituisce le risposte.
<p>Un reverse proxy è un server Web collocato di
fronte a altri server, per i quali costituisce un accesso unificato
sgravandoli da determinate incombenze, come l'elaborazione SSL.
<p>Apache supporta entrambi i tipi di proxy, l'immagazzinamento di una cache di
contenuti Web e differenti proxy di backend tipo FTP.

<sect1>Prestazioni e scalabilità<label id="performance">
<p>La grezza prestazione è solo uno dei fattori da considerare in
un server Web (di solito flessibilità e stabilità vengono prima).
<p>Detto questo, ci sono soluzioni per migliorare le prestazioni in server web 
che forniscono contenuti statici e sottoposti a carichi gravosi. Per le imprese di
hosting, Apache fornisce anche sistemi per misurare e controllare l'uso
dell'ampiezza di banda. In questo contesto, abitualmente la regolazione si traduce
in un rallentamento della distribuzione del contenuto in base al file richiesto,
ad uno specifico indirizzo IP del client e così via. Questo è fatto al fine
di prevenire gli abusi.
<itemize>
<item><bf>mod_mmap</bf>: Incluso nella distribuzione corrente di Apache 1.3, traccia 
in memoria una lista staticamente configurata di file richiesti spesso, ma
modificati non frequentemente. In Apache 2 questa funzionalità   
è inclusa nel mod_file_cache.
<item><bf><url name="Mod_bandwidth"
url="http://www.cohprog.com/mod_bandwidth.html"></bf>: Questo modulo di Apache 1.3 
abilita l'impostazione di limiti di ampiezza di banda per l'intero server o per singole connessioni,
in base ad una specifica directory, alla dimensione dei file e al dominio IP remoto.
<item><bf><url name="Modulo di condivisione dell'ampiezza di banda"
url="http://www.topology.org/src/bwshare/README.html"></bf>: fornisce
la regolazione ed il bilanciamento dell'ampiezza di banda in base all'indirizzo IP del client.
Supporta Apache 1.3 e le prime versioni di Apache 2.
<item><bf><url name="Mod_throttle"
url="http://www.snert.com/Software/Throttle/index.shtml"></bf>:Regola
l'ampiezza di banda per host virtuale o per utente. Per Apache 1.3.
</itemize>

<sect2>Bilanciamento del Carico
<p>Usando il reverse proxy di Apache e il mod_rewrite è possibile
ottenere un processo di distribuzione delle richieste tra una varietà
di server web di backend. Per maggiori informazioni si veda <htmlurl
url="http://www.apache.org/docs/misc/rewriteguide.html">
<p>In aggiunta, il mod_backhand è un modulo di Apache 1.3 
che consente una redirezione di richieste HTTP priva di giunzioni,
tra un server web e l'altro. Questa redirezione può essere usata
per coinvolgere macchine le cui risorse siano sottoutilizzate, ottenendo così 
un granulare bilanciamento del carico delle richieste web.
Per maggiori informazioni si veda <htmlurl url="http://www.backhand.org/">.

<sect2>Compressione
<p>Apache 2.0 include mod_deflate, un modulo di filtraggio che comprime
il contenuto prima di inviarlo al client. Questo limita lo spreco di banda 
ma può avere un impatto negativo sulle prestazioni. Il <url name="modulo mod_gzip"
url="http://www.remotecommunications.com/apache/mod_gzip/">
fornisce questa funzionalità per Apache 1.3.

<sect1>Script CGI 
<p>
CGI sta per Common Gateway Interface. I programmi CGI sono programmi esterni
che vengono invocati quando un utente richiede una certa pagina. Il programma CGI 
riceve le informazioni dal server web (valori variabili del form, tipo di browser, 
indirizzo IP del client e così via) e usa tali informazioni per produrre una 
pagina web per il client.
<p>Apache ha il supporto per CGI e c'è un modulo di terze parti per 
Apache 1.3 che garantisce il supporto per il protocollo FastCGI, il quale evita
le penalizzazioni prestazionali associate all'avvio ed all'arresto di un programma CGI
a ogni richiesta. Lo si può trovare a <htmlurl url="http://fastcgi.com/">

<sect1>Integrazione delle Piattaforme di Sviluppo
<p>Le applicazioni web sono scritte in linguaggi di alto livello come Java, 
Perl, C# e così via e Apache dispone di svariati moduli che ne permettono
l'integrazione con il server. In molti casi i moduli espongono la API di Apache, 
così che tutti i moduli Apache possano essere scritti in questi linguaggi.
<sect2>Perl<label id="mod_perl">
<p>
<url name="mod_perl" url="http://perl.apache.org/"> è un veterano 
tra i progetti Apache e uno dei più fortunati. Ingloba all'interno 
di Apache un interprete Perl e consente l'accesso, tramite Perl, all'interno di Apache. 
Permette che interi moduli possano essere scritti in Perl o in un misto di 
Perl e di codice C. Nella versione 1.3 di Apache, in ogni processo figlio 
deve essere incluso un interprete, visto che il server si basa sul 
multiprocesso. In siti dinamici a alto traffico, l'accresciuta dimensione può 
fare la differenza. Nelle versioni threaded di Apache 2.0, il mod_perl 
permette la condivisione del codice, dei dati e dello stato della sessione tra 
i vari interpreti, tendendo a una soluzione più snella e veloce.
<p>mod_perl costituisce di per sé un'altra piattaforma, con una grande 
varietà di moduli disponibili, come <url name="Mason" url="www.masonhq.com"> e
<url name="Embperl" url="http://perl.apache.org/embperl/"> per
l'inclusione del Perl in pagine HTML e <url name="AxKit" url="axkit.org"> per
template ricavati da XML.

<sect2>PHP<label id="php">
<p>Dal sito web di <url name="PHP" url="http://www.php.net">:
<em>PHP è un linguaggio di scripting, lato server, indipendente dalla piattaforma, 
inserito in HTML.</em>. È il
<url name="modulo per Apache più popolare"
url="http://www.securityspace.com/s_survey/data/man.200209/apachemods.html">
e questo grazie ad una varietà di ragioni:
<itemize>
<item>La curva di apprendimento è piuttosto bassa
<item>Vasta documentazione
<item>Ampio supporto per database
<item>Modularità
</itemize>
PHP ha una concezione modulare. Tra molti altri, ci sono moduli che  
garantiscono il supporto per: 
<itemize>
<item>Connettività con database per i database più diffusi, come Oracle,
server MS-SQL, interfaccia ODBC, MySQL, mSQL, PostgreSQL e via dicendo.
<item>supporto XML  
<item>Trasferimento di file: FTP
<item>HTTP
<item>Supporto per directory: LDAP 
<item>Supporto per la posta: IMAP, POP3, NNTP
<item>Generazione di documentazione PDF
<item>CORBA
<item>SNMP
</itemize>
Non bisogna fare altro che compilare/usare il modulo di cui si ha bisogno. 
PHP può essere usato con Apache, come CGI esterno o con altri server web.  
È indipendente dalla piattaforma e funziona sulla maggior parte delle
versioni di Unix e di Windows. Chiunque provenga da un ambiente Windows,
avrà probabilmente usato Internet Information Server con Active Server Pages
e MS-SQL Server. Un sostituto comune per questo terzetto nel mondo Unix è
Apache con PHP e MySQL. Dal momento che PHP funziona:
<itemize>
<item>con Apache e con Microsoft IIS
<item>con MySQL e con il server MS-SQL 
<item>su Unix e su Windows
</itemize>
si ha a disposizione un percorso di migrazione piacevole e graduale da una 
soluzione incentrata su Microsoft a soluzioni basate su Unix.

<sect2>Python
<p>
Python è un popolare linguaggio di scripting orientato agli oggetti. 
<url name="Mod_Python" url="http://www.modpython.org">, che è ora 
un progetto Apache ufficiale, permette di integrare Python con il server web Apache. 
È possibile sviluppare applicazioni web complesse o sveltire script 
CGI Python esistenti. Le versioni recenti funzionano su Apache 2.0.

<sect2>Tcl
<p>Il <url name="Progetto Tcl Apache" url="http://tcl.apache.org"> integra 
Tcl con il server web Apache. Tcl è un linguaggio di scripting 
leggero e estensibile. Per saperne di più su Tcl si veda <url
url="http://tcl.activestate.com/" name="qui">.
Ci sono attualmente svariati moduli sotto l'ala di Apache Tcl: 
<itemize>
<item>Sia <url name="Mod_dtcl" url="http://tcl.apache.org/mod_dtcl/"> che 
<url name="Neowebscript" url="http://tcl.apache.org/neowebscript/"> consentono 
di includere Tcl nelle pagine HTML. <url name="Rivet"
url="http://tcl.apache.org/rivet/"> combina il meglio di entrambi i moduli.
<item>Il <url name="Mod_tcl" url="http://tcl.apache.org/mod_tcl/mod_tcl.html"> sceglie un approccio simile
a mod_perl, esponendo la API di Apache.
<item><url name="WebSH" url="http://tcl.apache.org/websh/"> fornisce un ambiente Tcl
per applicazioni Web. 
</itemize>

<sect2>Tecnologie Microsoft 
<p>Svariati moduli permettono l'integrazione con i linguaggi e le tecnologie Microsoft 
quali la struttura .Net o le Active Server Pages.
<sect3>.Net
<p><url name="mod_haydn" url="http://haydn.sourceforge.net/"> integra 
<url name="Mono" url="http://www.go-mono.com"> con Apache e espone 
la API di Apache alla struttura .Net, permettendo, per esempio, la scrittura di moduli in C#. 
<url name="Covalent" url="http://www.covalent.net"> fornisce 
mod_asp.net, un modulo commerciale Windows che permette ad Apache di lanciare applicazioni ASP.Net, 
consentendo di rimpiazzare Microsoft IIS.
<sect3>ASP
<p>ASP, che sta per Active Server Pages, è una tecnologia Microsoft che
permette di inserire codice, abitualmente Visual Basic, nelle pagine HTML. Diverse 
compagnie come <url name="ChilliSoft" url="http://www.chilisoft.com/"> e <url name="Stryon"
url="http://www.stryon.com/"> forniscono prodotti in grado di far funzionare applicazioni ASP
in ambiente Unix. 
<sect3>ISAPI
<p>ISAPI è una API utilizzabile per estendere Microsoft IIS, in modo simile 
a come si userebbe la API di Apache. Apache include un modulo mod_isapi che
rispecchia questa funzionalità e permette di usare moduli ISAPI.

<sect2>Java
<p>La maggior parte dei server di applicazioni, come quelli di Oracle, IBM e BEA forniscono 
moduli per l'integrazione con il server web Apache. In aggiunta, svariati 
moduli come mod_jk e mod_webapp permettono la connessione con Tomcat, un contenitore di
Servlet e JSP (JavaServer Pages) che fa sempre parte della Apache Software Foundation.

<sect2>Moduli per altri linguaggi 
<p>Questo documento ha descritto moduli per linguaggi lato server popolari  
come Perl, Python e PHP. Moduli aggiuntivi per altri linguaggi (JavaScript, Haskell, Ruby e altri)
si possono trovare nella <url name="directory dei moduli di Apache" url="http://modules.apache.org">. 

<sect1>Gestione
<p>Una parte importante dell'amministrazione di server Web comprende 
la compilazione, la configurazione e il controllo di diversi server.

<sect2>Strumenti di compilazione 
<p>Apache può essere esteso e personalizzato in molti modi differenti. L'integrazione 
di moduli esterni con il server può talvolta costituire un compito difficile. 
Strumenti come <url name="Apache Toolbox"
url="http://www.apachetoolbox.com"> possono semplificare questo compito, 
fornendo un ambiente di compilazione dotato di menu. 

<sect2>Interfacce Utente per Apache
<p>Apache è configurato tramite file di testo, il che talvolta può 
risultare ostico, specie per chi provenga da un ambiente Windows. 
Esistono strumenti grafici open source che facilitano questo compito: 
<itemize>
<item><url name="Comanche" url="http://www.comanche.org">, provato dal sottoscritto,
indipendente dalla piattaforma, funziona su Unix/Linux, Windows e Mac.
<item><url name="Webmin" url="http://www.webmin.com/webmin/">: Una interfaccia 
piacevole, basata sul web. 
<item><url name="gui.apache.org" url="http://gui.apache.org">: Interfacce grafiche 
per il progetto Apache. I programmi si trovano a vari livelli di sviluppo. 
</itemize>

<sect2>SNMP
<p>SNMP sta per Simple Network Management Protocol. Consente il controllo 
e la gestione di server di rete, attrezzature e così via. I moduli SNMP per Apache 
aiutano nella gestione di vasti spiegamenti di server web, misurano la qualità 
del servizio offerto e l'integrazione di Apache con le preesistenti infrastrutture di gestione. 
<itemize>
<item><url name="Mod SNMP"
url="http://www.simpleweb.org/software/packages/mod-snmp/"> open source per Apache 1.3.
<item><url name="Covalent SNMP" url="http://www.covalent.net"> fornisce 
un modulo SNMP commerciale, supporto per i più recenti standard SNMPv3, integrazione 
con HP-Openview, Tivoli e via dicendo. 
</itemize>

<sect1>Publishing  
<p>Gli autori di contenuti Web richiedono uno strumento per gestire tali 
contenuti e per l'upload sul server. Uno dei protocolli usati a questo scopo 
è DAV (Distributed Authoring and Versioning). DAV è un'estensione del protocollo HTTP
che permette a utenti e applicazioni di pubblicare e modificare 
contenuti Web. La tecnologia DAV è ampiamente implementata, Microsoft la supporta  
a livello di sistema operativo (WebFolders) e nella sua suite Office. Lo stesso 
vale per Apple OS-X e una varietà di prodotti di terze parti come Adobe,
Oracle e così via. Il modulo mod_dav per Apache 1.3 si può trovare presso 
<htmlurl url="http://www.webdav.org/mod_dav/">. In Apache 2.0, il mod_dav è 
incluso nella distribuzione di base. 
<p>Antecedentemente a DAV, Microsoft disponeva di un proprio protocollo per
il publishing, integrato nell'applicazione Microsoft FrontPages. Un supporto lato
server per FrontPages si può ottenere con i moduli di <htmlurl
url="http://www.rtr.com/Ready-to-Run_Software/">, tuttavia, a causa del modo con cui
si integrano con Apache, non sono da ritenere sicuri.

<sect1>Moduli di Protocollo 
<p>Apache 2.0 introduce il concetto di moduli di protocollo. Il che significa 
che gli sviluppatori possono riutilizzare l'infrastruttura del server Apache per 
implementare nuovi protocolli, come quelli che si occupano della posta o del trasferimento di file. 
mod_ftp è un modulo FTP commerciale basato su Apache fornito da <url name="Covalent"
url="http://www.covalent.net">. <url name="mod_pop3"
url="http://cvs.apache.org/viewcvs.cgi/httpd-pop3/"> è un modulo open source che 
implementa il protocollo POP3, comunemente usato per recuperare i messaggi di posta   
dai relativi server.  

<sect1>Hosting virtuale 
<p>
Apache fornisce supporto estensivo per l'hosting virtuale, il che realizza  
la possibilità di servire vari siti web con un singolo server. In Apache 2.0, con i 
MPM si possono avere svariati processi "figli", ognuno dei quali al servizio 
di un dominio differente sotto identificativi di utente Unix differenti. Questo è molto importante 
per la sicurezza in scenari di hosting condiviso, in quanto permette di isolare 
i clienti l'uno dall'altro. I seguenti sono alcuni moduli addizionali, alternativi, per 
l'hosting virtuale. 
<itemize>
<item><url name="mod_dynvhost" url="http://funkcity.com/0101/">
<item><url name="mod_pweb" url="http://www.joytec.de/mod_pweb.html">
<item><url name="mod_v2h" url="http://www.fractal.net/mod_v2h.tm">
</itemize>
<p>

<sect1>Supporto commerciale  
<p>Apache è il server web d'elezione per svariate entità commerciali, 
incluse le grandi imprese. Tali compagnie chiedono determinati requisiti alle 
tecnologie da adottare, specie a quella che costituirà il nucleo della loro strategia 
Internet, come i server Web. Tali requisiti comprendono prestazioni, 
stabilità, possibilità  di gestione, supporto, servizi professionali e 
integrazione con i sistemi proprietari. Compagnie commerciali, come 
<url name="IBM" url="http://www.ibm.com">, <url name="Red Hat"
url="http://www.redhat.com"> e <url name="Covalent" 
url="http://www.covalent.net">, forniscono i prodotti e i servizi necessari affinché 
Apache soddisfi le esigenze della clientela Enterprise.
<p>In aggiunta, svariate altre compagnie ed OEM offrono Apache come server web 
incluso nei loro prodotti. 


<sect>Progetti ASF 
<p>Per quanto Apache sia probabilmente il più popolare, la Apache Software
Foundation è la casa madre di molti altri progetti. Questa sezione fornisce 
una rassegna dei più rilevanti, organizzati con criterio logico. La maggioranza di 
essi appartiene al progetto Jakarta od al progetto XML. Il progetto Jakarta ospita 
i progetti basati su Java mentre il progetto XML ospita, manco a farlo apposta, 
i progetti collegati all'XML. 

<sect1>Applicazioni e Ambienti 
<p>I seguenti sono applicazioni e ambienti di sviluppo che fanno parte di 
ASF. 

<sect2>3.1.1 Server 
<p>I seguenti sono alcuni progetti ASF per il lato server.
<sect3>Tomcat<label id="tomcat">
<p>Tomcat è la nave ammiraglia del progetto Jakarta.
Costituisce l'implementazione ufficiale di riferimento per le tecnologie Servlet Java
e JavaServer Pages.
<p>Per saperne di più si consulti la <url name="homepage di Tomcat"
url="http://jakarta.apache.org/tomcat/">.

<sect3>JAMES (Java Apache Mail Enterprise Server)
<p>Complementare rispetto alle altre tecnologie Apache lato server, JAMES fornisce 
<em>un server 100% Java, concepito come completa e portabile soluzione per un motore di posta per l'impresa,  
basato sui protocolli "aperti" attualmente disponibili (SMTP, POP3, IMAP, HTTP)</em>
<p>Maggiori informazioni si possono trovare <url name="qui" 
url="http://jakarta.apache.org/james/">.

<sect3>Lucene
<p>Jakarta Lucene è un motore per la ricerca testuale, ad alte prestazioni, perfettamente attrezzato,  
scritto in Java e parte del progetto Jakarta. Per maggiori informazioni 
si veda  <htmlurl url="http://jakarta.apache.org/lucene/">

<sect3>Jetspeed
<p><url name="Jetspeed" url="http://jakarta.apache.org/jetspeed/">
è un portale web scritto in Java. Possiede una API modulare che 
consente l'aggregazione di differenti fonti di dati (XML, SMTP, iCalendar)


<sect2>3.1.2 Gestione dei contenuti 
<p>I seguenti sono progetti relativi alla gestione dei contenuti 

<sect3>Slide
<p>Slide è un ambiente ad alto livello per la gestione dei contenuti. 
Concettualmente, fornisce un'organizzazione gerarchica del contenuto 
binario che può essere immagazzinato in archivi dati arbitrari, eterogenei  
e distribuiti. In aggiunta, Slide integra servizi di sicurezza, di bloccaggio 
e di versioning. Provvede anche all'implementazione server e client di <url name="WebDAV" url="http://www.webdav.org">. 
Maggiori informazioni sulla <url name="home page di Slide"
url="http://jakarta.apache.org/slide/index.html">

<sect3>Alexandria
<p>Alexandria è un sistema integrato di gestione della documentazione. Mette insieme 
tecnologie comuni a molti altri progetti open source come CVS e JavaDoc. 
L'intento è quello di integrare codice sorgente e documentazione per incoraggiare la 
documentazione e la condivisione del codice. Maggiori informazioni presso  <htmlurl 
url="http://jakarta.apache.org/alexandria/index.html">  

<sect2>3.1.3 Ambienti 
<p>I seguenti sono infrastrutture per lo sviluppo per applicazioni 

<sect3>Turbine<label id="turbine">
<p>Turbine è un ambiente basato su servlet che permette a esperti
sviluppatori Java di sviluppare rapidamente applicazioni web sicure. Turbine
mette insieme una piattaforma per eseguire codice Java e componenti
riutilizzabili. Alcune delle sue caratteristiche includono: integrazione con
sistemi di template, sviluppo secondo il modello MVC, Access Control List, supporto
per la localizzazione e così via. Maggiori informazioni si possono trovare
sul <url name="sito web di Turbine" url="http://java.apache.org/turbine">.

<sect3>Avalon
<p>Per chi abbia familiarità con sistemi Perl o BSD, Avalon è grosso modo 
l'equivalente di <url name="CPAN" url="http://www.cpan.org"> o della collezione di Port 
per le tecnologie Java di Apache. Non si limita a fornire linee guida 
per un deposito comune di codice, ma va oltre: <em>costituisce uno sforzo 
per creare, progettare, costruire e mantenere una infrastruttura comune per  
applicazioni server scritte usando il linguaggio Java.</em> Fornisce i mezzi affinché 
progetti lato server in Java possano essere facilmente integrati e compilati l'uno sull'altro. 
Ulteriori informazioni si trovano 
sul <url name="sito web di Avalon" url="http://java.apache.org/avalon/">.

<sect1>Presentazione 
<p>I seguenti sono sistemi di template, motori di trasformazione e altri 
progetti relativi a presentazioni. 

<sect2>Cocoon<label id="cocoon">
<p>Cocoon trae vantaggio da altre tecnologie XML di Apache come Xerces, Xalan e FOP
per fornire un completo ambiente XML per il publishing. L'ambiente può dialogare  
con molte fonti di dati diverse e può rendere il contenuto in svariati 
formati finali come PDF, HTML, XML e RTF. Può essere eseguito come 
servlet o come programma da linea di comando. È possibile saperne di più,  
riguardo a Cocoon, sulla <url name="homepage del progetto" url="http://xml.apache.org/cocoon/"> 

<sect2>Velocity
<p><em>Velocity è un motore di template basato su Java. Può essere usato come 
utilità indipendente per generare codice sorgente, HTML, relazioni o può 
essere combinato con altri sistemi per fornire servizi di template.</em> 
Velocity è basato sul paradigma "Model View Controller", che rafforza la separazione tra il codice Java e il 
template HTML. È possibile saperne di più su Velocity <url name="qui"
url="http://jakarta.apache.org/velocity/index.html">.

<sect2>AxKit
<p>
<url name="AxKit" url="http://axkit.org"> <label id="axkit"> è 
un popolare Application Server basato su XML per mod_perl e Apache. Consente 
la separazione tra contenuto e presentazione e permette la conversione al volo da XML 
a ogni altro formato. 

<sect2>Xalan
<p>
Xalan è un processore XSLT disponibile per Java e C++.
XSL è un linguaggio stylesheet per XML. La T sta per Transformation. XML
è valido per l'archiviazione di dati strutturati (informazioni). Talvolta può 
rendersi necessario visualizzare tali dati o applicare qualche altra trasformazione. 
Xalan prende il documento XML originale, legge la configurazione per le conversioni 
(stylesheet) e lo restituisce come HTML, testo semplice o come altro documento XML. 
Per saperne di più su Xalan si consultino le homepage dei progetti  <url name="Xalan Java"
url="http://xml.apache.org/xalan-j/index.html"> e <url name="Xalan C++"
url="http://xml.apache.org/xalan-c/index.html">.  

<sect2>FOP
<p>Dal sito web: <em >FOP è un'applicazione Java che legge l'albero degli oggetti di 
formattazione e lo trasforma in un documento PDF </em>. FOP prende dunque 
un documento XML e lo restituisce come PDF, in modo simile a quanto fa Xalan con l'HTML
o i file di  testo. Per saperne di più su FOP si veda <url name="qui"
url="http://xml.apache.org/fop">.


<sect1>Parser e Librerie per l'Accesso ai Documenti 
<p>Le seguenti sono differenti librerie che possono essere usate per analizzare   
e manipolare una varietà di formati di documenti. 

<sect2>Xerces
<p>
Il progetto Xerces fornisce un parser XML per una varietà di linguaggi, inclusi 
Java, C++ e Perl. I binding Perl sono basati sui sorgenti C++.
Un parser XML è uno strumento usato per l'accesso programmatico a documenti XML.
Ecco una descrizione degli standard supportati da Xerces:
<itemize>
<item><url name="DOM" url="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html">: 
DOM sta per Document Object Model. I documenti XML sono per natura gerarchici (tag annidati). 
Ai documenti XML si può accedere tramite un'interfaccia strutturata ad albero. Il processo si svolge così: 
<itemize>
<item>Analisi del documento 
<item>Costruzione dell'albero
<item>aggiunta/cancellazione/modifica dei nodi 
<item>Serializzazione della struttura 
</itemize>
<item><url name="SAX" url="http://www.saxproject.org">:Semplice API per XML, basata su flusso; 
il che significa che lancerà degli eventi in base agli elementi incontrati. Tali eventi
possono essere usati per costruire, per esempio, una intelaiatura DOM. 
<item><url name="XML Namespaces" url="http://www.w3.org/TR/REC-xml-names/">
<item>XML Schema: Lo standard XML fornisce la sintassi per la scrittura di documenti. XML
Schema fornisce gli strumenti per la definizione dei <em>contenuti</em> del documento XML
(semantica). Permette di definire se un certo elemento nel documento debba essere un intero 
compreso tra 10 e 20 o contenere un indirizzo IP. 
</itemize>
L'iniziale codice di base per il progetto XML di Xerces fu donato da IBM. Maggiori informazioni 
si possono ottenere presso le homepage <url name="Xerces Java"
url="http://xml.apache.org/xerces-j/index.html">, <url name="Xerces C++"
url="http://xml.apache.org/xerces-c/index.html"> e <url name="Xerces Perl"
url="http://xml.apache.org/xerces-p/index.html"> .    

<sect2>Batik
<p><em>Batik è un toolkit basato su Java per applicazioni che vogliano usare immagini nel formato  
<url name="Scalable Vector Graphics (SVG)" url="http://www.w3.org/TR/SVG/"> per vari scopi 
come la visualizzazione, la generazione o la manipolazione. </em>
<p>È incentrato su XML e aderente alle specifiche W3C. È un po' atipico rispetto agli altri progetti Apache, 
in quanto fornisce un componente grafico. Batik fornisce degli hook per estendere 
la struttura tramite tag personalizzati e permette la conversione da SVG ad altri formati come JPEG o PNG.
Si può saperne di più sulla <url name="homepage di Batik" url="http://xml.apache.org/batik/">

<sect2>POI
<p>
Il progetto POI consiste di API per manipolare vari formati di file basati sul formato 
OLE 2 Compound Document di Microsoft usando soltanto Java. Questo 
include i documenti Word e Excel. Si possono trovare maggiori informazioni presso <htmlurl
url="http://jakarta.apache.org/poi/">

<sect1>Interoperabilità
<p>Le seguenti sono librerie per la comunicazione remota e l'interoperabilità 
tra i server.

<sect2>SOAP
<p>Apache SOAP ("Simple Object Access Protocol") e Axis sono 
implementazioni del <url name="protocollo SOAP" url="http://www.w3.org/TR/SOAP"> 
<p>SOAP è un protocollo leggero per lo scambio di informazioni in 
ambiente decentralizzato e distribuito. È un protocollo basato su XML che 
consiste di tre parti: 
<itemize>
<item><em>un involucro che definisce un'ossatura per la descrizione di cosa 
ci sia in un messaggio e come processarlo</em>,
<item><em>un insieme di regole di codifica per l'espressione di istanze di 
tipi di dati definiti dall'applicazione</em>, e
<item><em>una convenzione per rappresentare chiamate e  
risposte di procedure remota</em>.  
</itemize>
Fondamentalmente, si può pensare a SOAP come a un sistema  
di chiamate di procedura remota, basato su HTTP e XML. Da un lato questo 
comporta verbosità e lentezza rispetto ad altri sistemi. Dall'altro agevola 
l'interoperabilità, il debugging e lo sviluppo di client e di server  
per una varietà di linguaggi, dal momento che la maggioranza dei moderni linguaggi 
dispone di moduli HTTP e XML. Per saperne di più si veda la <url name="homepage di Apache SOAP"
url="http://xml.apache.org/soap/"> 

<sect2>XML-RPC
<p>Il <url name="progetto XML-RPC" url="http://xml.apache.org/xmlrpc/">
è un'implementazione Java del protocollo XML-RPC, un protocollo leggero 
simile a SOAP e suo predecessore. 

<sect2>Sicurezza XML 
<p>Il <url name="progetto sicurezza di XML" url="http://xml.apache.org/security/"> fornisce 
la verifica della firma digitale dei documenti XML per lo scambio sicuro di documenti. 

<sect1>Sviluppo 

<sect2>Apache Portable Runtime
<p>Il progetto <url name="APR" url="http://apr.apache.org"> fornisce 
uno strato di portabilità che astrae un certo numero di API per la manipolazione di file, 
l'accesso alla rete e così via. È scritto in C e funziona sulla maggior parte delle versioni di Unix, 
su Windows e una varietà di altri sistemi. Costituisce la base di Apache 2.0.

<sect2>Ant
<p><url name="Ant" url="http://jakarta.apache.org/ant/"> è uno strumento di compilazione 
scritto in Java. Dispone di una API modulare e può essere esteso con la creazione di nuovi task. È 
governato da file di configurazione in XML. 

<sect2>Byte Code Library
<p>La <url name="Byte Code Engineering Library"
url="http://jakarta.apache.org/bcel/"> (BCEL) è una 
libreria per analizzare, creare e manipolare i file binari delle classi Java. 

<sect2>Log4j
<p>Questo pacchetto fornisce una infrastruttura per la gestione dei log compatibile con le applicazioni Java. 
Può essere abilitato all'avvio senza modificare il file binario ed è stato progettato 
con un occhio alle prestazioni. Può essere trovato presso <htmlurl url="http://jakarta.apache.org/log4j/">

<sect2>ORO and Regexp
<p>ORO è un pacchetto completo che fornisce supporto alle espressioni regolari per 
Java. Include il supporto alle espressioni regolari Perl5, alle espressioni glob e così via. 
Il tutto sotto licenza Apache. 
Per saperne di più su ORO si veda  <htmlurl url="http://jakarta.apache.org/oro/index.html">. Un altro pacchetto leggero, della ASF, 
per espressioni regolari, è <url name="Regexp" url="http://jakarta.apache.org/regexp/">.

<sect2>Struts
<p>Struts è un progetto Apache che tenta di trasportare il 
paradigma progettuale Model-View-Controller (MVC) nello sviluppo web. È basato sulle
tecnologie <url name="Servlet" url="http://java.sun.com/products/servlet"> e 
<url name="JavaServer Pages" url="http://java.sun.com/products/jsp">. La parte 
"modello" è composta di oggetti Java lato server, che rappresentano lo stato interno 
dell'applicazione. La parte "vista" è costruita attraverso le JavaServer Pages (JSP), che 
sono una combinazione di HTML/XML statico e di Java. Le JSP permettono inoltre  
allo sviluppatore di definire nuovi tag. La parte "controller" consiste di servlet, 
che accolgono le richieste (GET/POST) del client, agiscono sul 
modello e aggiornano la vista fornendo la JSP appropriata. È possibile 
saperne di più sulla <url name="pagina del progetto Struts"
url="http://jakarta.apache.org/struts/index.html">.

<sect2>Taglibs
<p>La tecnologia JavaServer Pages permette agli sviluppatori di aggiungere funzionalità 
tramite tag personalizzati. Il progetto Taglibs intende essere un archivio comune 
per tali estensioni. Include tag per utilità comuni (per es. date), per 
l'accesso a database SQL e così via. 
<p>
Per saperne di più su TagLibs si veda 
<htmlurl url="http://jakarta.apache.org/taglibs/">.
Una più ampia documentazione è inclusa nel pacchetto. 

<sect2>Database
<p><url name="OJB" url="http://jakarta.apache.org/ojb/"> è uno strumento 
per la mappatura di database che permette la persistenza e l'archiviazione di 
oggetti Java nei database relazionali. <url name="Xindice"
url="http://xml.apache.org/xindice/"> è un database nativo XML per l'archiviazione 
e l'interrogazione di documenti XML. 

<sect2>Commons
<p>Il <url name="progetto Commons" url="http://jakarta.apache.org/commons/">
fornisce una grande varietà di componenti Java riutilizzabili con minime dipendenze. 

<sect1>Testing
<p>I seguenti progetti ASF riguardano il testing e l'analisi delle prestazioni. 

<sect2>httpd-test
<p>Il <url name="progetto httpd-test"
url="http://httpd.apache.org/test/"> fornisce un ambiente di test per il 
server web Apache e strumenti come <url name="flood" url="http://httpd.apache.org/test/flood/"> per il test del carico HTTP. 

<sect2>Cactus
<p><url name="Cactus" url="http://jakarta.apache.org/cactus/"> è un 
ambiente di test per la verifica di codice Java lato server, come Servlet e EJB. 

<sect2>JMeter
<p>È uno strumento per i test scritto in Java, con un'interfaccia grafica. Si può ottenere presso <htmlurl 
url="http://jakarta.apache.org/jmeter/">.

<sect2>Lakta
<p><url name="Lakta" url="http://jakarta.apache.org/lakta/"> è uno strumento end-to-end 
di testing HTTP. 

<sect2>Watchdog
<p>Il <url name="progetto Watchdog" url="http://jakarta.apache.org/watchdog/"> è un corredo di set per la convalida 
delle specifiche Servlet e JavaServer Pages. 

<sect>Dove trovare maggiori informazioni 
<p>Risorse aggiuntive relative a Apache  
<sect1>Siti Web 
<p>Alcuni utili siti web  
<itemize>
<item><url name="Sito Web di Apache" url="http://www.apache.org">
<item><url name="Apache Week" url="http://www.apacheweek.com">
<item><url name="directory dei moduli di Apache" url="http://modules.apache.org">
<item><url name="Apache today" url="http://www.apachetoday.com">
<item><url name="Apache World" url="http://www.apacheworld.org">
<item><url name="sezione di Slashdot su Apache" url="http://slashdot.org/index.pl?section=apache">
</itemize>
<sect1>Libri 
<p>L'autore mantiene <url name="una lista di libri"
url="http://www.apacheworld.org/apache_overview/books/"> correlati a questo  
documento. Non è un elenco esaustivo, ma piuttosto include quei libri che 
l'autore ha personalmente trovato ben scritti e utili. 
<sect1>Forum di supporto 
<p>È possibile trovare la mailing list degli utenti Apache presso <htmlurl
url="http://httpd.apache.org/lists.html">. Esistono liste simili per gli 
altri progetti documentati qui. Prima di inviare richieste di aiuto si legga il 
documento delle "Frequently Asked Questions". Si può ottenere supporto anche nel newsgroup  
comp.infosystems.www.servers.unix presso <htmlurl url="http://groups.google.com">. 
<p>Se si desidera un supporto commerciale, si valuti se contattare <url name="Covalent"
url="http://www.covalent.net">, che fornisce supporto di esperti per Apache (ovviamente, 
a pagamento). Se si sta usando Apache sotto Linux, il proprio venditore Linux potrebbe  
avere piani di supporto che comprendano anche Apache.

<sect>Contattare l'Autore 
<p>Potete contattarmi all'indirizzo daniel @ rawbyte.com . Suggerimenti e correzioni 
saranno graditi, vi prego però di non spedirmi messaggi chiedendomi di 
risolvere i malfunzionamenti della vostra installazione di Apache. Non ho proprio il tempo di
rispondere individualmente a tutti. Se avete bisogno di supporto, fate riferimento alle risorse citate sopra. 
<p>

<sect1>Traduzioni
<p>Chiunque desideri contribuire alla traduzione di questo documento dovrebbe 
utilizzare il sorgente SGML. Si veda <htmlurl url="http://www.tldp.org"> per informazioni.
Mandatemi una nota così che io possa essere certo che otteniate la versione più recente. 

<sect>Open Content Open Publication License

<p>Open Publication License
Draft v1.0, 8 June 1999 (text version)


<sect1>REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS

<p>The Open Publication works may be reproduced and distributed in
whole or in part, in any medium physical or electronic, provided that
the terms of this license are adhered to, and that this license or an
incorporation of it by reference (with any options elected by the
author(s) and/or publisher) is displayed in the reproduction.

<p>Proper form for an incorporation by reference is as follows:

<p>Copyright (c) &lt;year&gt; by &lt;author's name or
designee&gt;. This material may be distributed only subject to the
terms and conditions set forth in the Open Publication License, vX.Y
or later (the latest version is presently available at
http://www.opencontent.org/openpub/). The reference must be
immediately followed with any options elected by the author(s) and/or
publisher of the document (see section VI).

<p>Commercial redistribution of Open Publication-licensed material is
permitted.

<p>Any publication in standard (paper) book form shall require the
citation of the original publisher and author. The publisher and
author's names shall appear on all outer surfaces of the book. On all
outer surfaces of the book the original publisher's name shall be as
large as the title of the work and cited as possessive with respect to
the title.


<sect1>COPYRIGHT

<p>The copyright to each Open Publication is owned by its author(s) or designee.


<sect1>SCOPE OF LICENSE

<p>The following license terms apply to all Open Publication works,
unless otherwise explicitly stated in the document.

<p>Mere aggregation of Open Publication works or a portion of an Open
Publication work with other works or programs on the same media shall
not cause this license to apply to those other works. The aggregate
work shall contain a notice specifying the inclusion of the Open
Publication material and appropriate copyright notice.

<p>SEVERABILITY. If any part of this license is found to be
unenforceable in any jurisdiction, the remaining portions of the
license remain in force.

<p>NO WARRANTY. Open Publication works are licensed and provided "as
is" without warranty of any kind, express or implied, including, but
not limited to, the implied warranties of merchantability and fitness
for a particular purpose or a warranty of non-infringement.


<sect1>REQUIREMENTS ON MODIFIED WORKS

<p>All modified versions of documents covered by this license,
including translations, anthologies, compilations and partial
documents, must meet the following requirements:

<itemize>

<item> 1. The modified version must be labeled as such.

<item> 2. The person making the modifications must be identified and
the modifications dated.

<item> 3. Acknowledgement of the original author and publisher if
applicable must be retained according to normal academic citation
practices.

<item> 4. The location of the original unmodified document must be
identified.

<item> 5. The original author's (or authors') name(s) may not be used
to assert or imply endorsement of the resulting document without the
original author's (or authors') permission.

</itemize>


<sect1>GOOD-PRACTICE RECOMMENDATIONS

<p>In addition to the requirements of this license, it is requested
from and strongly recommended of redistributors that:

<itemize>

<item> 1. If you are distributing Open Publication works on hardcopy
or CD-ROM, you provide email notification to the authors of your
intent to redistribute at least thirty days before your manuscript or
media freeze, to give the authors time to provide updated
documents. This notification should describe modifications, if any,
made to the document.

<item> 2. All substantive modifications (including deletions) be
either clearly marked up in the document or else described in an
attachment to the document.

<item> 3. Finally, while it is not mandatory under this license, it is
considered good form to offer a free copy of any hardcopy and CD-ROM
expression of an Open Publication-licensed work to its author(s).

</itemize>

<sect1>LICENSE OPTIONS

<p>The author(s) and/or publisher of an Open Publication-licensed
document may elect certain options by appending language to the
reference to or copy of the license. These options are considered part
of the license instance and must be included with the license (or its
incorporation by reference) in derived works.

<p>A. To prohibit distribution of substantively modified versions
without the explicit permission of the author(s). "Substantive
modification" is defined as a change to the semantic content of the
document, and excludes mere changes in format or typographical
corrections.

<p>To accomplish this, add the phrase 'Distribution of substantively
modified versions of this document is prohibited without the explicit
permission of the copyright holder.' to the license reference or copy.

<p>B. To prohibit any publication of this work or derivative works in
whole or in part in standard (paper) book form for commercial purposes
is prohibited unless prior permission is obtained from the copyright
holder.

<p>To accomplish this, add the phrase 'Distribution of the work or
derivative of the work in any standard (paper) book form is prohibited
unless prior permission is obtained from the copyright holder.' to the
license reference or copy.

</article>
