Est-il possible d'exécuter une application PHP en utilisant tomcat?
Avant de me dire d'utiliser simplement httpd, j'ai déjà une application Java exécutée sur mon serveur Web à Host/myapp
. Maintenant, je veux installer RoundCube sur Host/roundcube.
L'un est PHP et l'autre est Java. Je continue de voir des références désinvoltes disant que c'est possible mais pas de vraies instructions. Je ne veux pas les mettre sur des ports séparés, j'ai besoin des ports HTTP et HTTPS standard .
Quelqu'un at-il des ressources pour cela?
Oui, c'est possible Will Den . nous pouvons exécuter PHP code dans le serveur Tomcat en utilisant son propre numéro de port localhost: 8080
ici j'écris une étape qui vous est tellement utile.
Comment installer ou exécuter PHP sur Tomcat 6 dans Windows
télécharger et décompresser PHP 5 dans un répertoire, c:\php-5.2.6-Win32
- php-5.2.9-2-Win32.Zip Télécharger
télécharger PECL 5.2.5 Win32 binaires - Télécharger PECL 5.2.5 Win32
renommer php.ini-dist
en php.ini
dans c:\php-5.2.6-Win32
Décommentez ou ajoutez la ligne (supprimez le point-virgule au début) dans php.ini
: ;extension=php_Java.dll
copier php5servlet.dll
de PECL 5.2.5 vers c:\php-5.2.6-Win32
copiez php_Java.dll
de PECL 5.2.5 vers c:\php-5.2.6-Win32\ext
copiez php_Java.jar
de PECL 5.2.5 vers Tomcat\lib
créez un répertoire nommé "php"
(ou ce que vous voulez) dans le répertoire Tomcat\webapps
copiez phpsrvlt.jar
de PECL 5.2.5 vers Tomcat\webapps\php\WEB-INF\lib
Décompressez ou décompressez phpsrvlt.jar
Pour décompresser utilisez winrar ou winzip pour décompressez: jar xfv phpsrvlt.jar
remplacez net\php\reflect.properties
et net\php\servlet.properties
par library=php5servlet
Recréez le fichier jar -> jar cvf php5srvlt.jar net/php /. PS: si le fichier jar ne fonctionne pas, vous devez ajouter le chemin d'accès aux variables système pour moi, j'ai ajouté C:\Program Files\Java\jdk1.6.0\bin; to System variables/Path
créez web.xml
dans Tomcat\webapps\php\WEB-INF
avec ce contenu:
<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>
Ajoutez PHP path (c:\php-5.2.6-Win32
) À votre système ou chemin utilisateur dans l'environnement Windows (indice: cliquez avec le bouton droit et sélectionnez Propriétés dans Poste de travail
créer test.php
pour tester sous Tomcat\webapps\php
comme
Redémarrez Tomcat
parcourir localhost:8080/php/test.php
Il est assez courant d'exécuter Tomcat derrière Apache. Dans Apache, vous pouvez ensuite diriger certaines URL vers Tomcat et demander à Apache/PHP de gérer les autres (y compris les images statiques).
(Sous Unix, Tomcat lui-même ne peut pas être exécuté en toute sécurité sur le port 80, contrairement à Apache. Tomcat, étant un processus Java, devrait être exécuté en tant que root, tandis qu'Apache passera en mode non privilèges root dès que le port 80 a été revendiqué. Donc, exécuter Apache sur le port 80 et le faire rediriger certaines ou toutes les requêtes vers Tomcat, est assez courant sous Unix.)
Caucho Quercus peut exécuter PHP sur le jvm.
Un peu tard, mais voilà.
Que diriez-vous http://wiki.Apache.org/Tomcat/UsingPhp si vous voulez simplement exécuter le vrai php sur Tomcat.
Concernant l'exécution de Tomcat sur le port 80, il y a toujours jsvc, juste google jsvc + Tomcat.
Là, ce PHP/Java pont. Cela fonctionne essentiellement PHP via FastCGI. Je ne l'ai pas utilisé moi-même.
Tomcat est conçu comme conteneur de servlet JSP. Apache est conçu PHP serveur Web. Utilisez Apache comme serveur Web, répondant pour PHP demande, et demande directe de servlet JSP au conteneur Tomcat. Devrait être une meilleure implémentation).
php-servlet.jar
et JavaBridge.jar
webapp/WEB-INF/lib
dossier de votre projetd'accord
<?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>
Vous pouvez avoir d'autres contenus dans ce fichier, assurez-vous simplement d'avoir tout ajouté entre la balise de l'application Web.
Vous pouvez également faire d'autres choses spéciales avec cela. Vous pouvez en savoir plus à ce sujet ici: http://php-Java-bridge.sourceforge.net/pjb/how_it_works.php