Tomcat

概要

TomcatではCGIを動作させることができます。
この機能を利用してTomcatからCGI版PHPを呼び出すことで、
PHP On Tomcatを実現することができます。
(以下のテストでは、Tomcat6.0.18及びPHP 5.2.8を使用しています)

PHPの設定

インストール

WebよりWindows用のインストールパッケージ(php-5.2.8-win32-installer.msi)を
ダウンロードし、実行します。
インストールする際、Webサーバーへの組み込みは行わず、

Other CGI

を選択します。(以下では、h:\program\phpにインストールしたとしています)
これにより、インストールフォルダ以下にCGI版PHPの実行ファイルとして

php-cgi.exe

が作成されます。

php.iniの編集

CGI版PHPをTomcatから呼び出すため、php.iniの以下の部分のコメントを外し、値を0に変更します。

cgi.force_redirect = 0

Tomcatの設定

web.xmlの設定

PHPを動作させるコンテキストのWEB-INF/web.xmlにCGIサーブレットの設定を追加します。

 <servlet>
 <servlet-name>php</servlet-name>
 <servlet-class>
  org.apache.catalina.servlets.CGIServlet
 </servlet-class>
 <init-param>
  <param-name>debug</param-name>
  <param-value>6</param-value>
 </init-param>
 <init-param>
  <!-- PHPスクリプトを配備するフォルダのパス docrootが基点 -->
  <param-name>cgiPathPrefix</param-name>
  <param-value>php</param-value>
 </init-param>
 <init-param>
  <param-name>executable</param-name>
  <param-value>h:/program/php/php-cgi.exe</param-value>
 </init-param>
 <load-on-startup>5</load-on-startup>
</servlet>

<servlet-mapping>
 <servlet-name>php</servlet-name>
 <!-- PHPスクリプトにアクセスするためのURL contextrootが基点 -->
 <url-pattern>/php/*</url-pattern>
</servlet-mapping>

必要に応じてPHPスクリプトのURLに対するREALMも追加します。

<security-constraint>
 <web-resource-collection>
  <web-resource-name>Protected JSP Area</web-resource-name>
  <url-pattern>/jsp/*</url-pattern>
  <url-pattern>/filetemp/*</url-pattern>
  <url-pattern>/help/*</url-pattern>
  <url-pattern>/php/*</url-pattern>
  <http-method>DELETE</http-method>
  <http-method>GET</http-method>
  <http-method>POST</http-method>
  <http-method>PUT</http-method>
 </web-resource-collection>
 <auth-constraint>
  <role-name>*</role-name>
 </auth-constraint>
</security-constraint>

contextの設定

server.xml等で記述しているcontextタグの設定で特権属性を有効にします。

privileged="true"

PHPスクリプトの作成

以下のスクリプトを[context]/php/phpinfo.phpとして作成します。

<?php
 phpinfo();
?>

http://[host]:[port]/[context]/php/phpinfo.phpにアクセスし、
PHPの設定情報が表示されれば、完了です。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-19 (金) 20:49:15 (196d)