質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

2回答

7926閲覧

VPSサーバ上のTomcatにwarファイルをデプロイできない

taku_oshiba

総合スコア4

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

2クリップ

投稿2018/09/28 01:06

編集2018/09/29 21:53

Spring Boot で "Hello world" を表示するごく簡単なWebアプリ作成を行っております。完成品から war ファイルを作成し、ローカルの tomcat/webapps 下にコピー。すると問題なく展開・ブラウザでの表示が確認出来たのですが、公開用のさくらVPSサーバ上に同じ様に配置しても表示まで行き着けません。

[状況]

  • VPS 上でも war ファイルの自動展開は行われている
  • VPS 上の Tomcat に元から入っている /docs や、/examples 以下サンプル は正しく動作しますが、manager/html も開けない
  • war ファイルを使わずに個別に必要な箇所に必要なファイルを配置していったアプリに関しては正しく動いている
  • {IPアドレス}/{appName}/ にローカルでは :8080 でアクセス。VPS ではポート80でアクセス出来るよう処理済で :80 でアクセス
  • VPS の Tomcat フォルダ以下はすべて所有者 tomcat:{userName} で、パーミッションは 770
  • tomcat/conf/server.xml のオートデプロイ記述に関してはデフォルト(=true)であることを確認。
  • 表示できない = 全てブラウザ上で 404 が返ってきている
  • Tomcat ログファイル各種はエラーの様子は無さそうですが、アクセスに対する GET の通知は届いていない様
  • ローカルの Tomcat は Spring Boot 組み込みのものでは無く、単独起動したもので動作

[環境]

  • Spring Tool Suite の Legacy Project (Maven) で製作
  • Spring Tool Suite ver.3.9.6
  • Java(VPS) ver.open-jdk-1.8.0_181
  • Java(local) ver.open-jdk-1.8.0_181-1-redhat
  • Spring Boot ver.2.0.5
  • Tomcat(VPS・local共) ver.9.0.11
  • さくらVPS CentOS7
  • ブラウザ Google Chrome ver.69.0.3497.100
  • ローカル自機 Win7 64bit Professional

完全に行き詰まってしまい、ご助言いただければ幸いです。必要な情報あれば追記いたします、何卒よろしくお願いいたします。
※頂いたコメントの検証を元に加筆修正しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/28 10:53

webapps じゃないからじゃ?
taku_oshiba

2018/09/28 11:17

ご指摘ありがとうございます。webapp は全て私の誤植で、実際は webapps フォルダでした。現状を追記しましたので、もしお時間ありましたらご覧いただければ幸いです。
退会済みユーザー

退会済みユーザー

2018/09/28 11:24

logs 以下のログになにかでてないん?
taku_oshiba

2018/09/28 12:18

ありがとうございます、logs 以下中身 一式見てみました。表示に成功しているローカルのログと見比べてもエラーの類の記述はなさそうでしたが、アクセス時の GET の通知は届いていないようです。
guest

回答2

0

さくらVPSサーバについては見識がありませんので、一般的にtomcatにアプリケーションを配備する際の観点でお話しします。
webapp配下にモジュール(warファイル)を配置するとtomcatがモジュールを展開、配備されますが、モジュールを配置する前にモジュールの所有者を変更してみては如何でしょうか?
webapp以外の適当なフォルダに一旦モジュールを配置、chownコマンドにて所有者の変更を行えばよいと思います。
所有者変更に特別な権限が必要であれば、権限を有するユーザにsuコマンドでユーザ変更する必要があるかもです。(root権限があるユーザであれば問題ないと思いますが)

投稿2018/09/28 02:32

SE-studying-now

総合スコア351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taku_oshiba

2018/09/28 03:09

ご回答いただきありがとうございます。 早速以下の通り試してみました。 ・tomcatと関係ないフォルダにwarをアップロード ・その場で所有者を tomcat:{userName}に変更 ・その後 tomcat/webapp 下に移動 しかしやはり展開されたファイルは所有者が tomcat:tomcat、そして localhost/{appName} 以下は展開されませんでした...もし他に思い当たるところがあればご教授いただければ幸いです。操作はrootユーザで行っております。
SE-studying-now

2018/09/28 04:46

>VPS の Tomcat フォルダ以下はすべて所有者 tomcat:{userName} となっている ここを見逃していました。 Tomcat フォルダ以下の所有者を全てtomcat:tomcatに変更して、単純にtomcat/webapp下にwarを配置してみて下さい。 Tomcat フォルダ以下の許可設定が、恐らく所属グループは書き込み権限がないのだと思います。(多分許可設定は「-rw-r--r--」なのかと)
taku_oshiba

2018/09/28 07:42

ありがとうございます。 ・warファイルを一旦無い状態にして、tomcat 以下所有者を全て tomcat:tomcat に変更 ・念の為tomcat再起動 (1) warファイルを {userName}:{userName} のままwebapp以下に配置 (2) warファイルを tomcat:tomcat に変更してから配置 と手順を踏みましたがやはりアクセス出来ず…localhost/{appName} 以下も展開されていないようです。パーミッションは恐らく(※)770だったようです。 ちなみにファイル有無の確認は、root ユーザでコマンド ls -la にて確認していますがこの確認方法で漏れなどは無いでしょうか? ※大失敗をして確かな現状を確認できなくなってしまい…修復作業中です。
SE-studying-now

2018/09/28 08:27

権限の問題ではなかったのですね。。 Tomcatマネージャーの画面を確認してみて、状態を確認してみましょうか。 http://{ホスト}:8080/manager/html({ホスト}はご自身の環境に併せて下さい) マネージャーからのデプロイも可能なのでこちらも試してみましょう。 あと、オートデプロイの設定も気になりますね。 server.xmlのオートデプロイ設定が無効になっている場合はwebapp配下に配備しても自動で展開されません。 こちらを参照(http://tomcat.apache.org/tomcat-9.0-doc/deployer-howto.html) まさかですが、配備ディレクトリの設定がwebapp配下になっていないなんてことはないでしょうか、併せて確認下さい。
taku_oshiba

2018/09/28 11:31

ありがとうございます。まだ色々探っている最中ではありますが、 manager/html にもアクセスできない ことが判明いたしました…しかしフォルダ・ファイルは正しく存在しているようです。host-manager というのもデフォルトで入っていますがこちらも開かないようです。docsと、examples 以下全てのサンプルにはアクセス出来ています。 tomcat/conf/server.xml のオートデプロイに関する設定はネットの情報とも照らし合わせましたが、デフォルト=true で間違い無いようです。 配備ディレクトリの設定も合ってる筈です。webapps/{appName} 以下には正しく展開されているのです…works/Catalina/localhost/{appName} 以下にだけ展開される様子がありません。 随分以前に ポート80でアクセスできるように迂回するような修正記述を行ったので、tomcatのトップページ と サイトのトップページと同じURLになり、これにアクセスすると後者の html ページが表示されます。8080ポートも開いてあるのですがアクセスは拒否されます。 この設定に関する何かか、またはtomcatのインストール自体が怪しい可能性もあるのでしょうか…?度々恐縮ですが何卒よろしくお願いいたします。
taku_oshiba

2018/09/28 11:33

アクセスできない、は何れも 404 です。
taku_oshiba

2018/09/28 12:26

度々すみません。 works/Catalina/localhost/{appName} 以下のファイルは、最初のアクセスがあったときに生成されるものの様でした。なので、自動展開自体は正しくされているのではと思います。そのかわりアクセスは tomcat に届いていない(?)ということにもなります、ログにも GET の記録が残っていません。
guest

0

自己解決

解決しました…お騒がせいたしました。

VPS 上のポートリダイレクト :8080 → :80 の内部処理、httpd から tomcat に渡す対象のパスをその都度書かないとならないのでした…。/etc/httpd/conf.d/httpd-proxy.conf ファイルの記述です。

<Location /hoge> ProxyPass ajp://localhost:8009/hoge </Location>

ご回答頂いた皆様ありがとうございました。

投稿2018/09/30 13:23

taku_oshiba

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問