Ubuntu-da Apache Tomcat-y nädip gurmaly


Java serwer sahypasyny kodlamagy ýa-da Java hyzmatlaryny öz içine alýan web sahypalaryny işletmek isleseňiz, Apache Tomcat ulanyp bilersiňiz. Apache Software Foundation tarapyndan çykarylan açyk çeşme web serweri we servlet konteýner.

Tomcat, öz web serweri bilen özbaşdak önüm hökmünde ulanylyp bilner ýa-da Apache ýa-da IIS ýaly beýleki web serwerleri bilen birleşdirilip bilner. Tomcat-yň iň soňky wersiýasy 9.0.14 bolup, Tomcat 8 we 8.5-iň üstünde gurulýar we Servlet 4.0, JSP 2.2-i durmuşa geçirýär.

Täze wersiýada aşakdaky gowulaşmalar edildi:

  • HTTP/2. Goldaw goşuldy.
  • JSSE birikdirijileri bilen TLS goldawy üçin OpenSSL ulanmak üçin goldaw goşuldy.
  • TLS wirtual hostlary (SNI) üçin goldaw goşuldy.

Bu gollanmada size Ubuntu 18.10-da we Ubuntu-nyň köne wersiýasynda Apache Tomcat 9-y nädip gurmalydygyny görkezmekçi.

1-nji ädim: Java gurmak

Java web programmalaryny işletmek üçin Tomcat serwerde Java gurulmagyny talap edýär. Bu talaby kanagatlandyrmak üçin, görkezilişi ýaly OpenJDK gurarys.

$ sudo apt update
$ sudo apt install default-jdk

2-nji ädim: Tomcat ulanyjysyny döretmek

Howpsuzlyk sebäpli Tomcat artykmaç däl ulanyjy bilen işlemeli, ýagny kök däl. Şol sebäpli hyzmaty dolandyrjak ulanyjy we topar tomkat dörederis. Tomkat toparyny döretmekden başlaň:

$ sudo groupadd tomcat

Indiki tomcat toparynyň agzasy boljak tomcat ulanyjysyny dörederis. Bu ulanyjynyň öý ýerleşýän ýeri/opt/tomcat bolar, sebäbi Tomcat gurjak ýerimiz şu. Gabyk/bin/false:

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

Indi indiki ädimimizi dowam etdirmäge we Tomkaty göçürip almaga taýýar.

3-nji ädim: Apache Tomcat gurmak

Iň soňky elýeterli bukjany göçürip almak üçin Tomkatyň göçürip almak sahypasyna giriň we iň soňky wersiýasyny alyň.

Bu gollanmany ýazan wagtyňyz, Tomkatyň iň soňky wersiýasy 9.0.14. Şol wersiýany göçürip almak üçin häzirki katalogyňyzy başga bir zada üýtgediň. Mysal üçin/tmp ulanyp bilersiňiz:

# cd /tmp

Soň bolsa Tomcat arhiwini göçürip almak üçin wget buýrugyny ulanyp:

$ 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

Faýlyň sha512 jemini barlamak isleseňiz, işledip bilersiňiz:

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

Iki faýl üçin emele gelen baha (hash) birmeňzeş bolmaly.

Öň bellenip geçilişi ýaly, Tomcat/opt/tomcat-a gurnarys. Şol katalogy döretmeli bolarys:

$ sudo mkdir /opt/tomcat

Indi göçürilen bukjany şol täze katalogdan çykaryp bileris:

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

Indi bukjanyň eýeçiligini we rugsatlaryny täzelän ýerimizden/opt/tomcat-a geçiň:

# cd /opt/tomcat

Toparyň eýesini/opt/tomcat tomcat-a belläň:

$ sudo chgrp -R tomcat /opt/tomcat

Indiki tomcat toparynyň okalýan ygtyýaryny conf katalogynyň üsti bilen täzeläris we ýerine ýetiriş rugsatlaryny katalogda belläris:

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

Indiki web sahypasyny, iş, temp we gündelik kataloglarynyň tomkat ulanyjysyny ederis:

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

Indi degişli rugsatlar we eýeçilikler kesgitlendi we Tomcat amalyny dolandyrmaga kömek etjek systemd başlangyç faýly döretmäge taýýar.

4-nji ädim: Tomcat üçin SystemD hyzmat faýly döretmek

Tomkaty hyzmat hökmünde işletmek isleýänligimiz sebäpli, prosesi aňsatlyk bilen dolandyrmaga kömek etjek bir faýlymyz bolmaly. Şol maksat bilen systemd hyzmat faýly dörederis. Tomcat, ulgamyňyzda Java-nyň nirededigini bilmeli bolar.

Şol ýeri tapmak üçin aşakdaky buýrugy ulanyň:

$ sudo update-java-alternatives -l

Bu buýrugyň çykyşy size JAVA_HOME ýerleşişini görkezer.

Indi şol maglumatlary ulanyp, Tomcat hyzmat faýlymyzy döretmäge taýýar.

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

Aşakdaky kody faýla goýuň:

[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

JAVA_HOME ulgamyňyz bilen sazlaň. Taýar bolanyňyzda faýly ýazdyryň we ýapyň. Indi aşakdaky buýrugy ulanyp, täze hyzmat faýlymyzy tapyp biler ýaly systemd daemonyny täzeden ýükläň:

$ sudo systemctl daemon-reload

Soňra Tomcat hyzmatyna başlaň:

$ sudo systemctl start tomcat

Hyzmat ýagdaýyny şu aşakdakylar bilen barlap bilersiňiz:

$ sudo systemctl status tomcat

Indi Tomcat-y ulgamyňyzyň IP adresini ulanyp, hyzmatyň deslapky port 8080 ulanyp, brauzeriňizde synap bilersiňiz.

http://ip-address:8080

Görmeli netijäňiz aşakdaky suratda görkezilen netijä meňzeýär:

Aboveokardaky çykyşy görmeýän bolsaňyz, diwar diwaryňyzda görkezilişi ýaly 8080 porta rugsat bermeli bolmagyňyz mümkin.

$ sudo ufw allow 8080

Tomcat-yň ulgam ýüklemesinden başlamagyny isleseňiz, işlediň:

$ systemctl enable tomcat

5-nji ädim: Apache Tomkaty sazlamak

Tomcat-da öňünden gurlan web menejeri programmasy bar. Ony ulanmak üçin tomcat-users.xml faýlymyzda tassyklamany gurmaly bolarys. Halaýan tekst redaktoryňyz bilen şol faýly açyň we redaktirläň:

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

Dolandyryjy we administrator interfeýslerine girip biljek ulanyjy goşarys. Şeýle ulanyjyny düzmek üçin bellikleriniň arasynda aşakdaky setiri goşuň:

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

Üýtgetmegi unutmaň:

  • Ulanyjy ady - tassyklamak isleýän ulanyjy bilen.
  • Parol - tassyklamak üçin ulanmak isleýän parolyňyz bilen.

Host dolandyryjysyna we dolandyryjysyna deslapky giriş çäklendirilenligi sebäpli, bu çäklendirmeleri aýyrmak ýa-da üýtgetmek isleýäris. Şeýle üýtgeşmeler girizmek üçin aşakdaky faýllary ýükläp bilersiňiz:

Dolandyryjy programmasy üçin:

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

Host dolandyryjy programmasy üçin:

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

Şol faýllaryň içinde IP çäklendirmesini düşündirip bilersiňiz ýa-da köpçülige açyk IP adresiňize rugsat berip bilersiňiz. Bu gollanmanyň maksady üçin setiri teswirledim:

Üýtgeşmelerimizi janlandyrmak üçin tomcat hyzmatyny täzeden ýükläň:

$ sudo systemctl restart tomcat 


Indi http:// ipaddress: 8080/manager/girip, dolandyryjy programmasyny synap bilersiňiz. Ulanyjy ady we paroly soralanda, ozal düzenleriňizi ulanyň. Ondan soň görmeli interfeýs şeýle:

Host dolandyryjysyna girmek üçin http:// ip-address: 8080/host-manager/ulanyp bilersiňiz.

Wirtual host dolandyryjysyny ulanyp, Tomcat programmalaryňyz üçin wirtual hostlary döredip bilersiňiz.

6-njy ädim: Synag faýly döretmek arkaly Apache Tomkaty barlamak

/ Opt/tomcat/webapps/ROOT/katalogynyň içinde synag faýly döredip, hemme zadyň kadaly işleýändigini barlap bilersiňiz.

Geliň, şeýle faýly döredeliň:

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

Şol faýlyň içinde aşakdaky kody goýuň:

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

Faýly ýazdyryň we görkezilişi ýaly eýeçiligini düzüň.

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

Indi şol faýly http:// ip-address: 8080/tecmint.jsp ulanyp brauzeriňize ýükläň.

Bu! Apache Tomcat serweriňizi gurnamagy tamamladyňyz we ilkinji Java koduňyzy işlediňiz. Bu proses siziň üçin aňsat we gönümel boldy diýip umyt edýäris. Islendik mesele bilen ýüzbe-ýüz bolsaňyz, aşakdaky teswir formasy arkaly problemalaryňyzy paýlaşyň.