jetty服务器运行php代码
我想配置jetty以运行PHP文件,但到目前为止还没有成功。我的EclipseIDE中安装了Jetty WTP工具 当我启动Jetty服务器时。我得到了异常:java.lang.ClassNotFoundException org.mortbay.servlet.CGI:org.mortbay.servlet.CGI和javax.servlet.UnavailableException:org.mortbay.servlet.CGI。我在WebContent文件夹下放了一个简单的php文件(index.php)。我还下载了它并将其添加到类路径(Eclipse:buildpath和addexternaljar)。我现在不知道我做错了什么。我还使用以下工具编译了php:jetty服务器运行php代码,php,jetty,Php,Jetty,我想配置jetty以运行PHP文件,但到目前为止还没有成功。我的EclipseIDE中安装了Jetty WTP工具 当我启动Jetty服务器时。我得到了异常:java.lang.ClassNotFoundException org.mortbay.servlet.CGI:org.mortbay.servlet.CGI和javax.servlet.UnavailableException:org.mortbay.servlet.CGI。我在WebContent文件夹下放了一个简单的php文件(in
./configure --with-fastcgi=/usr/local
make
sudo make install
我的web.xml文件如下所示:
<?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>
不应该是/usr/local/php cgi吗?好的,我现在试过了,但是当我启动服务器时,我仍然得到了相同的ecxeptions
(我真的不喜欢使用maven!)你几乎可以肯定不想遵循这些说明-它们是为非常古老的Jetty 5设计的 请尝试按照以下两组说明之一进行操作
报告您遇到的任何具体问题。servlet类已重命名为
org.eclipse.jetty.servlets.CGI
以下是我为使其运行所做的工作:
Im使用jetty-distribution-8.1.5.v20120716
- 将jetty-distribution-8.1.5.v20120716.zip解压缩到目录jetty
- 我认为这没有必要,但我不希望其他webapps/servlet干扰配置,因此:清空目录Jetty/contexts、Jetty/contexts available、Jetty/webapps
- 可选:要获取调试消息,请在Jetty/etc/Jetty.xml中添加以下内容
hth很抱歉,回复太晚。昨天我一直在想怎么做。我不会尝试第一个链接,但我尝试了第二个链接,它与我的链接惊人地相似。我的错误服务不可用?抱歉,这些链接不适合我。我也不使用maven:(对于Jetty 9.0.x,我必须将true添加到web.xml文件中,介于和之间。我还必须添加一行“-module=servlets”在start.ini中,以便org.eclipse.jetty.servlets.CGI及其依赖项在类路径中可用。我得到
500:无法在jetty中执行CGI
,使用windows 7,我的php5-CGI-fix.bat看起来像设置脚本\u文件名=%1 C:\php\php CGI.exe
,命令提示告诉php警告:未知:文件名C第0行的未知项不能为空
$ /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
<Get class="org.eclipse.jetty.util.log.Log" name="log">
<Call name="setDebugEnabled">
<Arg type="boolean">true</Arg>
</Call>
</Get>
#!/usr/bin/bash
export SCRIPT_FILENAME=$1
/usr/bin/php5-cgi
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app
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"
version="2.4"
>
<display-name>MYPROJECT</display-name>
<servlet>
<servlet-name>PHP</servlet-name>
<servlet-class>org.eclipse.jetty.servlets.CGI</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>commandPrefix</param-name>
<param-value>../../../bin/php5-cgi-fix.sh</param-value>
</init-param>
<init-param>
<param-name>Path</param-name>
<param-value>/bin:/usr/bin:/usr/local/bin</param-value>
</init-param>
<init-param>
<param-name>cgibinResourceBase</param-name>
<param-value>webapps/MYPROJECT</param-value>
</init-param>
<!--
<init-param>
<param-name>cgibinResourceBaseIsRelative</param-name>
<param-value>true</param-value>
</init-param>
-->
<!--
<init-param>
<param-name>ENV_yourRequiredEnvironmentVariable</param-name>
<param-value>yourValue</param-value>
</init-param>
-->
<!-- Path, other ENV_variables including ENV_SystemRoot, ENV_REDIRECT_STATUS on Windows -->
</servlet>
<servlet-mapping>
<servlet-name>PHP</servlet-name>
<url-pattern>*.php</url-pattern>
<!-- Any other URL patterns that are needed by your app to be processed by PHP -->
</servlet-mapping>
<!-- If you want http://yourhost/yourapp to call yourapp/yourapp.php then make a welcome file -->
<!--
<welcome-file-list>
<welcome-file>index.php</welcome-file>
</welcome-file-list>
-->
</web-app>
http://localhost:8080/MYPROJECT/cgi-bin/test.php