Come configurare un Server WEB Apache su linux
Guida alla configurazione di un server Web APACHE
Prima di installare
Prima di cominciare vale la pena di spendere due parole sui requisiti di un server Web.
Tenete conto che probabilmente vi servirà hardware dedicato , se possibile scegliete una soluzione appositamente progettata per il servizio che dovrete ospitare.
Prendetevi il tempo necessario per pianificare un corretto partizionamento del disco.
Possibilmente dedicate una partizione apposita per /var/log ed una specifica per /var/www dove ospiterete i vostri siti : ciò dovrebbe minimizzare i tempi di I/O sia per la scrittura dei log files che per le operazioni di GET per la lettura dei files legata alle richieste dei clients.
Installazione
Aprite una shell ed al prompt dei comandi digitate:
sudo apt-get -y install apache2
L'opzione -y di apt-get non chiede la conferma per le azioni legate al processo di installazione del software.
Apt installerà pertanto apache2 risolvendo automaticamente le dipendenze necessarie ed avviando il server web nella configurazione di default.
Un'occhiata ai files e alle directories di configurazione
In apache2 le principali opzioni di configurazione sono racchiuse nel file apache2.conf, mentre il file httpd.conf è vuoto (riservato alla personalizzazione della configurazione di apache2) e le porte su cui il server Web sarà in ascolto all'avvio del servizio sono elencate nel file ports.conf; questi files si trovano in /etc/apache2. La directory mods-availablecontiene tutti i moduli disponibili con apache2 (quelli installati di default) mentre la directory sites-available contiene le direttive di configurazione relative a tutti i siti che questo server Web ospita. I moduli effettivamente caricati all'avvio del servizio apache2 sono elencati nella directory mods-enabled , così come i siti effettivamente pubblicati e visibili agli utenti sono elencati nella directory sites-enabled. I files contenuti in queste 2 directories sono dei links a quelli contenuti nelle 2 directories mods-available e sites-available. Questo vuol dire che se dovete supportare l'accesso in modo protetto al vostro sito (usando ssl) dovete creare dei links ai file corrispondenti in mods-available.
Per esempio per supportare ssl occorre immettere comandi:
ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf
ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
La directory che contiene i file di log su tutti gli accessi è /var/log/apache2.
La directory che contiene il sito predefinito e che dovrebbe contenere i vostri siti è/var/www.
Parametri di configurazione globali
Per modificare l'installazione di default occorre dare un'occhiata alla directory di configurazione di apache2 , /etc/apache2.
Eseguire al prompt dei comandi:
cd /etc/apache2
osserverete come output :
README envvars mods-available sites-available
apache2.conf httpd.conf mods-enabled sites-enabled
conf.d magic ports.conf ssl
Opzioni globali
Il file /etc/apache2/apache2.conf contiene le principali opzioni di configurazione di apache2:
ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile /var/run/apache2.pid
TimeOut 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 20
MaxRequestsPerChild 0
ErrorLog /var/log/apache2/error.log
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
· ServerRoot : directory base per configurazione , logs ed errori
· LockFile : il lock file sul file di log (da modificare solo se il log file di apache2 è montato via NFS)
· PidFile : il file che contiene il PID del processo padre apache2
· TimeOut : il tempo dopo il quale apache2 chiude una connessione client in stato idle
· KeepAlive On : sono permesse connessioni persistenti (ovvero in grado di servire più di una richiesta di uno stesso client)
· MaxKeepAliveRequests : il massimo numero di richieste che in una singola connessione un client può fare al server (dopo tale numero le richieste verranno scartate)
· KeepAliveTimeout : numero di secondi da attendere per effettuare un'altra richiesta da parte di uno stesso client su una stessa connessione persistente
· StartServers : numero di processi server avviati
· MinSpareServers : numero minimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico)
· MaxSpareServers : numero massimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico)
· MaxClients : massimo numero di processi apache2 che possono essere avviati
· MaxRequestsPerChild : numero massimo di richieste che il server è in grado di processare per ciascun thread
· Include : sono le direttive di inclusione. Apache2 si serve di tali direttive per dichiarare indirizzo di binding,porta di ascolto ed altri parametri specifici della vostra configurazione in file distinti.
Come vedete la direttiva ErrorLog /var/log/apache2/error.log è relativa al path del log file,mentre la Include /etc/apache2/mods-enabled/*.load e quella successiva dicono di includere tutti i moduli elencati in mods-enabled. Le configurazioni particolari sono in/etc/apache2/httpd.conf e la porta di ascolto in ports.conf.
Per modificare l'utente e il gruppo con cui apache2 è avviato dovete editare i parametri nel file /etc/apache2/apache2.conf
User www-data
Group www-data
N.B. : apache2 non dovrebbe essere eseguito come root in quanto questo apre numerose falle di sicurezza...
I parametri per la gestione dei carichi di lavoro sono :
StartServers <n° processi figli Web Server all'avvio>
MinSpareServers <n° minimo processi figli liberi avviati per supplire picchi di carico>
MaxSpareServers <n° max processi figli liberi avviati per supplire picchi di carico>
N.B. : gli spare servers consentono al Web Server di rispondere + velocemente in caso di improvvisi picchi di richieste , ma occupano anche preziosa memoria dato che in casi di traffico normale non fanno nulla!
MaxClients <max n° client Web server è in grado di supportare simultaneamente>
I parametri per il nome del server sono :
ServerName <hostname (deve essere raggiungibile da URL>
ServerAdmin <mail_web_administrator>
Personalizzare il proprio sito
I parametri da specificare nel file /etc/apache2/sites-enabled/000-default sono :
DocumentRoot /usr/local/apache/htdocs
UserDir <public_html>
Alias /icons/ /usr/local/apache/icons/
ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
· DocumentRoot : è la radice dell'albero dei documenti per questo sito
· Alias e ScriptAlias : sono degli alias names per le directory locali nelle quali si trovano icone e scripts
Esempio :
http://example.com/man.html viene tradotto in /usr/local/apache/htdocs/man.html
http://example.com/cgi-bin/rpm-query viene tradotto in /usr/local/apache/cgi-bin/rpm-query
Alcune direttive di tipizzazione dei file:
Type/sub-type extension1 [extension2...]
Esempio :
Video/mpeg mpeg mpg mpe
Video/quicktime qt mov
Video/x-msvideo avi
'''AddType''' newtype/newsub-type extension1..
Esempio:
AddType text/doc doc
Alcune direttive per la specifica del linguaggio:
AddEncoding x-gzip gz tgz
AddFileType text/html html
AddLanguage en .en
Le direttive per la gestione dinamica dell'albero dei documenti e la redirezione dei documenti
Redirect [temporary | permanent] /images http://example.com/icons
RedirectMatch (.*)\.gif$ http://example.com$1.jpg
Il client che richiede GIF file viene rediretto verso JPEG files
Le direttive per l'indicizzazione delle directorie:
DirectoryIndex <index dir predefinito>
Esempio:
DirectoryIndex index.html
Se un client richiede http://www.example.com/dir1 ottiene come pagina web index.html.
Le direttive per la generazione di indici dinamici di directory:
Option + Indexes
Le direttive per la gestione dell'elenco dei files contenuti in una directory:
IndexIgnore README* *.txt
Nasconde al client i files README* e tutti i file con estensione .txt.
Altre direttive:
IndexOptions , HeaderName
Scelta icone per rappresentazione file:
AddIcon <icon> <match1> [<match2>
.]
AddIconByType ..
AddIconByEncoding ..
DefaultIcon ..
Esempio scelta di icone:
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/text.gif .txt
AddIconByType /icons.apache/text.gif text/*
AddAltByType TXT text/*
DefaultIcon /icons/unknown.gif
Configurazione delle opzioni a livello di directory:
Options
All (tutte le opzioni)
ExecCGI
FollowSymLinks
MultiViews
SymLinksIfOwnerMatch
· ExecCGI : : esecuzione script CGI
· FollowSymLinks : segue link simbolici
· MultiViews : seleziona documento che si avvicina di + alla richiesta del client quando il documento richiesto non esiste
· SymLinksIfOwnerMatch : Segue link se owner di src e dst coincidono
Direttive protezione sito web
· Autorizzazione
· Controllo accesso
· Autorizzazione basata sull'host
· Autorizzazione basata sull'utente
· Autenticazione
Autorizzazione basata sull'Host
Le direttive da usare sono le seguenti:
Deny <hostname> | a.b.c.d/mask
Allow <hostname> | a.b.c.d/mask
Order allow,deny : Processa le regole nell'ordine indicato
Autorizzazione basata sull'Utente
Per configurare l'autenticazione a livello utente procedere come segue:
· Creare file per utenti : /usr/local/apache/conf/htuser
· Creare utenti in /usr/local/apache/conf/htuser con comando:
htpasswd -c htuser <nomeutente>
· Creare gruppo htusers nel file /usr/local/apache/conf/htgroup
il formato del file è il seguente:
Groupname: user1 user2 user3 ..
Direttive per autorizzazione basata sull'utente da inserire nel file /etc/apache2/sites-enabled/000-default:
AuthUserFile conf/htuser
AuthGroupFile conf/htgroup
Impostazioni controllo accesso:
Require user username1 username2
Require group groupname1 groupname2
Require valid-user
· la prima direttiva consente l'accesso a username1 username2..
· la seconda direttiva consente l'accesso a groupname1 groupname2..
· la seconda direttiva consente l'accesso solo agli utenti definiti in htuser
Hosting virtuale
In generale una singola macchina ospita più di un sito web.
La gestione dei siti allora può essere fatti nei seguenti modi :
· N siti = N * M processi web server (se M è n° processi per singola istanza sito web,vuol dire che M processi gestiscono ciascun sito)
· Virtual host = N siti = M processi web server (sempre 1 singola istanza web,ovvero gli M processi gestiscono tutti gli N siti web)
È possibile identificare tre tipi di hosting virtuale :
· basato sull'IP (VH host based) : da eseguire quando avete più di indirizzo IP
· basato sul nome (VH name based) : da eseguire quando avete più nomi DNS (alias etc...)
· basato sulla porta (VH port based)
I metodi per la scelta delle tipologie di hosting sono :
· N interfacce di rete : VH host based
· Singola interfaccia di rete : name based VH
· N nomi per host : VH name based
· Necessità di separazione web servers per differenti policies protezione : Non scegliete il VH poichè dovete effettuare una separazione delle istanze del vostro web server
Host based VH
Utilizzare la direttiva <VirtualHost> da specificare all'interno di /etc/apache2/sites-enabled/000-default e all'interno delle opzioni di directory come nell'esempio riportato:
BindAddress 0.0.0.0
Port 80
DocumentRoot /usr/local/apache/htdocs
ServerName site1.example.com
<VirtualHost 192.168.1.2>
DocumentRoot /usr/local/apache/htdocs2
ServerName site2.example.com
...
</VirtualHost>
Qui il sito web di default serve site1.example.com , mentre l'IP 192.168.1.2 serve il sitosite2.example.com.
Name based VH
Esempio:
Listen 192.168.1.232
NameVirtualHost 192.168.1.232
<VirtualHost 192.168.1.232>
DocumentRoot /home/httpd/ex1
ServerName www1.example.com
..
</VirtualHost>
..
<VirtualHost 192.168.1.232>
DocumentRoot /var/apache/htdocs2
ServerName www2.example.com
..
</VirtualHost>
Qui come vedete si ha un unico IP ma due nomi server distinti (due nomi nel DNS,di cui uno sarà un alias name) che servono due siti distinti.
Esecuzione di N istanze su singolo host
Creare N files di configurazione per N istanze :
· Aggiungere righe per start e stop httpd al file /etc/init.d/apache2
· In /etc/init.d/apache2 definire gli N diversi files di configurazioneapache2[i].conf usati dalle N istanze dei web servers
· Usare nei apache2[i].conf le diverse direttive specifiche come mostrato in precedenza
· Specificare:
BindAddress
Port
Listen
ErrorLog
Configurazione di un server Web protetto con OpenSSL
I comandi da specificare sono :
· Comando da shell:
apache2-ssl-certificate -days 3650
sostituite 3650 con la durata del certificato in giorni.
· Caricare modulo ssl in /etc/apache2/mods-enabled con comando:
ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf
ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
· Specificare la direttiva Listen 443 nel file /etcapache2/ports.conf
· Modificare /etc/apache2/sites-available/default aggiungendo le righe:
NameVirtualHost *:443
<VirtualHost *:443>
#Inserire qui l'indirizzo email dell'amministratore del server
ServerAdmin webmaster@localhost
#Inserire qui la DocumentRoot del server virtuale
#In questa cartella ci sono le pagine che viaggeranno sul canale criptato
DocumentRoot /var/www
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>
Riavviare apache2 eseguendo da shell il comando /etc/init.d/apache2 restart
Supporto PHP
Caricare i moduli con i comandi da shell:
ln -s /etc/apache2/mods-available/php.conf /etc/apache2/mods-enabled/php.conf
ln -s /etc/apache2/mods-available/php.load /etc/apache2/mods-enabled/php.load
Controllo dei file di log
Tutti i file di log si trovano nella directory /var/log/apache2 e sono:
· access.log
· error.log
Forniscono utili informazioni per il debugging dei problemi che si possono presentare.
Introduzione Tomcat
Apache Tomcat è un Servlet/JSP engine che non fa altro che contenere ed eseguire le applicazioni Java Servlet e Java Server Page (JSP).
Non è l'unico Application Server per Servlet/JSP in circolazione, ma di sicuro è libero ed è il contenitore di servlet utilizzato nell'implementazione ufficiale di riferimento per ilJava Servlet e le tecnologie Java Server Page sviluppate dalla Sun Microsystems.
Questa guida servirà ad installare Apache Tomcat utilizzando i binari ufficiali prelevabili dal sito di Tomcat e non utilizzando i pacchetti precompilati di Ubuntu prelevabili dalrepository Universe.
Il tutto per un duplice motivo:
i pacchetti di Ubuntu non sono sincronizzati con l'ultima release disponibile;
richiedono dipendenze, spesso eccessive e non necessariamente utili, come ad esempio l'installazione delle librerie ligcj e sue dipendenze, che risulterebbero ridondanti visto già la presenza, o che comunque andremo ad installare, di Java JRE e JDK della Sun.
Tomcat 6
Procediamo con l'installazione di Tomcat.
Installazione
Attiviamo i repository Universe e Multiverse di Ubuntu. Per maggiori informazioni consultare la pagina Repository.
Installamio per prima cosa, se già non lo avete fatto il Java jre e jdk:
sudo apt-get install sun-java5-jre sun-java5-jdk
se invece volete installare l'ultimissima versione di Java, la 1.6:
sudo apt-get install sun-java6-jre sun-java6-jdk
Scarichiamo dal sito http://tomcat.apache.org/ l'ultima versione di Tomcat, la 6 al momento in cui sto scrivendo:
wget http://mirrors.publicshout.org/apache/tomcat/tomcat-6/v6.0.7/bin/apache-tomcat-6.0.7.tar.gz
Estraiamo l'archivio:
tar xzfv apache-tomcat-6.0.7.tar.gz
Copiamo in /usr/local la directory estratta e poi creiamo un link simbolico/usr/local/tomcat , per un triplice motivo, praticità, manutenibilità e comoditàse si desidera installare più versioni (basta cambiare il riferimento al link simbolico). Procediamo:
sudo cp -r apache-tomcat-6.0.7 /usr/local/
sudo ln -s /usr/local/apache-tomcat-6.0.7/ /usr/local/tomcat
Creiamo uno script per init.d per far si che il demone di Tomcat venga attivato all'avvio o comunque darci la possibilità di avviarlo, arrestarlo, riavviarlo:
creiamo il file /etc/init.d/tomcat con l'editor di testo preferito e copiamo quanto segue:
#!/bin/bash
#
# Startup script for the Tomcat server
#
# chkconfig: - 83 53
# description: Starts and stops the Tomcat daemon.
# processname: tomcat
# pidfile: /var/run/tomcat.pid
# See how we were called.
case $1 in
start)
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/
export CLASSPATH=/usr/local/tomcat/lib/servlet-api.jar
export CLASSPATH=/usr/local/tomcat/lib/jsp-api.jar
export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
echo "Tomcat is started"
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
sh /usr/local/tomcat/bin/shutdown.sh
echo "Tomcat is stopped"
;;
restart)
export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
sh /usr/local/tomcat/bin/shutdown.sh
echo "Tomcat is stopped"
sh /usr/local/tomcat/bin/startup.sh
echo "Tomcat is started"
;;
*)
echo "Usage: /etc/init.d/tomcat start|stop|restart"
;;
esac
exit 0
Diamogli i giusti permessi, rendiamolo eseguibile e registriamolo:
sudo chmod 755 /etc/init.d/tomcat
sudo update-rc.d tomcat defaults
Avviamo Tomcat:
sudo /etc/init.d/tomcat start
A questo punto, se tutto è andato per il verso giusto, connettendoci all'indirizzo http://localhost:8080 dovremmo vedere la pagina di benvenuto di Tomcat.
Apache e Tomcat
Tomcat è abbastanza performante per essere eseguito come Web Server di pagine statiche o dinamiche, o come Web Application Server. Tuttavia se si vogliono sfruttare anche le innumerevoli potenzialità di un vero e proprio Web Server come Apache, soprattutto se lo si usa in macchine in produzione, esiste un connector che permette di mettere in comunicazione Apache con Tomcat facendolo richiamare da Apache solo quando serve.
Installazione del jk connector
Ovviamente si presume che abbiate Apache2 già installato.
Installiamo il connector:
sudo apt-get isntall libapache2-mod-jk
Creiamo il file /etc/apache2/workers.properties con l'editor di testo preferito e copiamo quanto segue:
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/lib/jvm/java-1.5.0-sun
ps=/
worker.list=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
worker.ajp13.type=ajp13
Con port=8009 si intende la porta con la quale Tomcat ascolta il connector, non http che è 8080.
Modifichiamo il file /etc/apache2/mods-available/jk.load e inseriamo, dopo la riga «!LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so», quanto segue:
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /etc/apache2/mod_jk.log
JkLogLevel debug
#JkMount /servlets-examples/* ajp13 #da decommentare se si usa tomcat 5.x;
JkMount /examples/* ajp13
Riavviamo Apache:
sudo /etc/init.d/apache2 restart
Se tutto è andato per il verso giusto, connettendoci all'indirizzo http://localhost/examples, dovremmo vedere la pagina con i JSP e i Java Servlet d'esempio.
Osservazioni e approfondimenti
Connector: aggiungere altre directory web
In /etc/apache2/workers.properties la direttiva «JkMount» non fa altro che redirigere aTomcat tutte le richieste http precedute da /examples/, per esempiohttp:/localhost/exampler/unesempio.jsb , in questo caso unesempio.jsp verrà processato da Tomcat invece che da Apache.
Dunque, se vogliamo aggiungere altre direcotory per richiamare le nostre applicazioni basta inserire altri «JkMount» in /etc/apache2/mods-available/jk.load:
.....
JkMount /examples/* ajp13
JkMount /<nomedirectory>/* ajp13
È importante osservare che <nomedirectory> deve essere contenuta all'interno della directory /usr/local/tomcat/webapps, questo perchè come avete potuto notare in /etc/apache2/workers.properties abbiamo settato il path della home di Tomcat in /usr/local/tomcat, dunque la direttiva JkMount effettuerà la sua ricerca a partire da li.
Se invece vogliamo che le nostre applicazioni siano salvate e sviluppate in una directory nella nostra home, oppure nella root del nostro Web Server, basta creare un collegamento simbolico che dalla directory dichiarata in «JkMount» punti a una directory o nella nostra home o nella root del Web Server o in qualsiasi posto noi volessimo salvare i nostri progetti Servlet/JSP.
Per esempio, se vogliamo che «JkMount /<nomedirectory>/» punti a /home/nomeutente/nostreapplicazioni/<nomedirectory>, procederemo come segue:
mkdir /home/nomeutente/nostreapplicazioni/<nomedirectory>
sudo ln -s /home/nomeutente/nostreapplicazioni/<nomedirectory>/ /usr/local/tomcat/webapps/<nomedirectorydichiaratainJkMount>
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/tomcat restart
Ora basterà inserire o creare le nostre applicazioni in /home/nomeutente/nostreapplicazioni/<nomedirectory> e puntando col nostro browser a/applicazione.jsp"http://localhost/<nomedirectorydichiaratainJkMount>/applicazione.jspi nostri lavori verranno processati da Tomcat.
Amministrare Tomcat
Per amministrare Tomcat è necessario attivare Tomcat Manager. Per farlo basta seguire questi semplici passi:
Apriamo il file /usr/share/tomcat/conf/tomcat-users.xml con l'edito di testo che preferiamo e aggiungiamo l'utente/i con i ruoli di admin e manager. Per creare i ruoli inseriamo tra i tag «<tomcat-users> ... </tomcat-users>»:
<role rolename="manager"/>
<role rolename="admin"/>
mentre per creare l'utente con i ruoli di admin e manager, inseriamo:
<user username="YOUR USERNAME " password="YOUR PASSWORD" roles="admin,manager"/>
Se volessimo dare all'utente un unico ruolo, come admin, basta inserirne solo uno:
<user username="YOUR USERNAME " password="YOUR PASSWORD" roles="admin"/>
Connettiamoci all'indirizzo http://localhost:8080/manager/html e accediamo al pannello di controllo di Tomcat Manager con le credenziali appena create.
Per approfondimenti sulla creazioni di altri ruoli vi rimando alla documentazione ufficiale: http://tomcat.apache.org/tomcat-6.0-doc/index.html.
Tomcat 5.x
La procedura di installazione di Tomcat appena descritta vale per la versione 6, ma, per le versioni precendenti, il metodo e l'approccio non cambiano, basta avere l'accortezza di adeguare alcuni path nei file di configurazione, visto che le direcotory delle versioni precedenti sono organizzate e nominate diversamente dalla versione 6.
Ecco nel dettaglio come procedere:
Ridefinire il collegamento simbolico /usr/local/tomcat facendolo puntare a /usr/local/apache-tomcat-5.5.20 (o comunque alla versione scelta):
sudo ln -s /usr/local/apache-tomcat-5.5.20 /usr/local/tomcat
se non è una nuova installazione e avevate già definito il collegamento simbolico, prima di crearlo è necessario rimuoverlo:
sudo rm /usr/local/tomcat
Nel file /etc/init.d/tomcat modificare i CLASSPATH da:
export CLASSPATH=/usr/local/tomcat/lib/servlet-api.jar
export CLASSPATH=/usr/local/tomcat/lib/jsp-api.jar
in:
export CLASSPATH=/usr/local/tomcat/conf/lib/servlet-api.jar
export CLASSPATH=/usr/local/tomcat/conf/lib/jsp-api.jar
La differenza sta che lib/ nelle versioni precedenti è una sotto directory di conf/.
Nel file /etc/apache2/mods-available/jk.load sostituiamo:
JkMount /examples/* ajp13
con:
JkMount /servlets-examples/* ajp13
Questo perchè gli esempi non si trovano in examples/ come nella versione 6, ma in servlets-examples/.
Java JRE e JDK 1.6
Nel caso in cui avvessimo scelto di installare l'ultima versione della Java Virtual Machine e relativo JDK, basta sostiture in tutti i file di configurazione ogni occorrenza di:
/usr/lib/jvm/java-1.5.0-sun
con:
/usr/lib/jvm/java-1.6.0-sun
Installazione del pacchetto Ubuntu
Ad ogni modo se vogliamo installare le versioni precompilate per Ubuntu presenti nei repository Universe, indipendentemente dalle dipendenze che si tirerà dietro, basta semplicemente fare come segue:
Installiamo:
sudo apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps
Avviamo Tomcat:
sudo /etc/init.d/tomcat5 start
Connettiamoci al server usando la porta 8180 e non 8080 :
http://localhost:8180
Per configurare connector e Apache basta seguire quanto descritto in precedenza.