我正在编写一个java http服务器,我已经完成了FileServer类来处理index.hitml等普通文件的请求(Get,Head,Post等) 我还想让我的服务器执行PHP脚本并将输出返回给客户端。 “http://localhost/phpinfo.php”
我该怎么做?我需要一些资源。
请指出任何资源或apis阅读:)
感谢
答案 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>