This is version . It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]

Installazione Tomcat / Apache :#

ATTENZIONE TOMCAT 6:#

People, Tomcat 6 has disabled the standard servlet behavior by default.

To make it work you should add
-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=true to your startup
script. If you don't, the server response will not include the
encoding bit, even if the browser has provided an Accept-Language
header. The symptoms are that loom will lose any accented characters
(áéí... you know what I mean). Adding this flag should get it fixed.

I have updated the docs and the Loom "start tomcat" eclipse config. 

Prerequisiti :#

  1. JDK : l'instalazione del motore Java SE Development Kit (JDK) 6 installazione java.
  2. Download da tomcat.apache.org i binary di tomcat (ad esempio file: apache-tomcat-6.0.18.tar.gz)
  3. Apache : versione proposta dal OS (apache2).
  4. Il connector libapache2-mod-jk si può scaricare mod_jk oppure utilizzare la versione proposta nativamente sal Sistema operativo.
    Attenzione: il connector di tomcat con apache dipende dal version di apache.

Installazione :#

  1. unpack tomcat in /opt/ e rinominare in /opt/tomcat
  2. Assicurarsi che il connecton mod_jk sia visibile da apache solo nel caso non sia stata utilizzata l'installazione nativa del modulo.

Avvio :#

Nel caso di utilizzo di tomcat con il connettore ad apache è meglio
  1. avviare prima tomcat: /etc/init.d/tomcat start
  2. avviare apache: /etc/init.d/apache2 start

Allo stesso modo per un riavvio di tomcat sarebbe meglio spegnere apache, riavviare tomcat e avviare apache

Tomcat come servizio #

Per attivare tomcat come servizio nel caso di installazione indipendente dal sistema bisogna create il file /etc/init.d/tomcat che implementi i tre comandi fondamentali di servizo (start-stop-restart). Per ubuntu vedere ubuntu gestione servizi.
Lo script di avvio di tomcat può contenere il comando (in fase di start)
cat /opt/template/inizio.xml /etc/apache2/conf.d/vhost.xml/*xml /opt/template/fine.xml
> /opt/tomcat/conf/server.xml
che ricrea il file di configurazione server.xml di tomcat includendo eventuali nuovi siti.

Inoltre può contenere le JAVA_OPTS come ad esempio

export JAVA_OPTS="-server -Xms512M -Xmx512M -Xss128K"

Configurazione :#

Script per la configurazione degli host(apache) e dei contesti(tomcat)

- creare la directory /home/www/

- Creare la cartella /opt/script/ e creare il file addvirtual

- creare la cartella /opt/template/ con i seguenti file. Per i file .xml partire dal server.xml (farsene una copia di backup poichè verrà sovrascritto) di default della versione di tomcat che si sta installando.

  1. inizio.xml
  2. fine.xml
  3. template_db2.xml, template_ps.xml,... (la configurazione di questi dipende con quale database si intende fare connessione via jdbc)
  4. logrotate.conf
  5. virtual.conf
  6. webalizer.conf

Funzionalità Script Addvirtual#

Lo script addvirtual crea automaticamente tutte le configurazioni necessarie ad apache (Virtual Host) e a tomcat (context).

Convenzione: i file che descrivono al configurazione apache e tomcat vengono creati nelle directory /etc/apache2/conf.d/vhost.d per i virtual host di apache e /etc/apache2/conf.d/vhost.xml per il contesto Tomcat.

Nel dettaglio addvirtual si occupa di :

  1. creare directoty per sito (/home/www/www.nostrosito.it/htdocs). Necessita della directory skel in /home/www/.
  2. file configurazione Virtual Host Apache (/etc/apache2/conf.d/vhost.d/www.nostrosito.it.conf)
  3. file configurazione Context Tomcat (/etc/apache2/conf.d/vhost.xml/nostrosito.it.xml)
  4. crea utente ftp per gestione sito
  5. file di configurazione logrotate
  6. file di configurazione webalizer

L'utilizzo dello script è il seguente :

Usage : addvirtual dominio utente nomedatabase tipodatabase (db2,ps,...)
es : addvirtual nostrosito.it webnostrosito nomenostrodb db2

Tomcat#

Files /opt/template/inizio.xml e /opt/template/fine.xml#

I due file contengono la parte iniziale e la parte finale del file di configurazione di tomcat server.xml. Il file dipende dalla versione dell'applicatione server perciò è necessario adattare i due file.

Files /opt/template/template_XX.xml#

Il/I file contengono la definizione dell'Host. Il nome del file e il suo contenuto dipendono principalmente dal tipo di database a cui si intende effettuare una connessione via jdbc. Per vedere i vari parametri messi a disposizione da tomcat per la definizione di un Host si rimanda alla documentazione ufficiale di tomcat.

Apache#

Connettore apache-tomcat (mod_jk)#

  1. Procedura manuale (sconsigliata)
    1. rinominare il connettore scaricato in mod_jk.so e metterlo ad esempio in /usr/lib/apache2/modules/
    2. editare /etc/apache2/apache2.conf e aggiungere in fondo LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
  2. Procedura automatica: utilizzare gli strumenti che la tua distribuzione linux offre per installare un pacchetto (ad esempio per ubuntu aptitude install libapache2-mod-jk). Verificare che il modulo sia poi presente tra quelli enabled (ad esempio in /etc/apache2/mods-enabled)

A questo punto è necessario configurare:

  1. workers.properties e metterlo in /opt/tomcat/conf
  2. editare /etc/apache2/apache2.conf e aggiungere
JkWorkersFile "/opt/tomcat/conf/workers.properties"
JkLogFile "/opt/tomcat/logs/mod_jk.log"
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

Caricare i VirtualHost creati con addvirtual#

Per indicare ad apache dove prelevare le definizioni dei VirtualHost occorre editare /etc/apache/apache2.conf e
commentare le seguenti
#Include /etc/apache2/conf.d/[^.#]*
e anche
#Include /etc/apache2/sites-enabled/[^.#]*

aggiungere la seguente

Include /etc/apache2/conf.d/vhost.d/*.conf

e anche

NameVirtualHost qui

File virtual.conf#

Il file contiene la configurazione del virtual host di apache.
Nella definizione del VirtualHost si fa riferimento alla variabile 'qui' (al posto di un IP secco o di un nome di dominio) che deve essere settata in /etc/hosts:

IPMACCHINA	qui

Inoltre sempre in /etc/hosts per evitare questo possibile errore in avvio/stop di apache:
'could not determine the server's fully qualified domain name using 127.0.0.1 for servername'

aggiungere

127.0.0.1       localhost.localdomain   localhost       NOMEMACCHINA(es mix4)
NOTA: togliere anche 127.0.1.1 NOMEMACCHINA che di default esiste

Webalizer#

E' un tool di creazione statistiche web. le relative configurazioni sono comprese nel file /opt/template/webalizer.conf.
Per lanciare l'aggiornamento delle statistiche creare un file in /opt/script/runstat da lanciare con un cron tutte i giorni.

Logrotate #

Tool di rotazione dei file di log access.log ed error.log. La relativa configurazione è compresa nel file logrotate.conf.

Errori o Warning all'avvio di Tomcat o Apache#

Se all'avvio di tomcat da un info di questo tipo:
17-mar-2008 16.20.08 org.apache.catalina.core.StandardContext addApplicationListener INFO: The listener "listeners.ContextListener" is already configured for this context. The duplicate definition has been ignored.
17-mar-2008 16.20.08 org.apache.catalina.core.StandardContext addApplicationListener INFO: The listener "listeners.SessionListener" is already configured for this context. The duplicate definition has been ignored.
Togliere o commentare da:
/opt/tomcat/webapps/examples/WEB-INF/web.xml
i riferimenti a

 <!--Define example application events listeners//-->
    <listener>
        <listener-class>listeners.ContextListener</listener-class>
    </listener>
    <listener>
        <listener-class>listeners.SessionListener</listener-class>
    </listener>

Comunque è un baco di tomcat che in qualsiasi web.xml compare un listener cerca di caricarlo 2 volte.
Se in fase di avvio di apache risponde: API module structure `jk_module' in file /usr/lib/apache2/modules/mod_jk.so is garbled - perhaps this is not an Apache module DSO? Vuol dire che il mod_jk installato non è adeguato alla versione di apache... sostituirlo con un connector della versione giusta.
se nell'error.log di apache compare spesso

error client 1 Directory index forbidden by Options directive srvwwwhtdocs

in /srv/www/htdocs aggiungere un file index.htm

Questo sembrerebbe dovuto a:

Requests From the Server to Itself When the Apache HTTP Server manages its child processes, it needs a way to wake up processes that are listening for new connections. To do this, it sends a simple HTTP request back to itself. This request will appear in the access_log file with the remote address set to the loop-back interface (typically 127.0.0.1 or ::1 if IPv6 is configured). If you log the User-Agent string (as in the combined log format), you will see the server signature followed by "(internal dummy connection)" on non-SSL servers. During certain periods you may see up to one such request for each httpd child process.

These requests are perfectly normal and you do not, in general, need to worry about them. They can simply be ignored.

If you wish to exclude them from your log, you can use normal conditional-logging techniques. For example, to omit all requests from the loopback interface from your logs, you can use

SetEnvIf Remote_Addr "127\.0\.0\.1" loopback
and then add env=!loopback to the end of your CustomLog directive.

In 2.2.6 and earlier, in certain configurations, these requests may hit a heavy-weight dynamic web page and cause unnecessary load on the server. You can avoid this by using mod_rewrite to respond with a redirect when accessed with that specific User-Agent or IP address.


Add new attachment

Only authorized users are allowed to upload new attachments.
« This particular version was published on 14-Apr-2010 14:30 by turchetti.