ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
前提
| 項目 | 値 |
|---|---|
| OS | CentOS 7 / 8 / Stream 9 / Rocky Linux 9 |
| Tomcat | 9.0.x (Servlet 4.0, javax) または 10.1.x (Servlet 5.0, jakarta) |
| Java | Tomcat 9 → Java 8/11/17、Tomcat 10 → Java 11/17/21 |
| ポート | HTTP 8080, Shutdown 8005, AJP 8009 |
手順 1: Java インストール
# CentOS 7
sudo yum install -y java-11-openjdk java-11-openjdk-devel
# CentOS 8 / Stream 9 / Rocky 9
sudo dnf install -y java-17-openjdk java-17-openjdk-devel
# 確認
java -version
# openjdk version "17.0.5" ...
# JAVA_HOME 設定
echo 'export JAVA_HOME=$(readlink -f $(which java) | sed "s:/bin/java::")' \
| sudo tee /etc/profile.d/java.sh
source /etc/profile.d/java.sh
echo $JAVA_HOME
手順 2: tomcat ユーザ作成
セキュリティのため専用ユーザで動かします。root で動かすと侵入時の被害が拡大します。
sudo groupadd --system tomcat
sudo useradd -d /opt/tomcat -r -s /sbin/nologin -g tomcat tomcat
手順 3: Tomcat ダウンロードと展開
# 公式から最新版 URL を取得(例: 9.0.83)
VERSION=9.0.83
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz
# 展開
sudo mkdir -p /opt/tomcat
sudo tar xzf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat --strip-components=1
# 所有権
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod -R g+r /opt/tomcat/conf
sudo chmod g+x /opt/tomcat/conf
sudo chmod +x /opt/tomcat/bin/*.sh
# 構成確認
ls /opt/tomcat/
# bin conf lib logs temp webapps work ...
手順 4: systemd unit ファイル
# /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre-17-openjdk
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:+UseG1GC'
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=on-failure
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now tomcat
sudo systemctl status tomcat
# ログ
sudo journalctl -u tomcat -f
tail -f /opt/tomcat/logs/catalina.out
手順 5: firewalld でポート開放
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
# ブラウザで http://:8080/ → Tomcat 既定ページ
手順 6: manager-gui の設定(任意)
WAR を Web UI から配備したい場合のみ。本番では基本無効推奨。
デフォルトでは localhost からしかアクセスできないので、外部 IP 許可するには:
sudo chown tomcat:tomcat /opt/tomcat/conf/tomcat-users.xml
sudo systemctl restart tomcat
手順 7: WAR デプロイ
# 単純コピー方式(自動展開)
sudo cp myapp.war /opt/tomcat/webapps/
sudo chown tomcat:tomcat /opt/tomcat/webapps/myapp.war
# 数秒待つと /opt/tomcat/webapps/myapp/ に展開される
# http://server:8080/myapp/ でアクセス可
# ROOT に置きたい場合
sudo cp myapp.war /opt/tomcat/webapps/ROOT.war
# 既存 ROOT/ を退避してから
本番構成: nginx リバプロ + HTTPS
# /etc/nginx/conf.d/app.conf
server {
listen 443 ssl http2;
server_name app.example.com;
ssl_certificate /etc/letsencrypt/live/app.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Tomcat 側は 8080 を localhost バインドに変更(外部直アクセス遮断):
FAQ
Q: yum で Tomcat 入れられないの?
A: EPEL に tomcat パッケージはありますが、バージョンが古い & 構成が独特なので tarball 展開を推奨します。
Q: Tomcat 9 と 10 どちらを選ぶ?
A: 既存アプリの依存が javax.servlet なら 9、jakarta.servlet(Spring Boot 3.x や Jakarta EE 9+)なら 10。
Q: 起動時に Address already in use: bind
A: 8005/8080/8009 のいずれかが使用中。ss -tlnp | grep -E ':(8005|8080|8009)' で特定。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?