Apache Tomcatは、Javaサーブレット、JavaServer Pages、Java式言語、およびJavaWebSocketテクノロジーのオープンソース実装です。これは、今日世界で最も広く採用されているアプリケーションおよびWebサーバーの1つです。 Tomcatは使いやすく、アドオンの堅牢なエコシステムを備えています。
このチュートリアルでは、Ubuntu18.04にTomcat8.5をインストールする方法を示します。同じ手順がUbuntu16.04と、LinuxMintやElementaryOSを含むUbuntuベースのディストリビューションにも当てはまります。
前提条件#
このチュートリアルを続行する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。
OpenJDKのインストール#
Javaプラットフォームのオープンソース実装であるOpenJDKは、Ubuntu18.04のデフォルトのJava開発およびランタイムです。
OpenJDKpackageのインストールは非常に簡単です:
sudo apt install default-jdk
ホームディレクトリ/opt/tomcat
を使用して新しいシステムユーザーとグループを作成します Tomcatサービスを実行します:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
wget
を使用します およびunzip
Tomcatアーカイブをダウンロードして抽出します。 unzip
がない場合 およびwget
システムにインストールされている次のパッケージをインストールします:
sudo apt install unzip wget
TomcatダウンロードページからTomcat8.5.xの最新バージョンをダウンロードします。執筆時点では、最新バージョンは8.5.37です。次の手順に進む前に、ダウンロードページで新しいバージョンを確認する必要があります。
/tmp
に変更します ディレクトリを作成し、次のwgetコマンドを使用してzipファイルをダウンロードします。
cd /tmp
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip
ダウンロードが完了したら、ファイルを解凍して/opt/tomcat
に移動します ディレクトリ:
unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/
バージョンと更新をより細かく制御するために、シンボリックリンクlatest
を作成します これはTomcatインストールディレクトリを指します:
sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest
後でTomcatのインストールをアップグレードする場合は、新しいバージョンを解凍し、シンボリックリンクを変更して最新バージョンを指すようにするだけです。
以前に設定したtomcatユーザーはtomcatディレクトリにアクセスできる必要があるため、ディレクトリの所有権をユーザーとグループのtomcatに変更します。
sudo chown -R tomcat: /opt/tomcat
bin
内にスクリプトを作成します 次のchmod
を実行して実行可能なディレクトリ コマンド:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
systemdユニットファイルを作成します#
Tomcatをサービスとして実行するには、新しいtomcat.service
を作成します。 /etc/systemd/system/
内のユニットファイル 次の内容のディレクトリ:
[Unit]
Description=Tomcat 8.5 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
新しいユニットファイルを作成したことをsystemdに通知し、次を実行してTomcatサービスを開始します。
sudo systemctl daemon-reload
sudo systemctl start tomcat
次のコマンドでサービスステータスを確認できます:
sudo systemctl status tomcat
● tomcat.service - Tomcat 8.5 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-05 11:04:40 UTC; 5s ago
Process: 13478 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 13499 (java)
Tasks: 45 (limit: 507)
CGroup: /system.slice/tomcat.service
└─13499 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.
エラーがない場合は、起動時にTomcatサービスを自動的に開始できるようにすることができます。
sudo systemctl enable tomcat
サーバーがファイアウォールで保護されていて、ローカルネットワークの外部からTomcatインターフェースにアクセスする場合は、ポート8080
を開く必要があります。 。
ポート8080
でのトラフィックを許可するには 次のコマンドを入力します:
sudo ufw allow 8080/tcp
実稼働環境でTomcatアプリケーションを実行する場合、ロードバランサーまたはリバースプロキシを使用する可能性が高く、ポート8080へのアクセスを内部ネットワークのみに制限することをお勧めします。 UbuntuサーバーにTomcatがインストールされたので、次のステップは、Web管理インターフェイスにアクセスできるユーザーを作成することです。
Tomcatユーザーとその役割は、tomcat-users.xml
で定義されています。 ファイル。
ファイルを開くと、ファイルの構成方法を説明するコメントと例がファイルに入力されていることがわかります。
sudo vim /opt/tomcat/latest/conf/tomcat-users.xml
Tomcat Webインターフェース(manager-guiおよびadmin-gui)にアクセスできる新しいユーザーを追加するには、tomcat-users.xml
でユーザーを定義する必要があります。 以下に示すようにファイル。ユーザー名とパスワードをより安全なものに変更してください:
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
デフォルトでは、Tomcat Web管理インターフェイスはローカルホストからのアクセスのみを許可するように構成されています。リモートIPから、またはセキュリティ上のリスクがあるため推奨されない場所からWebインターフェイスにアクセスできるようにする場合は、次のファイルを開くことができます。次の変更を加えます。
どこからでもWebインターフェイスにアクセスする必要がある場合は、次のファイルを開いてコメントするか、黄色で強調表示されている行を削除してください。
/opt/tomcat/latest/webapps/manager/META-INF/context.xml<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml <Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
特定のIPからのみWebインターフェースにアクセスする必要がある場合は、ブロックにコメントを付ける代わりに、パブリックIPをリストに追加します。パブリックIPが32.32.32.32
であるとします。 そのIPからのアクセスのみを許可したい場合:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|32.32.32.32" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml <Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|32.32.32.32" />
</Context>
許可されるIPアドレスのリストは、縦棒|
で区切られたリストです。 。単一のIPアドレスを追加することも、正規表現を使用することもできます。
変更を有効にするには、Tomcatサービスを再起動します。
sudo systemctl restart tomcat
ブラウザを開き、次のように入力します:http://<your_domain_or_IP_address>:8080
インストールが成功すると、次のような画面が表示されます。
Tomcat Webアプリケーションマネージャーダッシュボードは、http://<your_domain_or_IP_address>:8080/manager/html
で入手できます。 。ここから、アプリケーションをデプロイ、アンデプロイ、開始、停止、およびリロードできます。
Tomcat仮想ホストマネージャーダッシュボードは、http://<your_domain_or_IP_address>:8080/host-manager/html
で入手できます。 。ここから、Tomcat仮想ホストを作成、削除、および管理できます。