Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java httpServer执行PHP脚本_Java_Php_Httpserver_Java Server - Fatal编程技术网

Java httpServer执行PHP脚本

Java httpServer执行PHP脚本,java,php,httpserver,java-server,Java,Php,Httpserver,Java Server,我正在编写一个java http服务器,并且我已经完成了FileServer类,用于处理普通文件(如index.hitml)的Get、Head、Post等请求 我还希望使我的服务器能够执行PHP脚本并将输出返回给客户端。 http://localhost/phpinfo.php 我该怎么做?我需要一些资源。 请向我指出要阅读的任何资源或API: 谢谢最不痛苦的编写方式也是最痛苦的运行方式:CGI。这只需要设置一些环境变量并运行PHP解释器 更好的方法是实现一个FCGI客户端,该客户端启动并连接

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

我该怎么做?我需要一些资源。 请向我指出要阅读的任何资源或API:
谢谢

最不痛苦的编写方式也是最痛苦的运行方式:CGI。这只需要设置一些环境变量并运行PHP解释器


更好的方法是实现一个FCGI客户端,该客户端启动并连接到许多现有的PHP FCGI包装器中的一个。

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

更好的方法可能是使用fastCGI。请看这一页,了解如何将PHP生成为快速cgi进程:linux


在您的服务器中,您需要实现fast cgi协议,可以在这里找到:

在php版本5.4之后,phpcli有内置的web服务器命令-S

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


php-S 0.0.0.0:8080

您需要了解如何使用php作为命令行应用程序。如果您正在编写一个可以运行php的java web服务器,那么它已经完成了。它叫。
--server addr:port
-S addr:port   # Start embedded Webserver on the given local address and port