Come installare Apache Tomcat su Ubuntu
Se desideri eseguire pagine Web che includono la codifica delle pagine del server Java o servlet Java, puoi utilizzare Apache Tomcat. È un server Web open source e un contenitore servlet, rilasciato da Apache Software Foundation.
Tomcat può essere utilizzato come prodotto autonomo, con il proprio server web oppure può essere combinato con altri server web come Apache o IIS. La versione più recente di Tomcat è 9.0.14 e si basa su Tomcat 8 e 8.5 e implementa Servlet 4.0, JSP 2.2.
Leggi anche: Come installare Apache Tomcat 9 in CentOS/RHEL
Nella nuova versione sono stati apportati i seguenti miglioramenti:
- Aggiunto il supporto per HTTP/2.
- Aggiunto supporto per l'utilizzo di OpenSSL per il supporto TLS con i connettori JSSE.
- Aggiunto supporto per host virtuali TLS (SNI).
In questo tutorial ti mostreremo come installare Apache Tomcat 9 in Ubuntu 18.10 e versioni precedenti di Ubuntu.
Passaggio 1: installazione di Java
Per eseguire applicazioni Web Java, Tomcat richiede che Java sia installato sul server. Per soddisfare tale requisito, installeremo OpenJDK come mostrato.
sudo apt update
sudo apt install default-jdk
Passaggio 2: creazione di un utente Tomcat
Per motivi di sicurezza, Tomcat deve essere eseguito con un utente non privilegiato, ovvero non root. Questo è il motivo per cui creeremo l'utente e il gruppo Tomcat che eseguiranno il servizio. Inizia creando il gruppo Tomcat:
sudo groupadd tomcat
Successivamente creeremo un utente tomcat, che sarà membro del gruppo Tomcat. La posizione domestica di questo utente sarà /opt/tomcat poiché è qui che installeremo Tomcat. La shell deve essere impostata su /bin/false:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Ora siamo pronti per procedere al passaggio successivo e scaricare Tomcat.
Passaggio 3: installazione di Apache Tomcat
Per scaricare l'ultimo pacchetto disponibile, vai alla pagina di download di Tomcat e prendi la versione più recente.
Al momento della stesura di questo tutorial, l'ultima versione di Tomcat è 9.0.14. Per scaricare quella versione, cambia la tua directory corrente in qualcos'altro. Ad esempio puoi utilizzare /tmp:
cd /tmp
E poi usando il comando wget per scaricare l'archivio Tomcat:
wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512
Se vuoi verificare la somma sha512 del file puoi eseguire:
sha512sum apache-tomcat-9.0.14.tar.gz
cat apache-tomcat-9.0.14.tar.gz.sha512
Il valore risultante (hash) per entrambi i file dovrebbe essere lo stesso.
Come accennato in precedenza, installeremo Tomcat in /opt/tomcat. Dovremo creare quella directory:
sudo mkdir /opt/tomcat
E ora possiamo estrarre il pacchetto scaricato in quella nuova directory:
sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1
Ora vai a /opt/tomcat da dove aggiorneremo la proprietà e le autorizzazioni della cartella:
cd /opt/tomcat
E imposta il proprietario del gruppo /opt/tomcat su tomcat:
sudo chgrp -R tomcat /opt/tomcat
Successivamente aggiorneremo l'accesso in lettura del gruppo Tomcat sulla directory conf e imposteremo le autorizzazioni di esecuzione per la directory:
sudo chmod -R g+r conf
sudo chmod g+x conf
Successivamente renderemo l'utente Tomcat proprietario delle directory webapps, work, temp e logs:
sudo chown -R tomcat webapps/ work/ temp/ logs/
Ora sono state impostate le autorizzazioni e le proprietà corrette e siamo pronti per creare un file di avvio systemd, che ci aiuterà a gestire il processo Tomcat.
Passaggio 4: creazione di un file di servizio SystemD per Tomcat
Poiché desideriamo eseguire Tomcat come servizio, avremo bisogno di un file che ci aiuti a gestire facilmente il processo. A tale scopo creeremo un file di servizio systemd. Tomcat dovrà sapere dove si trova Java sul tuo sistema.
Per trovare quella posizione utilizzare il seguente comando:
sudo update-java-alternatives -l
L'output di quel comando ti mostrerà la posizione di JAVA_HOME.
Ora, utilizzando queste informazioni siamo pronti per creare il nostro file di servizio Tomcat.
sudo vim /etc/systemd/system/tomcat.service
Incolla il codice qui sotto nel file:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Assicurati di impostare JAVA_HOME con quello per il tuo sistema. Quando sei pronto, salva il file e chiudilo. Ora, utilizzando il comando seguente, ricarica il demone systemd in modo che possa trovare il nostro nuovo file di servizio:
sudo systemctl daemon-reload
Quindi avvia il servizio Tomcat:
sudo systemctl start tomcat
Puoi verificare lo stato del servizio con:
sudo systemctl status tomcat
Ora puoi testare Tomcat nel tuo browser utilizzando l'indirizzo IP del tuo sistema seguito dalla porta predefinita del servizio 8080.
http://ip-address:8080
Il risultato che dovresti vedere sarà simile a quello mostrato nell'immagine qui sotto:
Nel caso in cui non visualizzi l'output precedente, potrebbe essere necessario consentire la porta 8080 nel firewall come mostrato.
sudo ufw allow 8080
Se desideri che Tomcat venga avviato all'avvio del sistema, esegui:
systemctl enable tomcat
Passaggio 5: configurazione di Apache Tomcat
Tomcat dispone di un'app di gestione web preinstallata. Per poterlo utilizzare, dovremo impostare l'autenticazione nel nostro file tomcat-users.xml. Apri e modifica il file con il tuo editor di testo preferito:
sudo vim /opt/tomcat/conf/tomcat-users.xml
Aggiungeremo un utente che potrà accedere alle interfacce gestore e amministratore. Per configurare tale utente, tra i tag
, aggiungere la seguente riga:
<user username="Username" password="Password" roles="manager-gui,admin-gui"/>
Assicurati di modificare:
- Nome utente: con l'utente che desideri autenticare.
- Password: con la password che desideri utilizzare per l'autenticazione.
Poiché per impostazione predefinita l'accesso a Host Manager e Manager è limitato, vorremo rimuovere o modificare queste restrizioni. Per apportare tali modifiche è possibile caricare i seguenti file:
Per l'app Gestione:
sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
Per l'app Gestione host:
sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
All'interno di questi file puoi commentare la restrizione IP o consentire l'inserimento del tuo indirizzo IP pubblico. Ai fini di questo tutorial, ho commentato la riga:
Per rendere attive le nostre modifiche, ricarica il servizio Tomcat con:
sudo systemctl restart tomcat
Ora puoi testare l'app manager accedendo a http://ipaddress:8080/manager/. Quando vengono richiesti nome utente e password, utilizzare quelli configurati in precedenza. L'interfaccia che dovresti vedere dopo è simile alla seguente:
Per accedere al Gestore host, puoi utilizzare http://indirizzo-ip:8080/host-manager/.
Utilizzando il gestore host virtuale, puoi creare host virtuali per le tue applicazioni Tomcat.
Passaggio 6: testare Apache Tomcat creando un file di prova
Puoi verificare se tutto funziona correttamente, creando un file di prova all'interno della directory /opt/tomcat/webapps/ROOT/.
Creiamo questo file:
sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp
All'interno di quel file incolla il seguente codice:
<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>
<START OF JAVA CODES>
<%
out.println("Hello World! I am running my first JSP Application");
out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>
</body>
</html>
Salvare il file e impostare la proprietà come mostrato.
sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp
Ora carica il file nel tuo browser utilizzando http://indirizzo-ip:8080/tecmint.jsp.
Questo è tutto! Hai completato la configurazione del tuo server Apache Tomcat e hai eseguito il tuo primo codice Java. Ci auguriamo che il processo sia stato facile e diretto per te. In caso di problemi, condividi i tuoi problemi tramite il modulo di commento qui sotto.