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.