Apache Tomcat je bezplatný a opensource webový server, který je široce používán pro hostování webových aplikací napsaných v programovacím jazyce Java. Jedná se o implementaci Jakarta Servlet a Jakarta Expression Language (dříve Java Servlet a Java Expression Language) a dalších technologií Java websocket.
Apache Tomcat není přesně webový server ve smyslu Apache nebo Nginx. Je to aplikační server, který poskytuje čistý Java HTTP ekosystém a logiku založenou na Java pro obsluhu kódu Java.
V této příručce se naučíme, jak nainstalovat Apache Tomcat na Debian 11 (Bullseye) krok za krokem.
Krok 1) Nainstalujte OpenJDK
Protože je Tomcat postaven na Javě, prvním krokem bude instalace Javy, kterou poskytne OpenJDK. Nainstalujeme OpenJDK 11, což je nejnovější vydání LTS.
Chcete-li nainstalovat OpenJDK 11, aktualizujte seznamy balíčků.
$ sudo apt update
Poté spusťte následující příkaz a nainstalujte OpenJDK 11.
$ sudo apt install openjdk-11-jdk -y
Pro potvrzení nainstalované verze Javy spusťte příkaz:
$ java -version
Krok 2) Stáhněte a nainstalujte Apache Tomcat
Když je instalace Java z cesty, naším dalším krokem je stažení a instalace Apache Tomcat. V době psaní této příručky je nejnovější verze Apache Tomcat v10.0.18.
Navštivte oficiální stránku pro stahování Apache Tomcat a stáhněte si nejnovější binární soubor nebo použijte příkaz wget následovně.
$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz
Dále vytvořte adresář v adresáři /opt.
$ sudo mkdir /opt/tomcat
Dále extrahujte binární soubor pomocí příkazu tar v cestě /opt/tomcat.
$ sudo tar -xvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Krok 3) Vytvořte nového uživatele a skupinu pro Tomcat
Obecně není dobrý nápad testovat webové aplikace pomocí uživatele root, protože uživatel může být snadno kompromitován útočníkem, což vede k narušení systému.
Vzhledem k tomu vytvoříme uživatele bez oprávnění root, který bude mít přístup do adresáře /opt/tomcat.
Vytvořte proto skupinu s názvem kocour.
$ sudo groupadd tomcat
Dále vytvořte uživatele kocourků a přidejte uživatele do skupiny kocourků s /opt/tomcat jako domovským adresářem.
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Krok 4) Nakonfigurujte uživatelská oprávnění
Nyní nastavíme následující vlastnictví a oprávnění k adresáři /opt/tomcat pomocí příkazů chown a chomd.
$ sudo chown -R tomcat: /opt/tomcat $ sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'
Krok 5) Vytvořte soubor systemd pro Apache Tomcat
Musíme zajistit, aby Apache Tomcat běžel na pozadí jako systémová služba, kterou lze spustit, zastavit a povolit. Ve výchozím nastavení Tomcat nepřichází se souborem systémové jednotky, a proto jej vytvoříme ručně následovně.
$ sudo vi /etc/systemd/system/tomcat.service
Vložte následující blok kódu, který definuje soubor služby systemd.
[Unit] Description=Tomcat webs servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat RestartSec=10 Restart=always Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64" Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom" Environment="CATALINA_BASE=/opt/tomcat" Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
Uložte změny a ukončete soubor. Poté znovu spusťte generátor systemd a znovu načtěte všechny soubory jednotek.
$ sudo systemctl daemon-reload
Chcete-li potvrdit výchozí cestu pro Java, spusťte příkaz
$ sudo update-java-alternatives -l
To se shoduje s cestou zadanou v souboru služby systemd, což znamená, že jsme na správné cestě.
Krok 6) Povolte a spusťte démona Tomcat
S nainstalovaným souborem systemd Tomcat spusťte démona Apache Tomcat a povolte jeho spuštění při startu systému.
$ sudo systemctl daemon-reload $ sudo systemctl start tomcat $ sudo systemctl enable tomcat
Poté ověřte, zda je spuštěn Apache Tomcat
$ systemctl status tomcat
Z výstupu můžeme vidět, že je spuštěn démon Tomcat, což znamená, že naše konfigurace je v pořádku.
Krok 7) Přidejte uživatele Tomcat Admin a nakonfigurujte role
Potřebujeme nakonfigurovat administrátora, aby měl na webové stránce Tomcatu přístup k sekcím „stav serveru“, „správce hostitele“ a „aplikace správce“. V opačném případě narazíme na chybu v prohlížeči.
Za tímto účelem upravíme konfigurační soubor uživatele Tomcat.
$ sudo vi /opt/tomcat/conf/tomcat-users.xml
Vložte následující řádky kódu těsně před značku . Neváhejte zadat své vlastní uživatelské jméno a heslo.
<role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="manager"/> <role rolename="manager-gui"/> <user username="linuxtechi" password="<enetr-password-here>" roles="admin,admin-gui,manager,manager-gui"/>
Uložte změny a zavřete konfigurační soubor.
Krok 8) Spravujte vzdálený přístup k Apache Tomcat
Ve výchozím nastavení máte přístup k webovému rozhraní Tomcatu pouze z hostitelského systému. Proto musíme nakonfigurovat vzdálený přístup k Tomcat Manager ruční úpravou konfiguračního souboru context.xml.
$ sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml
Přejděte dolů a okomentujte tyto řádky jednoduchým přidáním na konec.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Uložte soubor a ukončete. Dále musíme povolit vzdálený přístup do Host Manager. Upravte tedy soubor context.xml správce hostitele.
$ sudo vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
Opět zakomentujte následující blok textu přidáním na konec.
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
Uložte změny a ukončete konfigurační soubor. Chcete-li použít všechny provedené změny, restartujte Tomcat.
$ sudo systemctl restart tomcat
Krok 9) Přístup k Apache Tomcat
Tomcat je nyní plně nakonfigurován a lze k němu přistupovat vzdáleně. Zbývá ještě jeden krok. Pokud používáte firewall UFW, zvažte otevření portu 8080, což je výchozí port, na kterém Apache Tomcat naslouchá.
$ sudo ufw allow 8080 $ sudo ufw reload
Nakonec pro přístup k webovému rozhraní Tomcatu spusťte prohlížeč a přejděte na následující adresu.
http://server-ip-addres:8080 or http://youdomain.com:8080
Tím byste se měli dostat na výchozí domovskou stránku webového serveru Tomcat, jak je znázorněno.
Pro přístup na stránku „Stav serveru“ klikněte na „Stav serveru“. Zobrazí se vyskakovací okno s výzvou k zadání přihlašovacích údajů uživatele. Zadejte přihlašovací údaje správce uvedené v kroku 6 a klikněte na „Přihlásit se“.
Podobně budete vyzváni k zadání stejných přihlašovacích údajů při přístupu ke správci aplikací Tomcat, ke kterému lze přistupovat kliknutím na ‚Manager App‘ ve výchozím webovém rozhraní.
Kliknutím na „Správce hostitele“ se dostanete do sekce Virtual Host Manager, jak je znázorněno.
Závěr
A je to zábal. V této příručce jsme vás provedli instalací na webovém serveru Apache Tomcat na Debianu 11. Vše nejlepší při hostování vašich Java aplikací!