- 締切済み
ApacheにPHPを組み込みつつ、Tomcatを連携
こんにちは。現在私は自宅のパソコン(WindowsXP)をWWWサーバにしようと考えておりまして、Apache(Ver2.2.4)をインストールし、Tomcat(ver5.5)と連携させております。ApacheからTomcatに連携させることは成功した(はず)と思います。以下のような設定です。confフォルダの中のhttpd.confファイルの中で、 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so を有効にし、 ProxyPass / ajp://localhost:8009/ を追加しました。これで、http://localhost/と入力すると、:8080を付加しなくてもTomcatのトップに跳ぶようにはなっています。これで連携はOKなんですよね? さらにこれに、PHPをモジュールとして組み込みたいんです。 Tomcatを使わずに、Apacheのみで動かす場合は、うまくphpがモジュールとして組み込めて、Apacheのhtdocsフォルダにphpinfo.phpファイルをおいて、テストすると正常に表示されます。 しかし、Tomcatと連動させると、phpをApacheのモジュールに組み込んでも、Tomcatとの連携が優先されて、Apacheの中身(htdocsフォルダなど)がブラウザで呼び出せないために、phpファイルにアクセスできません。 以上が疑問点ですが、とにかく知りたいのは、Tomcatとの連携とApacheの機能(PHPをモジュールに組みこんで使う)とを両立させるには、どうしたらいいのでしょうか、ということです。どなたか教えてくださいませんか。お願いします!
- みんなの回答 (2)
- 専門家の回答
みんなの回答
tomcatとapacheを連携させてphpが見れています。 servletのリクエストだけtomcatに送れていればいいようです。 1.apacheでphpが見れるようにします。 apache : apache_2.0.59-win32-x86-no_ssl php : php-4.4.6.tar 参考にしたサイト:http://2php.jp/php/install_php_windows.html 2.apacheとtomcatを連携させる (servletのリクエストだけ送られるようにする) tomcat : apache-tomcat-6.0.9 module :jakarta-tomcat-connectors-jk2.0.4-win32-apache2.0.49 参考にしたサイト : http://whzat.minidns.net/shoko3/Tomcat-Apache/index.html ※apache_2.2.4-win32-x86-no_sslは、mod_jk2.soでtomcatと連携できなかったので、アンインストールしてapache_2.0.59-win32-x86-no_ssl を使いました。 tomcatでも設定すればphpが見れるみたいです。 参考にしたサイト : http://wiki.apache.org/tomcat/UsingPhp
>ProxyPass / ajp://localhost:8009/ これを ProxyPass /tomcat/ ajp://localhost:8009/ とすれば、 http://localhost/tomcat/ :Tomcatトップ http://localhost/(tomcat以外)/ :PHP利用可能 になりませんか?
お礼
この問題、解決しました~~~!回答をいただいたtdshさん、ありがとうございました。ちなみに、同じように悩んでいる方のために、自分の解決法を掲載しておきます。 まず、Apahceバージョン2.2.4の話ですが、httpd.confファイルの LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so を有効にするのはやはり必須です。そして、今までは ProxyPass / ajp://localhost:8009/ という行をhttpd.confファイルに追加していましたが、ここを変更しました。これの代わりに(やや不正確な言い方ですが) Include conf/extra/httpd-proxy.conf という行を追加します。 そして、conf/extra/フォルダの中に、新規にhttpd-proxy.confというファイルを作って <Location /sugichi/> ProxyPass ajp://127.0.0.1:8009/sugichi/ </Location> という行を書いて保存します。自分の場合、Tomcatのルートフォルダ(webappフォルダの直下のROOTフォルダのこと)の名前をsugichiと変更しました。その場合、Locationタグの後ろを/sugichi/とし、ProxyPassの最後にも/sugichi/と追加します。ここは皆さんのフォルダの名前でOKだと思います。たぶんROOTフォルダのままなら、/だけでいいと思いますが、そこまでは試していません。 とにかくこれで、無事にApacheとTomcatの使い分けができました。どうか参考に。あ、ちなみに、僕が参考にさせてもらったページはこちらです。↓ http://d.hatena.ne.jp/solitary_shell/20070127/1169879858 しかし、また新たな問題が浮上しまして・・・ PHPからMySQLにアクセスできないんです・・・。まだ、こちらは自分でしっかりと調べていないので、どうしてもわからなかったらまた投稿いたします。
補足
回答どうもありがとうございます!ためしにやってみましたが、やっぱりだめです・・。そもそも、自分は、このProxyPassがいったいなんなのか、よくわかっていません・・・。Tomcat側のルートフォルダ(webappフォルダの直下のJSPなどを置くためのフォルダ)と何か関係があるのでしょうか?
お礼
yuki833さん、どうも回答ありがとうございました!自分で補足にも書いたんですが、一応解決しました。でも、やり方はいろいろあるんですね。 自分は、PHP5.2.1のヴァージョンとApache2.2.4を使ってやりました。ヴァージョンが異なるだけでずいぶんやり方も変わってしまいます。また、困ったときはどうかお助けください。どうもありがとうございました。