Tomcat上でPHPを動作させる
http://www.opengion.com/index.php?Tomcat%E4%B8%8A%E3%81%A7PHP%E3%82%92%E5%8B%95%E4%BD%9C%E3%81%95%E3%81%9B%E3%82%8B概要 †
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の設定情報が表示されれば、完了です。
Last-modified: 2010-02-19 (金) 20:49:15 (196d)