httpServer执行PHP脚本

时间:2012-11-27 00:53:46

标签: java php httpserver java-server

我正在编写一个java http服务器,我已经完成了FileServer类来处理index.hitml等普通文件的请求(Get,Head,Post等) 我还想让我的服务器执行PHP脚本并将输出返回给客户端。      “http://localhost/phpinfo.php”

我该怎么做?我需要一些资源。 请指出任何资源或apis阅读:)
感谢

3 个答案:

答案 0 :(得分:0)

写这样做最不痛苦的方法也是最痛苦的:CGI。这只涉及设置一些环境变量并运行PHP解释器。

更好的方法是实现一个FCGI客户端,它(启动和)连接到PHP的许多现有FCGI包装器之一。

答案 1 :(得分:0)

最简单的方法是从java调用PHP解释器(通过Runtime.getRuntime().exec()。你可以使用获取PHP解释器生成的输出并将其发送到浏览器。但是,当这样调用时, PHP在所谓的“命令行界面”模式下运行,与标准CGI模式相比,它的行为有所不同(特别是在读取脚本参数,http请求等时)。

更好的方法可能是使用fastCGI。看看这个如何以快速cgi进程生成PHP的页面:http://wiki.nginx.org/PHPFcgiExample(linux)

在您的服务器中,您需要实现快速cgi协议,可在此处找到:http://www.fastcgi.com/devkit/doc/fcgi-spec.html

答案 2 :(得分:0)

在php 5.4之后,php(cli)内置了web-server命令-S

--server addr:port
-S addr:port   # Start embedded Webserver on the given local address and port

示例:收听所有传入流量的8080端口

php -S 0.0.0.0:8080 <target_file|dictionary>