Linux (CentOS7) に Tomcat をインストールし、Tomcat をスタートアップ項目として設定します (tomcat8 を例に挙げます)

Linux (CentOS7) に Tomcat をインストールし、Tomcat をスタートアップ項目として設定します (tomcat8 を例に挙げます)

Tomcatをインストールする

Tomcat 圧縮パッケージをダウンロード

Tomcat には Tomcat7、Tomcat8、Tomcat9 のバージョンがあります。現在、企業では Tomcat8 の方が一般的に使用されているため、ここでは Tomcat8 を記載します。

Tomcat8 のダウンロード Web サイトにアクセスします: Tomcat8 のダウンロード Web サイト https://tomcat.apache.org/download-80.cgi

左側の「ダウンロード」の下にある対応するバージョンをクリックします。ここでは、Linux 環境用の圧縮パッケージである apache-tomcat-8.5.47.tar.gz をダウンロードしました。

Tomcatには3つの主なインストールバージョンがあります

  • tar.gz: Linux 環境の圧縮パッケージ。インストールは不要
  • Windows.zip: Windows の圧縮パッケージ。インストールは不要で、解凍して使用するだけです。同時に、コンピュータが 64 ビット システムか 32 ビット システムかに応じて、対応する圧縮パッケージをダウンロードするように注意してください。
  • Windows サービス インストーラー: Windows の 32 ビット版と 64 ビット版の両方に適用可能な Windows インストール パッケージ

Tomcatをインストールする

ダウンロードしたapache-tomcat-8.5.47.tar.gz指定されたディレクトリに置きます。次の図に示すように/usr/local/tomcatに置きます。

/usr/local/tomcatディレクトリに入り、Tomcatの圧縮パッケージを解凍します。

# /usr/local/tomcat ディレクトリに入る cd /usr/local/tomcat
# Tomcat の圧縮パッケージを解凍します tar -zxvf apache-tomcat-8.5.47.tar.gz

Tomcatを起動する

Tomcatのbinディレクトリに入り、Tomcatを起動します。

# Tomcatのbinディレクトリに入り、Tomcatを起動します
cd apache-tomcat-8.5.47/bin/
# Tomcatを起動する
./スタートアップ.sh

Tomcatが正常に起動したかどうかを確認します

# Tomcatが正常に起動したかどうかを確認します。ps -ef | grep tomcatを実行します。
#如果输出如下、说明トムカット安装成功ルート2381 1 11 22:18 PTS/0 00:02/usr/local/jdk1.8.0_152/bin/java -djava.util.logging.config.file =/usr/usr/tomcat ging.manager = org.apache.juli.classloaderlogmanager -djdk.tls.ephemeraldhkeysize = 2048 -djava.protocol.handler.pkgs = org.catalina.webresources -dorg.apache.catarina.catarina.security.security.sededededededededededededededer. IRS = -CLASSPATH /USR/LOCAL/TOMCAT/APACHE-TOMCAT-8.5.47/BIN/BOOTSTRAP.jar:/usr/local/tomcat/apache-tomcat-8.5.47/bin/tomcat-juli.jar -dcatalina.base home =/usr/local/tomcat/apache-tomcat-8.5.47 -djava.io.tmpdir =/usr/local/tomcat/apache-tomcat-8.5.47/temp org.apache.catalina.startup.bootstrap Start
ルート 2513 29060 0 22:18 pts/0 00:00:00 grep --color=auto tomcat

ブラウザを使用してTomcatにアクセスします。アドレスはLinux ip:8080、ここでのIPポートはhttp://47.106.106.158:8080/です。次の図に示すように、TomcatはLinux(CentOS7)環境で正常にインストールされ、起動されています。

注意: ポート8080を開くか、ファイアウォールを閉じてください

追加: ポート 8080 を開くか、ファイアウォールを閉じます。Alibaba Cloud の場合は、Alibaba Cloud コンソールでのみ開いているポートを設定できます。

# ポート 8080 を開く ファイアウォール コマンド --zone=public --add-port=8080/tcp --permanent
# ポート番号 8080 が有効になっているかどうかを確認します。firewall-cmd --query-port=8080/tcp
# ファイアウォールを再起動します。firewall-cmd --reload
# 開いているポートのリストを表示するfirewall-cmd --list-port
# コマンドの意味 --zone # 範囲 --add-port=8080/tcp # ポートを追加、形式: ポート/通信プロトコル --permanent # 永続的な効果。このパラメータを指定しないと、再起動後に無効になります # ファイアウォールを停止 systemctl stop firewalld.service # ファイアウォールを停止
systemctl enablefirewalld.service #ファイアウォールの起動を無効にする

Tomcatをスタートアップ項目として設定する

上記の方法でTomcatを起動します。仮想マシンまたはサーバーがシャットダウンされた場合、サーバーの再起動後にTomcatもシャットダウンされます。ただし、仮想マシンまたはサーバーの再起動後にTomcatが自動的に起動できるようにするために、Tomcatをスタートアップ項目として設定する必要があります。

setenv.shファイルを作成し、Tomcatの起動パラメータを追加します。

catalina.sh が実行されると、同じパスにある setenv.sh が呼び出され、追加の環境変数が設定されます。そのため、次の内容を含む setenv.sh ファイルを /usr/local/tomcat/apache-tomcat-8.5.47/bin パスに作成します。

# Tomcat の PID ファイルを設定します CATALINA_PID="$CATALINA_BASE/tomcat.pid"
# JVM オプションを追加します JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

/usr/local/tomcat/apache-tomcat-8.5.47/bin/catalina.shファイルの先頭にJAVA_HOMEとJRE_HOMEを追加します。ここで、/usr/local/jdk1.8.0_152はjdkのインストールディレクトリです。

JAVA_HOME=/usr/local/jdk1.8.0_152 をエクスポートします。
エクスポート JRE_HOME=/usr/local/jdk1.8.0_152/jre

catalina.shでJAVA_HOMEとJRE_HOMEが設定されていない場合、次のエラーが報告されます。

[root@JourWon ~]# systemctl ステータス tomcat
● tomcat.service - Tomcat
 ロード済み: ロード済み (/usr/lib/systemd/system/tomcat.service; 有効; ベンダープリセット: 無効)
 アクティブ: 失敗 (結果: 終了コード) 2019-10-21 月曜日 19:54:54 CST 以降; 6 秒前
 プロセス: 8746 ExecStart=/usr/local/tomcat/apache-tomcat-8.5.47/bin/startup.sh (コード=終了、ステータス=1/FAILURE)

10月21日 19:54:54 JourWon systemd[1]: Tomcatを起動しています...
10月21日 19:54:54 JourWon startup.sh[8746]: JAVA_HOMEもJRE_も...d
10月21日 19:54:54 JourWon startup.sh[8746]: これらの環境の少なくとも1つ...m
10月21日 19:54:54 JourWon systemd[1]: tomcat.service: 制御プロセスが終了しました、...=1
10月21日 19:54:54 JourWon systemd[1]: Tomcatの起動に失敗しました。
10月21日 19:54:54 JourWon systemd[1]: ユニットtomcat.serviceが失敗状態になりました。
10月21日 19:54:54 JourWon systemd[1]: tomcat.serviceが失敗しました。
ヒント: 一部の行は省略されています。完全な行を表示するには -l を使用してください。

次の内容を含む tomcat.service ファイルを /usr/lib/systemd/system パスに追加します。

[ユニット]
説明=Tomcat
後=network.target remote-fs.target nss-lookup.target
[サービス]
タイプ=フォーク
タイムアウト秒数=0
PIDファイル=/usr/local/tomcat/apache-tomcat-8.5.47/tomcat.pid
ExecStart=/usr/local/tomcat/apache-tomcat-8.5.47/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
プライベートTmp=true
[インストール]
WantedBy=マルチユーザー.ターゲット

さらに、サービス ファイルが変更された後は、sy stemctl daemon-reloadコマンドを呼び出して再ロードする必要があります。

TimeoutSec=0 を設定する目的は、起動時にシステムが Tomcat の起動タイムアウトを処理しないようにし、時間がかかりすぎても Tomcat が終了しないようにすることです。設定されていない場合、次の状況が発生する可能性があります。

10月21日 20:26:37 JourWon startup.sh[1634]: 起動中に既存のPIDファイルが見つかりました。
10月21日 20:26:37 JourWon startup.sh[1634]: 古いPIDファイルを削除/クリアしています。
10月21日 20:26:37 JourWon startup.sh[1634]: Tomcatが起動しました。
10月21日 20:26:37 JourWon systemd[1]: 起動後、PIDファイル/usr/local/tomcat/apache-tomcat-8.5.47/tomcat.pidが(まだ?)読み取り不可です。
10月21日 20:26:38 JourWon polkitd[464]: unix-process:1628:19013の認証エージェントが登録されていません(システムバス名:1.23、オブジェクトパス/org/freedesktop/PolicyKit1/AuthenticationAgent、ローカル
10月21日 20:28:07 JourWon systemd[1]: tomcat.serviceの開始操作がタイムアウトしました。終了します。
10月21日 20:28:07 JourWon systemd[1]: Tomcatの起動に失敗しました。

スタートアッププログラムにTomcatを追加する

systemctl enable tomcat.service

サーバーを再起動します

reboot

再接続後、サービスステータスを確認してください

[root@JourWon ~]# systemctl ステータス tomcat
● tomcat.service - Tomcat
 ロード済み: ロード済み (/usr/lib/systemd/system/tomcat.service; 有効; ベンダープリセット: 無効)
 アクティブ: 2019-10-21 月曜日 20:12:19 CST からアクティブ化 (開始)、8 秒前
 プロセス: 9244 ExecStart=/usr/local/tomcat/apache-tomcat-8.5.47/bin/startup.sh (コード=終了、ステータス=0/成功)
 Cグループ: /system.slice/tomcat.service
   └─9255 /usr/local/jdk1.8.0_152/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-8.5.47/conf/logging.properties -Djava.util.logging.manager=org.apac...

10月21日 20:12:19 JourWon systemd[1]: Tomcatを起動しています...
10月21日 20:12:19 JourWon startup.sh[9244]: 起動中に既存のPIDファイルが見つかりました。
10月21日 20:12:19 JourWon startup.sh[9244]: 古いPIDファイルを削除/クリアしています。
10月21日 20:12:19 JourWon startup.sh[9244]: Tomcatが起動しました。
10月21日 20:12:19 JourWon systemd[1]: 起動後、PIDファイル/usr/local/tomcat/apache-tomcat-8.5.47/tomcat.pidが(まだ?)読み取り不可です。

スタートアップリストコマンドを表示する

systemctl list-unit-files | grep enabled

Tomcat がスタートアップ項目として設定されているかどうかを確認します。有効と表示されていれば、設定は成功しています。

パラメータの説明

  • 静的: サービスが他のサービスと関連付けられており、サービスの起動ステータスを個別に設定できないことを示します。
  • 無効: 起動が禁止されていることを示します
  • 有効: システムの起動が許可されていることを示します
[root@JourWon ~]# systemctl list-unit-files | grep tomcat
tomcat.service が有効

要約する

以上が、Linux (CentOS7) に Tomcat をインストールし、Tomcat をスタートアップ項目として設定する方法についてご紹介しました (tomcat8 を例に挙げます)。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Alibaba Cloud Server Linux システムは Tomcat を構築して Web プロジェクトを展開します
  • Linux クラウド サーバーに JDK と Tomcat をインストールするための詳細な手順 (推奨)
  • Alibaba Cloud Server に Tomcat をインストールして設定し、外部ネットワーク アクセス ポートを追加するチュートリアル
  • Linux CentOS での Tomcat9 のインストールと Web プロジェクトの展開
  • CentOS 6はスクリプトを起動するためにtomcat8を設定します
  • Centos8.2 クラウド サーバー環境に Tomcat8.5 をインストールするための詳細なチュートリアル

<<:  MySQLに絵文字表現を保存する詳細な手順

>>:  電子署名を実装するWeChatミニプログラム

推薦する

Mysql で自動増分主キー ID を更新するときに問題が発生しました

目次自動インクリメント ID を更新する理由は何ですか?質問解決方法これは私が知っている問題ですが、...

MySQL の結合クエリとサブクエリの問題

目次複数テーブル結合の基本構文クロス結合と直積現象クロスコネクトデカルト積現象内部結合外部結合左外部...

数十行のjsを使用してクールなキャンバスインタラクティブ効果を実現する方法を教えます

目次1. 円を描く2. マウスで動かした円3. マウスでドラッグした粒子4. カラーグラデーション粒...

HTML テーブルタグチュートリアル (12): 境界線スタイル属性 FRAME

FRAME プロパティを使用して、表の境界線のスタイル タイプを制御します。基本的な構文<T...

Linux サーバーが処理できる接続数をご存知ですか?

序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...

axiosのシンプルなカプセル化と使用例コード

序文最近、プロジェクトを構築しているときに、リクエストのカプセル化について考え、どのようにカプセル化...

非常に便利な CSS 開発ツール 8 つを紹介

CSS3 パターン ギャラリーこの CSS3 パターン ライブラリには、純粋な CSS3 を使用して...

Reactのref属性を深く理解する方法

目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...

Linux で複数のファイルの名前を一括で変更する方法

Linux では、通常、ファイルの名前を変更するために mv コマンドを使用します。これは、単一のフ...

Zabbix を使用して ogg プロセスを監視する (Windows プラットフォーム)

この記事では、Windows プラットフォームで ogg プログラムを監視する方法を紹介します。 (...

MySQL 接続クエリを本当に学びましたか?

1. 内部結合クエリの概要内部結合は、アプリケーションで非常に一般的な結合操作であり、通常はデフォ...

JavaScript におけるイベント委譲メカニズムと深いコピーと浅いコピーの簡単な分析

目次1. イベントの委任イベントバブリングイベントキャプチャイベントの泡立ちの昇華考える2. 深いコ...

HTML ページ ヘッダー コード例の詳細な説明

知識ポイント1: ヘッダー情報にWebページのベースURLを設定するベース URL の本質は、ハイパ...

...