Kif Tinstalla Apache Tomcat f'Ubuntu


Jekk trid tmexxi paġni tal-web li jinkludu kodifikazzjoni tal-paġna tas-server Java jew servlets Java, tista 'tuża Apache Tomcat. Huwa open source web server u servlet container, maħruġa minn Apache Software Foundation.

Tomcat jista 'jintuża bħala prodott waħdu, bis-server tal-web tiegħu stess jew jista' jiġi kkombinat ma 'servers tal-web oħra bħal Apache jew IIS. L-aktar verżjoni reċenti ta' Tomcat hija 9.0.14 u tibni fuq Tomcat 8 u 8.5 u timplimenta Servlet 4.0, JSP 2.2.

It-titjib li ġej sar fil-verżjoni l-ġdida:

  • Żieda appoġġ għal HTTP/2.
  • Żieda appoġġ għall-użu ta' OpenSSL għall-appoġġ TLS mal-konnetturi JSSE.
  • Żieda appoġġ għall-hosts virtwali TLS (SNI).

F'dan it-tutorja ser nuruk kif tinstalla Apache Tomcat 9 f'Ubuntu 18.10 u verżjoni eqdem ta' Ubuntu.

Pass 1: Installazzjoni ta' Java

Biex tħaddem applikazzjonijiet tal-web Java, Tomcat jeħtieġ li Java jiġi installat fuq is-server. Biex nilħqu dak ir-rekwiżit, aħna se ninstallaw OpenJDK kif muri.

$ sudo apt update
$ sudo apt install default-jdk

Pass 2: Ħolqien ta' Utent Tomcat

Għal raġunijiet ta' sigurtà, Tomcat għandu jitmexxa ma' utent mhux privileġġjat jiġifieri mhux root. Huwa għalhekk li se noħolqu tomcat ta' utent u grupp li se jmexxi s-servizz. Ibda billi toħloq il-grupp tat-tomcat:

$ sudo groupadd tomcat

Sussegwentement noħolqu utent tat-tomcat, li jkun membru tal-grupp tat-tomcat. Il-post tad-dar ta' dan l-utent se jkun /opt/tomcat peress li dan huwa fejn se ninstallaw Tomcat. Il-qoxra tkun issettjata għal /bin/false:

$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Issa aħna lesti li nipproċedu l-pass li jmiss u niżżlu Tomcat.

Pass 3: Installazzjoni ta' Apache Tomcat

Biex tniżżel l-aħħar pakkett disponibbli, mur fil-paġna tat-tniżżil ta’ Tomcat u aqbad l-aħħar verżjoni.

Fil-ħin tal-kitba ta' dan it-tutorja, l-aħħar verżjoni ta' Tomcat hija 9.0.14. Biex tniżżel dik il-verżjoni, ibdel id-direttorju attwali tiegħek għal xi ħaġa oħra. Pereżempju tista' tuża /tmp:

# cd /tmp

U mbagħad tuża l-kmand wget biex tniżżel l-arkivju 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

Jekk trid tivverifika s-somma sha512 tal-fajl tista' tmexxi:

$ sha512sum apache-tomcat-9.0.14.tar.gz
$ cat apache-tomcat-9.0.14.tar.gz.sha512

Il-valur li jirriżulta (hash) għaż-żewġ fajls għandu jkun l-istess.

Kif issemma qabel, se ninstallaw Tomcat f'/opt/tomcat. Ikollna noħolqu dak id-direttorju:

$ sudo mkdir /opt/tomcat

U issa nistgħu nieħdu l-pakkett imniżżel f'dak id-direttorju l-ġdid:

$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

Issa innaviga lejn /opt/tomcat minn fejn se naġġornaw is-sjieda tal-folder u l-permessi:

# cd /opt/tomcat

U ssettja sid tal-grupp ta' /opt/tomcat għal tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

Li jmiss se naġġornaw l-aċċess għall-qari tal-grupp tomcat fuq id-direttorju tal-konf u nissettjaw il-permessi ta 'eżekuzzjoni għad-direttorju:

$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

Sussegwentement se nagħmlu l-utent tat-tomcat sid tad-direttorji tal-webapps, tax-xogħol, tat-temp u tar-zkuk:

$ sudo chown -R tomcat webapps/ work/ temp/ logs/

Issa ġew stabbiliti l-permessi u s-sjieda xierqa u aħna lesti li noħolqu fajl tal-bidu systemd, li jgħinna namministraw il-proċess Tomcat.

Pass 4: Ħolqien ta' Fajl tas-Servizz SystemD għal Tomcat

Minħabba li rridu nħaddmu Tomcat bħala servizz, ikollna bżonn li jkollna fajl li jgħinna namministraw il-proċess faċilment. Għal dak il-għan aħna noħolqu fajl tas-servizz systemd. Tomcat ikollu jkun jaf fejn jinsab Java fis-sistema tiegħek.

Biex issib dak il-post uża l-kmand li ġej:

$ sudo update-java-alternatives -l

L-output ta' dak il-kmand jurik il-post tal-JAVA_HOME.

Issa, billi nużaw dik l-informazzjoni aħna lesti biex noħolqu l-fajl tas-servizz Tomcat tagħna.

$ sudo vim  /etc/systemd/system/tomcat.service

Past il-kodiċi hawn taħt fil-fajl:

[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

Kun żgur li tissettja JAVA_HOME ma' dik għas-sistema tiegħek. Meta tkun lest, issalva l-fajl u agħlaq. Issa, billi tuża l-kmand hawn taħt, erġa' tagħbija d-daemon systemd sabiex ikun jista' jsib il-fajl tas-servizz il-ġdid tagħna:

$ sudo systemctl daemon-reload

Imbagħad ibda s-servizz Tomcat:

$ sudo systemctl start tomcat

Tista' tivverifika l-istatus tas-servizz ma':

$ sudo systemctl status tomcat

Issa tista’ tittestja Tomcat fil-browser tiegħek billi tuża l-indirizz IP tas-sistema tiegħek segwit mill-port default tas-servizz 8080.

http://ip-address:8080

Ir-riżultat li għandek tara jkun simili għal dak muri fl-immaġni hawn taħt:

Fil-każ li ma tkunx qed tara l-output ta 'hawn fuq, jista' jkollok bżonn tħalli l-port 8080 fil-firewall tiegħek kif muri.

$ sudo ufw allow 8080

Jekk trid li Tomcat jibda bil-boot tas-sistema, mexxi:

$ systemctl enable tomcat

Pass 5: Konfigurazzjoni ta' Apache Tomcat

Tomcat għandu app tal-maniġer tal-web li tiġi installata minn qabel. Sabiex nużawha, ikollna bżonn nissettjaw l-awtentikazzjoni fil-fajl tomcat-users.xml tagħna. Iftaħ u editja dak il-fajl bl-editur tat-test favorit tiegħek:

$ sudo vim /opt/tomcat/conf/tomcat-users.xml

Se nżidu utent li jkun jista' jaċċessa l-interfaces tal-maniġer u l-amministratur. Biex tikkonfigura utent bħal dan, bejn it-tags , żid il-linja li ġejja:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

Kun żgur li tibdel:

  • Username – mal-utent li tixtieq jawtentika.
  • Password – bil-password li tixtieq tuża għall-awtentikazzjoni.

Peress li b'mod awtomatiku l-aċċess għall-Maniġer u l-Maniġer tal-Ospitanti huwa ristrett, irridu jew inneħħu jew nibdlu dawn ir-restrizzjonijiet. Biex tagħmel bidliet bħal dawn tista' tagħbija l-fajls li ġejjin:

Għall-app tal-Maniġer:

$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

Għall-app tal-maniġer tal-Ospitanti:

$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

Ġewwa dawk il-fajls tista 'jew tikkummenta r-restrizzjoni IP jew tħalli l-indirizz IP pubbliku tiegħek hemmhekk. Għall-iskop ta' dan it-tutorja, ikkummentajt il-linja:

Biex tagħmel it-tibdiliet tagħna ħajjin, erġa' tagħbija s-servizz tat-tomcat bi:

$ sudo systemctl restart tomcat 


Issa tista' tittestja l-app tal-maniġer billi taċċessa http://ipaddress:8080/manager/. Meta tintalab għal username u password, uża dawk li kkonfigurajt qabel. L-interface li għandek tara wara tidher bħal din:

Biex taċċessa l-maniġer tal-Ospitanti, tista’ tuża http://ip-address:8080/host-manager/.

Bl-użu tal-maniġer tal-host virtwali, tista' toħloq hosts virtwali għall-applikazzjonijiet Tomcat tiegħek.

Pass 6: Ittestja Apache Tomcat Billi Oħloq Fajl tat-Test

Tista 'tiċċekkja jekk kollox hux qed jaħdem bla xkiel, billi toħloq fajl tat-test ġewwa d-direttorju /opt/tomcat/webapps/ROOT/.

Ejja noħolqu fajl bħal dan:

$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

Ġewwa dak il-fajl waħħal il-kodiċi li ġej:

<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>

Issejvja l-fajl u ssettja s-sjieda kif muri.

$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

Issa tagħbija dak il-fajl fil-browser tiegħek billi tuża http://ip-address:8080/tecmint.jsp.

Dak hu! Int lestejt is-setup tas-server Apache Tomcat tiegħek u ħadt l-ewwel kodiċi Java tiegħek. Nittamaw li l-proċess kien faċli u sempliċi għalik. Jekk tiffaċċja xi kwistjonijiet, taqsam il-problemi tiegħek permezz tal-formola tal-kumment hawn taħt.