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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Linux

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

VPS

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

Apache Tomcat

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

Q&A

解決済

1回答

715閲覧

CentOS7でJava環境を構築する際にproxyの転送が上手くできない

shaketonori

総合スコア22

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Linux

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

VPS

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

Apache Tomcat

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

0グッド

2クリップ

投稿2018/01/17 09:25

さくらインターネットのVPSでJavaの環境を構築しています。
これまでCentOS6.Xでは何回も行なっていますが、今回初めてCentOS7 で環境を作ろうとしたところ、TomcatとApacheの連携がうまくいかず、phpMyAdminの画面が開かない、という問題が出てしまいました。

インストールしているのは以下のソフトです。
1)CentOS 7
2)Apache2.4.6 標準repo
3)PHP 7.1 remi
4)MariaDB 5.5 標準repo
5)phpMyAdmin4.7.7 remi
6)OpenJDK1.8.0 標準repo
7)Tomcat8.5.24 バイナリ

上記ソフトをインストール/設定した後にSSLの設定をする予定ですので、今のところはSSLとは無関係です。

順番にインストールを行い、5)phpMyAdminをインストールを行ったところまでは特に問題はありませんでした。
5)が終わった時点でURLと検索結果は以下の関係でした。

http://example.com        → /var/www/htmlの下のindex.htmlが表示された。OK
http://example.com:8080     → ネコの画面が表示された。OK
http://example.com/phpMyAdmin  → phpMyAdminのログイン画面が表示された。OK
と特に問題はありませんでした。

その後6)OpenJDKと7)Tomcat8.5.24をインストールした後、以下の設定を行いました。

①「:8080」を使わないでTomcatに転送するために、/etc/httpd/conf/extraの下に「httpd-proxy.conf」を作成し以下のように記述しました。phpMyAdminへの例外処理を含める。

ProxyPass /phpMyAdmin ! <Location / > ProxyPass ajp://localhost:8009/ </Location>

②Apacheの設定ファイル「/etc/httpd/conf/httpd.conf」の末尾に

Include /etc/httpd/conf/extra/httpd-proxy.conf

を追加記述し、①のファイルを読み込むようにした。

以上の2点を行い、TomacatとApacheを再起動した結果、TomcatとApacheの連携はうまくいったようだが、phpMyAdminへの ProxyPassが上手くいかず画面にたどり着けません。

http://example.com         → ネコの画面が表示された。OK
http://example.com/phpMyAdmin   → 404 Not Found となる。NG

ひとつ考えられるのは「mod_proxy_ajp」が有効になっているかということですが、
Apache2.4ではLoadModuleの読み込みが「httpd-proxy.conf」には記載されておらず、
「/etc/httpd/conf.modules.d」の下にある複数のconfファイルで読み込んでいます。
当然のことながら、この中に「mod_proxy」や「mod_proxy_ajp」は有効に読み込まれていました。
もっとも、port8009への転送はうまくいっているので、ここは問題ないようです。

proxyの転送自体は機能しているようだが、例外処理が上手くいっていないということか。

httpd-proxy.conf の記述を

<Location /phpMyAdmin> ProxyPass ! </Location> <Location /> ProxyPass ajp://localhost:8009/ </Location>

と、記述を変えてみましたが、結果は変わりませんでした。
例外の記述方法がApache2.4で変更になったのかと考えたが、マニュアルを見ても
それらしい記述はありませんでした。

また、バカバカしい失敗としてはキャッシュがクリアされていない場合ですが、
今回は慎重に毎回毎回キャッシュをクリアして確認しました。

この辺の処理は、前述したようにCentOS 6.8でも行っており、現状も問題なく使えています。
なぜCentOS7/Apache2.4でうまくいかないのか、
どなたかお分かりの方がいらしたら、ご指導ください。
よろしくお願い致します。

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

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

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

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

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

CHERRY

2018/01/18 01:57

どちらかといえば、apache の設定の質問なので、タグに Apache も入れたほうがいいですね。
guest

回答1

0

ベストアンサー

おそらくディレクティブ解釈の優先順位の問題だと思いますが、loglevel をあげてログを取ってみたら何か分かるかもしれないですね。


内容的には同じですが、以下のようにしてみたら、どうなるでしょうか?

ProxyPass /phpMyAdmin ! ProxyPass / ajp://localhost:8009/

ProxyPass - Apache モジュール mod_proxy に記載されている「サブディレクトリをリバースプロキシしたくないとき」の設定例ですが...

投稿2018/01/18 01:50

編集2018/01/18 01:53
CHERRY

総合スコア25171

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

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

shaketonori

2018/01/18 03:41

CHERRYさん、回答ありがとうございました。 私もApache モジュール mod_proxy【2.4】(https://httpd.apache.org/docs/current/ja/mod/mod_proxy.html#proxypass)とApache モジュール mod_proxy【2.2】(http://httpd.apache.org/docs/2.2/mod/mod_proxy.html) を見比べて、いくつかのパターンでやってみましたがうまくいきませんでした。 ところが、CHERRYさんのアイデアどおり ProxyPass /phpMyAdmin ! ProxyPass / ajp://localhost:8009/ Locationタグを外したところ、phpMyAdmin のログイン画面に遷移することができました。 ウレシイですねぇ。 うまくいきました! 何かしらやってみるものですね。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問