ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
Tomcat 管理画面の種類
| 画面 | URL | 用途 |
|---|---|---|
| Manager App | /manager/html | Web アプリのデプロイ・停止・リロード |
| Manager Status | /manager/status | サーバ状態(メモリ・スレッド・コネクタ) |
| Host Manager | /host-manager/html | 仮想ホストの追加・削除 |
| Tomcat Documentation | /docs | ドキュメント |
| Tomcat Examples | /examples | サンプル Servlet/JSP |
初期状態でアクセスするとエラー
# http://localhost:8080/manager/html へアクセス
# → 401 Unauthorized
# または「403 Forbidden」「Access Denied」
# デフォルトではユーザが登録されていない
# tomcat-users.xml にユーザを追加する必要がある
ユーザ登録(tomcat-users.xml)
$CATALINA_HOME/conf/tomcat-users.xml を編集:
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!-- ロール定義 -->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<!-- ユーザ定義 -->
<user username="admin"
password="strong-password-here"
roles="manager-gui,manager-script,admin-gui,admin-script"/>
<!-- API 操作専用 (Maven プラグイン等で使用) -->
<user username="deploy"
password="another-password"
roles="manager-script"/>
</tomcat-users>
ロールの意味
| ロール | 権限 |
|---|---|
manager-gui | Manager App の HTML 画面でデプロイ・停止・リロード |
manager-script | Maven 等のスクリプトから API でデプロイ |
manager-jmx | JMX 経由のサーバ管理 |
manager-status | サーバ状態画面のみ閲覧可 |
admin-gui | Host Manager の HTML 画面 |
admin-script | Host Manager の API |
変更を反映
# Tomcat を再起動
$ $CATALINA_HOME/bin/shutdown.sh
$ $CATALINA_HOME/bin/startup.sh
# または systemd
$ sudo systemctl restart tomcat
リモートアクセスを許可する
デフォルトでは 127.0.0.1 からのみアクセス可。リモートから使いたい場合は許可リストを編集:
# Manager App の場合
# $CATALINA_HOME/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true">
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<!-- 元: allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" -->
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.1\.\d+" />
<Manager sessionAttributeValueClassNameFilter="..." />
</Context>
本番環境ではセキュリティ上、リモート許可は避け SSH トンネル経由で接続することを推奨:
# SSH ポートフォワード
$ ssh -L 8080:localhost:8080 user@tomcat-server
# ローカルブラウザで http://localhost:8080/manager/html
Manager App で出来ること
- アプリ一覧: デプロイ済みアプリの状態確認
- Start / Stop: 個別アプリの起動・停止(Tomcat 自体は止めない)
- Reload: アプリのクラスローダ再起動(コード変更反映)
- Undeploy: アプリ削除(webapps/ から削除)
- Deploy: WAR ファイル / フォルダ指定でデプロイ
- Sessions: アクティブセッション数表示
- Find leaks: メモリリークしているアプリ検出
- SSL Certificate Chain: SSL 証明書情報
API でデプロイ(CI/CD 連携)
# WAR をデプロイ (manager-script ロール必要)
$ curl --user deploy:password \
--upload-file myapp.war \
"http://localhost:8080/manager/text/deploy?path=/myapp&update=true"
# アプリのリロード
$ curl --user deploy:password \
"http://localhost:8080/manager/text/reload?path=/myapp"
# アンデプロイ
$ curl --user deploy:password \
"http://localhost:8080/manager/text/undeploy?path=/myapp"
# 状態確認
$ curl --user deploy:password \
"http://localhost:8080/manager/text/list"
Maven プラグインからデプロイ
<!-- pom.xml -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat</server>
<path>/myapp</path>
</configuration>
</plugin>
<!-- ~/.m2/settings.xml -->
<server>
<id>tomcat</id>
<username>deploy</username>
<password>password</password>
</server>
# デプロイコマンド
$ mvn tomcat7:deploy
$ mvn tomcat7:redeploy
$ mvn tomcat7:undeploy
セキュリティのベストプラクティス
- 強いパスワード: tomcat-users.xml は平文保存なので推測困難な値
- 本番では Manager App 無効化:
webapps/manager/を削除 or noindex - 許可 IP の限定:
RemoteAddrValveで社内 IP のみ - HTTPS 必須: 認証情報の盗聴防止
- SSH トンネル経由: リモートアクセスは VPN or SSH 経由のみ
- 監査ログ: アクセスログを定期チェック
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- APIキー取得方法 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?