serveur jetty exécuter du code php
Je veux configurer de sorte que la jetée exécute PHP les fichiers, mais ont échoué jusqu'à présent. Je l'ai Jetée VDP des outils installées dans mon IDE Eclipse.
Lorsque je démarre le serveur Jetty. Je suis l'exception: java.lang.ClassNotFoundException org.mortbay.servlet.CGI: org.mortbay.servlet.CGI et javax.servlet.UnavailableException: org.mortbay.servlet.CGI. J'ai mis un simple fichier php(index.php) en vertu de mon dossier WebContent. J'ai aussi téléchargé ce bibliothèque et de l'ajouter au classpath(Eclipse: le chemin de génération et add external jar). Je n'ai aucune idée maintenant de ce que j'ai fait de mal. J'ai également compilé php avec:
./configure --with-fastcgi=/usr/local
make
sudo make install
Et mon web.xml fichier ressemble à ceci:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>Sample PHP Application</display-name>
<servlet>
<servlet-name>PHP</servlet-name>
<servlet-class>org.mortbay.servlet.CGI</servlet-class>
<init-param>
<param-name>commandPrefix</param-name>
<param-value>/usr/local/bin/php-cgi-fix</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>PHP</servlet-name>
<url-pattern>/index.php/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.php</welcome-file>
</welcome-file-list>
</web-app>
Il pourrait être mon php-cgi-fix fichier, j'ai eu l'followig texte que j'ai prise quand je l'ouvre:
$ /usr/local/bin/php-cgi-fix ; exit;
/usr/local/bin/php-cgi-fix: line 3: /usr/bin/php-cgi: No such file or directory
logout
Ne devrait pas être /usr/local/php-cgi à la place? Ok j'ai essayé, mais j'ai eu le même ecxeptions lorsque je lance le serveur.
(Je n'aime vraiment pas à utiliser maven trop!)
OriginalL'auteur einstein | 2011-02-24
Vous devez vous connecter pour publier un commentaire.
Vous avez presque certainement ne pas voulez suivre ces instructions - ils sont pour la Jetée de 5 qui est très vieux.
Essayez l'une de ces 2 ensembles d'instructions
Ils prennent des approches très différentes, de sorte que vous aurez besoin de décider de quelle façon vous voulez faire.
La première utilise l'Quercus qui est une implémentation de PHP écrit en Java.
Le second utilise CGI pour exécuter le standard de PHP de mise en œuvre.
Rapport avec des questions spécifiques que vous avez.
Désolé, mais ces liens ne sont pas pour moi. Je ne l'utiliser maven:
OriginalL'auteur Tim
Voici ce que j'ai fait pour le remettre en marche:
Im à l'aide de la jetée-distribution-8.1.5.v20120716
extrait jetty-distribution-8.1.5.v20120716.zip pour disons un répertoire Jetée
je ne pense pas que ce soit nécessaire, mais je ne veux pas que d'autres webapps/servlets entraver la configuration, donc: vider les répertoires de la Jetée et de contextes, de la Jetée et de contextes disponibles, Jetty/webapps
facultatif: pour obtenir les messages de débogage ajouter ce qui suit dans Jetty/etc/jetty.xml
créer les répertoires suivants: Jetty/webapps/MYPROJECT, Jetty/webapps/MONPROJET/WEB-INF, Jetty/webapps/MONPROJET/cgi-bin
le contenu de Jetty/webapps/MYPROJECT/WEB-INFO/web.xml est
créer un fichier php comme Jetty/webapps/MYPROJECT/cgi-bin/test.php avec le contenu
<?php phpinfo();
cgi.force_redirect = 0
exécuter jetty:
java -Dorg.eclipse.la jetée.les servlets.CGI.NIVEAU=DEBUG -jar start.jar etc/jetty-requestlog.xml
OU
java-jar start.jar
CONSEILS:
dans le cas où vous essayez de l'utiliser sur windows, par exemple, à php5-cgi-fix.le fichier bat, vous devrez changer le préfixe de commande en web.xml config comme ceci:
cmd.exe /c ../../../bin/php5-cgi-fix.chauve-souris
jetée source peut être obtenu à partir de http://repo1.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/
où org/eclipse/jetty/servlets/CGI.java est la cgi servlets code qui exécute les scripts php
hth
Je suis
500: Failed to exec CGI
dans la jetée, à l'aide de windows 7 et mon php5-cgi-fix.bat ressembleraitSET SCRIPT_FILENAME=%1 C:\php\php-cgi.exe
, l'invite de commande indiquePHP Warning: Unknown: Filename cannot be empty in Unknown on line 0
OriginalL'auteur John Doe
La classe de servlet a été renommé
org.eclipse.jetty.servlets.CGI
OriginalL'auteur nilskp