| このページは 04月のキャッシュ情報です。 |
使っとは?
[ 236] JavaでPHPを使ってみた(1/3) - @IT
[引用サイト]
http://www.atmarkit.co.jp/fjava/column/koyama/koyama05_1.html
|
教育界、技術者コミュニティでJava言語の教育と啓蒙に長年携わってきた筆者が、独自の視点からJavaの面白さを掘り下げていく。(編集部) Webサービスを実装する際によく使われるプログラミング言語として、Java以外には何があるでしょうか? RoR(Ruby on Rails)の出現によりRubyが最近は注目されていますが、普及度を考えるとPHPではないでしょうか。数年前には、LAMP(Linux、Apache HTTP Server、MySQL、PHP)という用語が流行しました。もちろん、LAMPのPはPerlやPythonを意味する場合もあるようですが、筆者がよく使用しているWebアプリケーションはJavaかPHPでコーディングされたものが多いので、PHPの方をすぐに想像してしまいます。今回は、Javaで記述されたPHP実行エンジンがあるということで調べてみました。 Quercusと聞いてピンとくる人はあまりいないでしょうが、Resinといわれるとポンと手をたたく人は多いと思います。 少し前まで、ResinはServlet/JSPコンテナという印象を個人的には持っていたのですが、いつの間にか高性能なJava/PHPアプリケーションサーバとなっていました。Resinのオープンソース版はGPLで公開されていますが、プロフェッショナル版はライセンスを購入する必要がありますから、注意が必要です。 せっかくPure JavaのPHP実行エンジンがあるので、Java好きなプログラマがPHPのプログラムを作るなら、これを使ってみたくなってしまうのは、当たり前のことでしょう。純粋にPHP実行エンジンとして利用するのであれば、Quercusだけがあればよいので、Quercusのサイトから入手して使います。Webアプリケーションとして動かすのであれば、Resinに同梱されていた方がすぐに使えます。そこで、Resinからオープンソース版をダウンロードして、Webアプリケーションを動かしてみました。 PHPを動作させるためのプラットフォームとしては、真っ先にApache HTTP Server+PHPを思い付くので、なぜこちらを使わないのかと不思議に思う人もいるかもしれません。しかし、ちょっとしたPHPプログラムを勉強したいといった場合に、これらをインストールして動作させるように環境を構築するのは意外と大変です。 もちろん、プロならLinux+Apache HTTP Server+PHP+JDK+Apache Tomcat+MySQLの環境は普段から使えるように構築していることが多いでしょうから、あまりありがたみを感じないかもしれません。しかし、あまりリソースがないマシンで軽いWebアプリケーションを複数動作させる必要があり、それらがPHPアプリとServlet/JSPアプリであった場合などには、Resinのようなサーバアプリがあるとうれしいはずです。新入社員の研修実習でPHPとServlet/JSPの入門を行う場合などにも、有効でしょう。 そのほかにも、mod_phpで動作させるよりResinの方が速いとか、モジュールをJavaで実装できるからC/C++より速く開発できるとか、Javaの資産を利用できるとか、いろいろあるようですが、詳細はQuercus: PHP in Java当たりを読んでもらえれば、分かると思います。 今回はFedora Core 5で動作させてみたので、Binary版のアーカイブファイルを展開してから、JNIライブラリを作成しました。このとき、JDK 6ではコンパイルがうまくできなかったので、ここではJDK 5を使うことにしました。Javaの切り替えはLinuxだと、JAVA_HOMEとPATHを指定し直せばよいだけなので簡単です。 JNIライブラリのインストールが終わってから、コマンドはbin/httpd.shを使ってサーバの起動をしました。デバッグ情報はほとんど出ないため、結構あっさりしたメッセージが出力されて待機状態になります。なお、サーバを停止するには、パラメータstartの代わりにstopを使います。 自動でソースコードをコンパイルして実行してくれるので、非常に便利です。ところが、コンパイルエラーが発生するプログラムを置いた場合は、コンパイルが成功しません。当然のことですね。 IDEで開発している場合はこれでもよいのでしょうが、そうでない場合は、よほど簡単なプログラムでない限り、自分でコンパイルをして確認してから、WEB-INF/classesへ置くようにした方がよさそうです。ということで、Servletプログラムを自分でコンパイルしたいときはどうすればよいかというと、次のように、jsdk-15.jarなど必要なライブラリやクラスへのクラスパスを指定しながらjavacコマンドを使います。 作成したJSP/クラス・ファイルなどをTomcat上で動作させるには、どこに配置するべきか? さらに、web.xmlの書き方も確認しよう 知ってましたか? ResinサーバではJSPとPHPアプリの両方を使えます。PHPにも触れることでJavaを客観的に見れるので、試してみましょう DWRを使うと、JavaScriptとJavaの間でデータを送受信するときにクラス/型を気にする必要がないなど、便利な機能が満載です ●ホワイトペーパーダウンロードセンター●製品資料/技術文書/導入事例/講演資料/Webキャスト……有力ITベンダー企業提供の独自資料が盛りだくさん! TCP/IPインターネットワーキング 〜RFCに基づくインターネット主要プロトコルの仕様・動作・解析〜 Solutionフォーラム トップ|会議室|利用規約|プライバシーポリシー|サイトマップ |