我正在编写一个 java http 服务器,并且我已经完成了 FileServer 类来处理对 index.hitml 等普通文件的请求(Get、Head、Post 等)
我还想让我的服务器能够执行 PHP 脚本并将输出返回给客户端。“http://localhost/phpinfo.php”
我怎样才能做到这一点?我需要一些资源。请指出我要阅读的任何资源或api:)
谢谢
我正在编写一个 java http 服务器,并且我已经完成了 FileServer 类来处理对 index.hitml 等普通文件的请求(Get、Head、Post 等)
我还想让我的服务器能够执行 PHP 脚本并将输出返回给客户端。“http://localhost/phpinfo.php”
我怎样才能做到这一点?我需要一些资源。请指出我要阅读的任何资源或api:)
谢谢
完成的最简单方法是从 java 调用 PHP 解释器(通过Runtime.getRuntime().exec()
。您可以使用获取 PHP 解释器生成的输出并将其发送到浏览器。但是,当这样调用时,PHP 运行在所谓的“命令行界面”模式,其行为与标准 CGI 模式不同(尤其是在读取脚本参数、http 请求等时)
更好的方法可能是使用 fastCGI。查看此页面,了解如何将 PHP 生成为快速 cgi 进程:http ://wiki.nginx.org/PHPFcgiExample (linux)
在您的服务器中,您需要实现快速 cgi 协议,可以在这里找到:http: //www.fastcgi.com/devkit/doc/fcgi-spec.html
最不痛苦的编写方式也是最痛苦的运行方式:CGI。这仅涉及设置一些环境变量和运行 PHP 解释器。
更好的方法是实现一个 FCGI 客户端,它(启动并)连接到 PHP 的许多现有 FCGI 包装器之一。
在 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>