Java 開発者は皆、Java Web プロジェクトのデプロイに Tomcat が使用されていることを知っています。この期間中に、PHP プロジェクトと同じドメイン名とポートを必要とするプロジェクトがありましたが、nginx を使用せずにこれを実現するにはどうすればよいでしょうか? Tomcat が Java Bridge を介した php の実行をサポートできることを知りました。
詳しい手順は次のとおりです。
1. 環境の準備
php環境のインストール、Java仮想マシン、tomcatのインストール
最小構成これらのツールの PHP 5.x、Java 6 以降、Tomcat 6 以降です。
2. tomcat の設定 (推奨学習: PHP プログラミングの入門から熟練度まで )
PHP/Java Bridge の JavaBridge の統合.jar、php-servlet.jar、php-script.jar が tomcat の lib ディレクトリにコピーされます;
Tomcat インストール ディレクトリの conf フォルダにある web.xml ファイルを変更し、次の内容をweb-app タグ コード;
<listener> <listener-class>php.java.servlet.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>PhpJavaServlet</servlet-name> <servlet-class>php.java.servlet.PhpJavaServlet</servlet-class> </servlet> <servlet> <servlet-name>PhpCGIServlet</servlet-name> <servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class> <init-param> <param-name>prefer_system_php_exec</param-name> <param-value>On</param-value> </init-param> <init-param> <param-name>php_include_java</param-name> <param-value>Off</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>PhpJavaServlet</servlet-name> <url-pattern>*.phpjavabridge</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PhpCGIServlet</servlet-name> <url-pattern>*.php</url-pattern> </servlet-mapping>
上記の手順を完了した後、tomcat を再起動すると、任意のプロジェクトで php スクリプトを実行できますが、webapps/ で直接実行することはできません。Tomcat の公式 Web サイトでは cgiPathPrefix が次のように説明されているためです。以下:
The CGI search path will start at the web application root directory + File.separator + this prefix.
webapps ディレクトリ内のファイルindex.php に直接アクセスする場合
<?php phpinfo();?>がアクセスすると表示されます。
以上がTomcat は PHP をサポートしていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。