質問: さくらインターネットの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をインストールした後、以下の設定を行いました。 1「:8080」を使わないでTomcatに転送するために、/etc/httpd/conf/extraの下に「httpd-proxy.conf」を作成し以下のように記述しました。phpMyAdminへの例外処理を含める。 ``` ProxyPass /phpMyAdmin ! ProxyPass ajp://localhost:8009/ ``` 2Apacheの設定ファイル「/etc/httpd/conf/httpd.conf」の末尾に ``` Include /etc/httpd/conf/extra/httpd-proxy.conf ``` を追加記述し、1のファイルを読み込むようにした。 以上の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 の記述を ``` ProxyPass ! ProxyPass ajp://localhost:8009/ ``` と、記述を変えてみましたが、結果は変わりませんでした。 例外の記述方法がApache2.4で変更になったのかと考えたが、マニュアルを見ても それらしい記述はありませんでした。 また、バカバカしい失敗としてはキャッシュがクリアされていない場合ですが、 今回は慎重に毎回毎回キャッシュをクリアして確認しました。 この辺の処理は、前述したようにCentOS 6.8でも行っており、現状も問題なく使えています。 なぜCentOS7/Apache2.4でうまくいかないのか、 どなたかお分かりの方がいらしたら、ご指導ください。 よろしくお願い致します。
回答: おそらくディレクティブ解釈の優先順位の問題だと思いますが、loglevel をあげてログを取ってみたら何か分かるかもしれないですね。 内容的には同じですが、以下のようにしてみたら、どうなるでしょうか? ``` ProxyPass /phpMyAdmin ! ProxyPass / ajp://localhost:8009/ ``` ProxyPass - Apache モジュール mod_proxy に記載されている「サブディレクトリをリバースプロキシしたくないとき」の設定例ですが...