在android中使用php-cgi和webserver


Using php-cgi with webserver in android

我发现我们可以通过访问这个网站在android上运行Phpcgi。我已经在android中创建了一个网络服务器,它运行良好,我已经安装了Php-cgi,并想问我如何链接两者,以便我可以运行Php脚本以及HTML页面任何帮助都将不胜感激

更新:

在我的请求处理器中,输出是这样发送的:

contentType = guessContentTypeFromName(filename);
Date now = new Date( );
  out.write("Date: " + now + "'r'n");
  out.write("Server: JHTTP/1.0'r'n");
  out.write("Content-length: " + theData.length + "'r'n");
  out.write("Content-type: " + contentType + "'r'n'r'n");
  out.flush( );

留言板。。。。()

if (name.endsWith(".php")) {  

         String pathToPhpExecutable = Environment.getExternalStorageDirectory() + "/data" + "/php-cgi";
         String phpFile ="" + "/php/myPhpFile.php";
         Process process = null;
        try {
              process = new ProcessBuilder()
             .command(pathToPhpExecutable, phpFile)
             .redirectErrorStream(true)
             .start();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         try {

         } finally {
             process.destroy();
         }

您可以使用ProcessProcessBuilder类来创建和执行命令。请记住,根据您想要执行的进程,您可能需要root权限,并且它在非root Android设备上不起作用。

String pathToPhpExecutable = getFileDir() + "/php-cgi";
String phpFile = getFileDir() + "/php/myPhpFile.php";
Process process = new ProcessBuilder()
.command(pathToPhpExecutable, phpFile)
.redirectErrorStream(true)
.start();
try {
    InputStream in = process.getInputStream();
    // Read the input stream and i.e. display the results in a WebView
} finally {
    process.destroy();
}

不要被命名弄糊涂了。根据Process文档,getInputStream()返回连接到std::out的流的输出。这将返回PHP生成的代码(Json、HTML、纯文本)。

然而,你很可能需要根才能让它发挥作用。或者,当您从APK中解压缩文件时,这些文件将没有执行权限(在Linux中为x)。但是调用chmodchown(如果分配给错误的用户名)很可能需要一个根Android设备。

  • 流程| Android开发者