web-dev-qa-db-ja.com

Tomcatを使用してPHPアプリを実行しますか?

Tomcatを使用してPHPアプリを実行できますか?

Httpdを使用するように指示する前に、JavaアプリケーションがHost/myapp。次に、RoundCubeをHost/roundcubeにインストールします。

1つはPHPで、もう1つはJavaです。これは可能ですが、実際の指示はありません。 。

誰もこれのためのリソースを持っていますか?

42
GBa

はい、可能です ウィルデン 。 Tomcatサーバーで独自のポート番号localhost:8080を使用してPHPコードを実行できます

ここでは、あなたにとって非常に役立ついくつかのステップを書いています。

インストール方法または実行方法PHP Tomcat6 on windows

  1. ダウンロードして解凍PHP 5をディレクトリに、_c:\php-5.2.6-Win32_- php-5.2.9-2-Win32.Zipダウンロード

  2. ダウンロードPECL 5.2.5 Win32バイナリ- PECL 5.2.5 Win32ダウンロード

  3. _php.ini-dist_の_php.ini_を_c:\php-5.2.6-Win32_に変更します

  4. _php.ini_の行のコメントを解除するか追加します(先頭のセミコロンを削除します):_;extension=php_Java.dll_

  5. _php5servlet.dll_をPECL 5.2.5から_c:\php-5.2.6-Win32_にコピーします

  6. _php_Java.dll_をPECL 5.2.5から_c:\php-5.2.6-Win32\ext_にコピーします

  7. _php_Java.jar_をPECL 5.2.5から_Tomcat\lib_にコピーします

  8. _"php"_ディレクトリに_Tomcat\webapps_(またはあなたが好きなもの)という名前のディレクトリを作成します

  9. _phpsrvlt.jar_をPECL 5.2.5から_Tomcat\webapps\php\WEB-INF\lib_にコピーします

  10. 解凍する場合は_phpsrvlt.jar_を解凍または解凍しますwinrarまたは解凍する場合はwinzipを使用します:_jar xfv phpsrvlt.jar_

  11. _net\php\reflect.properties_と_net\php\servlet.properties_の両方を_library=php5servlet_に変更します

  12. Jarファイルを再作成します-> jar cvf php5srvlt.jar net/php /. PS:jarファイルが実行されない場合、システム変数へのパスを追加する必要があります_C:\Program Files\Java\jdk1.6.0\bin; to System variables/Path_

  13. このコンテンツを使用して_web.xml_に_Tomcat\webapps\php\WEB-INF_を作成します。

    _<web-app version="2.4" 
      xmlns="http://Java.Sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "
      xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee 
      http://Java.Sun.com/xml/ns/j2ee/web-app_2_4.xsd ">
      <servlet>
        <servlet-name>php</servlet-name>
        <servlet-class>net.php.servlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>php-formatter</servlet-name>
        <servlet-class>net.php.formatter</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>php</servlet-name>
        <url-pattern>*.php</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>php-formatter</servlet-name>
        <url-pattern>*.phps</url-pattern>
      </servlet-mapping>
    </web-app>
    _
  14. PHP path(_c:\php-5.2.6-Win32_))をWindows環境のシステムまたはユーザーパスに追加します(ヒント:右クリックして、マイコンピューターからプロパティを選択します

  15. _test.php_のようなテスト用に_Tomcat\webapps\php_を作成

  16. Tomcatを再起動します

  17. _localhost:8080/php/test.php_を参照

44
Saunik Singh

Apacheの背後でTomcatを実行することは非常に一般的です。 Apacheでは、特定のURLをTomcatに送信し、Apache/PHPで他のURL(静的イメージを含む)を処理できます。

(Unixでは、Tomcat自体をポート80で安全に実行することはできませんが、Apacheはできます。Tomcatは、Javaプロセスであるため、rootとして実行する必要がありますが、Apacheは、ポート80が要求されるとすぐにルート権限。ポート80でApacheを実行し、一部またはすべてのリクエストをTomcatにリダイレクトすることは、UNIXでは非常に一般的です。

31
Arjan

Caucho Quercus は、jvm上でPHPコードを実行できます。

7
Equistatic

少し遅れましたが、ここに行きます。

http://wiki.Apache.org/Tomcat/UsingPhp Tomcatで実際のphpを実行するだけの場合はどうですか。

ポート80でTomcatを実行することに関しては、常にjsvcがあり、Google jsvc + Tomcatだけです。

6
phil

そこで PHP/Java ブリッジ。これは基本的にFastCGIを介してPHPを実行しています。自分で使用したことはありません。

5
Will Hartung

TomcatはJSPサーブレットコンテナとして設計されています。 Apacheは、PHP Webサーバー。ApacheをWebサーバーとして使用し、PHP要求に応答し、JSPサーブレット要求をTomcatコンテナーに送信します。

3
lwpro2

まだ誰かが探している場合- Quercus には、Apache TomcatまたはglassfishでPHPスクリプトを実行できる戦争があります。ステップバイステップガイドについては、 this 記事

3
  1. サーバーにphpがインストールされていることを確認してください
  2. sourceforge からphp-Java-bridgeの最新リリースを見つける
  3. Sourceforgeの展開ディレクトリから、php-servlet.jarおよびJavaBridge.jarをダウンロードします
  4. これらのjarファイルをプロジェクトのwebapp/WEB-INF/libフォルダーに配置します
  5. Webapp/WEB-INF/web.xmlを次のように編集します。

oK

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
   <filter>
      <filter-name>PhpCGIFilter</filter-name>
      <filter-class>php.Java.servlet.PhpCGIFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>PhpCGIFilter</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
   <!-- the following adds the JSR223 listener. Remove it if you don't want to use the JSR223 API -->
   <listener>
      <listener-class>php.Java.servlet.ContextLoaderListener</listener-class>
   </listener>
   <!-- the back end for external (console, Apache/IIS-) PHP scripts; remove it if you don't need this -->
   <servlet>
      <servlet-name>PhpJavaServlet</servlet-name>
      <servlet-class>php.Java.servlet.PhpJavaServlet</servlet-class>
   </servlet>
   <!-- runs PHP scripts in this web app; remove it if you don't need this -->
   <servlet>
      <servlet-name>PhpCGIServlet</servlet-name>
      <servlet-class>php.Java.servlet.fastcgi.FastCGIServlet</servlet-class>
      <load-on-startup>0</load-on-startup>
   </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>
</web-app>

このファイル内に他のコンテンツがある場合があります。web-appタグの間にすべてを追加したことを確認してください。

  1. Phpファイルをwebappディレクトリに追加します

これで他の特別なこともできます。詳細については、こちらをご覧ください: http://php-Java-bridge.sourceforge.net/pjb/how_it_works.php

1
Michael Kern