Jinsi ya kufunga Apache Tomcat katika Ubuntu


Ikiwa ungependa kuendesha kurasa za wavuti zinazojumuisha usimbaji wa ukurasa wa seva ya Java au seva za Java, unaweza kutumia Apache Tomcat. Ni seva ya tovuti ya chanzo huria na kontena ya servlet, iliyotolewa na Apache Software Foundation.

Tomcat inaweza kutumika kama bidhaa inayojitegemea, na seva yake ya wavuti au inaweza kuunganishwa na seva zingine za wavuti kama vile Apache au IIS. Toleo la hivi karibuni la Tomcat ni 9.0.14 na linajengwa juu ya Tomcat 8 na 8.5 na kutekeleza Servlet 4.0, JSP 2.2.

Maboresho yafuatayo yamefanywa katika toleo jipya:

  • Usaidizi umeongezwa kwa HTTP/2.
  • Usaidizi ulioongezwa wa kutumia OpenSSL kwa usaidizi wa TLS kwa viunganishi vya JSSE.
  • Usaidizi umeongezwa kwa wapangishi pepe wa TLS (SNI).

Katika somo hili tutakuonyesha jinsi ya kusakinisha Apache Tomcat 9 katika Ubuntu 18.10 na toleo la zamani la Ubuntu.

Hatua ya 1: Kusakinisha Java

Ili kuendesha programu za wavuti za Java, Tomcat inahitaji Java kusakinishwa kwenye seva. Ili kukidhi mahitaji hayo, tutasakinisha OpenJDK kama inavyoonyeshwa.

$ sudo apt update
$ sudo apt install default-jdk

Hatua ya 2: Kuunda Mtumiaji wa Tomcat

Kwa sababu za usalama, Tomcat inapaswa kuendeshwa na mtumiaji asiye na upendeleo yaani non root. Ndio maana tutaunda mtumiaji na kikundi tomcat ambayo itaendesha huduma. Anza kwa kuunda kikundi cha tomcat:

$ sudo groupadd tomcat

Ifuatayo tutaunda mtumiaji wa tomcat, ambaye atakuwa mwanachama wa kikundi cha tomcat. Eneo la nyumbani la mtumiaji huyu litakuwa /opt/tomcat kwani hapa ndipo tutasakinisha Tomcat. Gamba limewekwa kwa /bin/false:

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

Sasa tuko tayari kuendelea na hatua inayofuata na kupakua Tomcat.

Hatua ya 3: Kusakinisha Apache Tomcat

Ili kupakua kifurushi kipya kinachopatikana, nenda kwenye ukurasa wa upakuaji wa Tomcat na unyakue toleo jipya zaidi.

Wakati wa kuandika mafunzo haya, toleo la hivi punde la Tomcat ni 9.0.14. Ili kupakua toleo hilo, badilisha saraka yako ya sasa kuwa kitu kingine. Kwa mfano unaweza kutumia /tmp:

# cd /tmp

Na kisha kutumia wget amri kupakua kumbukumbu ya 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

Ikiwa unataka kuthibitisha jumla ya sha512 ya faili unaweza kuendesha:

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

Thamani inayotokana (heshi) kwa faili zote mbili inapaswa kuwa sawa.

Kama ilivyotajwa hapo awali, tutasakinisha Tomcat ndani /opt/tomcat. Tutalazimika kuunda saraka hiyo:

$ sudo mkdir /opt/tomcat

Na sasa tunaweza kutoa kifurushi kilichopakuliwa kwenye saraka hiyo mpya:

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

Sasa nenda kwa /opt/tomcat kutoka ambapo tutasasisha umiliki na ruhusa za folda:

# cd /opt/tomcat

Na weka mmiliki wa kikundi cha /opt/tomcat tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

Tutasasisha tena ufikiaji wa kusoma wa kikundi cha tomcat juu ya saraka ya conf na kuweka ruhusa za kutekeleza kwenye saraka:

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

Ifuatayo tutamfanya mtumiaji wa tomcat kuwa mmiliki wa saraka za programu za wavuti, kazi, temp na kumbukumbu:

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

Sasa ruhusa na umiliki ufaao umewekwa na tuko tayari kuunda faili ya kuanzia ya mfumo, ambayo itatusaidia kudhibiti mchakato wa Tomcat.

Hatua ya 4: Kuunda Faili ya Huduma ya SystemD ya Tomcat

Kwa sababu tunataka kuendesha Tomcat kama huduma, tutahitaji kuwa na faili ambayo itatusaidia kudhibiti mchakato kwa urahisi. Kwa kusudi hilo tutaunda faili ya huduma ya mfumo. Tomcat italazimika kujua ni wapi Java iko kwenye mfumo wako.

Ili kupata eneo hilo tumia amri ifuatayo:

$ sudo update-java-alternatives -l

Matokeo ya amri hiyo itakuonyesha eneo la JAVA_HOME.

Sasa, kwa kutumia maelezo hayo tuko tayari kuunda faili yetu ya huduma ya Tomcat.

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

Bandika msimbo hapa chini kwenye faili:

[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

Hakikisha umeweka JAVA_HOME na ile ya mfumo wako. Unapokuwa tayari, hifadhi faili na uifunge. Sasa, kwa kutumia amri iliyo hapa chini, pakia upya daemon ya systemd ili iweze kupata faili yetu mpya ya huduma:

$ sudo systemctl daemon-reload

Kisha anza huduma ya Tomcat:

$ sudo systemctl start tomcat

Unaweza kuthibitisha hali ya huduma kwa:

$ sudo systemctl status tomcat

Sasa unaweza kujaribu Tomcat katika kivinjari chako kwa kutumia anwani ya IP ya mfumo wako ikifuatiwa na mlango chaguomsingi wa huduma 8080.

http://ip-address:8080

Matokeo unapaswa kuona kuwa sawa na ile iliyoonyeshwa kwenye picha hapa chini:

Iwapo hauoni matokeo yaliyo hapo juu, unaweza kuhitaji kuruhusu bandari 8080 kwenye ngome yako kama inavyoonyeshwa.

$ sudo ufw allow 8080

Ikiwa unataka Tomcat kuanza kwenye buti ya mfumo, endesha:

$ systemctl enable tomcat

Hatua ya 5: Kusanidi Apache Tomcat

Tomcat ina programu ya kidhibiti wavuti ambayo huja ikiwa imesakinishwa awali. Ili kuitumia, tutahitaji kusanidi uthibitishaji ndani ya faili yetu ya tomcat-users.xml. Fungua na uhariri faili hiyo na kihariri chako cha maandishi unachopenda:

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

Tutaongeza mtumiaji ambaye ataweza kufikia violesura vya msimamizi na msimamizi. Ili kusanidi mtumiaji kama huyo, kati ya lebo za , ongeza laini ifuatayo:

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

Hakikisha kubadilisha:

  • Jina la mtumiaji - pamoja na mtumiaji unayetaka kumthibitisha.
  • Nenosiri - lenye nenosiri unalotaka kutumia kwa uthibitishaji.

Kwa kuwa kwa chaguomsingi ufikiaji wa Kidhibiti na Kisimamizi cha Seneta umewekewa vikwazo, tutataka ama kuondoa au kubadilisha vikwazo hivi. Ili kufanya mabadiliko kama haya unaweza kupakia faili zifuatazo:

Kwa programu ya Meneja:

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

Kwa programu ya meneja wa mwenyeji:

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

Ndani ya faili hizo unaweza kutoa maoni kuhusu kizuizi cha IP au kuruhusu anwani yako ya IP ya umma hapo. Kwa madhumuni ya mafunzo haya, nimetoa maoni kwenye mstari:

Ili kufanya mabadiliko yetu yawe moja kwa moja, pakia upya huduma ya tomcat na:

$ sudo systemctl restart tomcat 


Sasa unaweza kujaribu programu ya kidhibiti kwa kufikia http://ipaddress:8080/manager/. Unapoulizwa jina la mtumiaji na nenosiri, tumia zile ambazo umesanidi hapo awali. Kiolesura unachopaswa kuona baada ya hapo kinaonekana kama hii:

Ili kufikia kidhibiti cha Seva, unaweza kutumia http://ip-address:8080/host-manager/.

Kwa kutumia kidhibiti cha seva pangishi, unaweza kuunda wapangishi pepe wa programu zako za Tomcat.

Hatua ya 6: Kujaribu Apache Tomcat Kwa Kuunda Faili ya Mtihani

Unaweza kuangalia ikiwa kila kitu kinafanya kazi vizuri, kwa kuunda faili ya majaribio ndani ya /opt/tomcat/webapps/ROOT/ saraka.

Wacha tuunda faili kama hiyo:

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

Ndani ya faili hiyo bandika nambari ifuatayo:

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

Hifadhi faili na uweke umiliki kama inavyoonyeshwa.

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

Sasa pakia faili hiyo kwenye kivinjari chako kwa kutumia http://ip-address:8080/tecmint.jsp.

Ni hayo tu! Umekamilisha usanidi wa seva yako ya Apache Tomcat na uliendesha msimbo wako wa kwanza wa Java. Tunatumahi kuwa mchakato ulikuwa rahisi na wa moja kwa moja kwako. Ikiwa unakabiliwa na maswala yoyote, shiriki shida zako kupitia fomu ya maoni hapa chini.