3

我希望能够在运行 android 3.2 的三星 Galaxy 平板电脑上运行 cgi 应用程序。我已经安装了 GroomDroid、SL4A 和 PerlForAndroid。
我将groom.conf 文件放在我的/sdcard 目录中并启动GroomDroid。

我将我的 perl 脚本放在 /data/perlapp 文件夹中,并使 perl 文件可执行并使父文件夹可写。

所有文件都在运行打印语句。当我访问 perl 脚本时,生活是美好的。我可以像在计算机上一样看到预期的网页。

现在,如果我尝试从 perl 脚本创建文件,我会收到 HTTP 506 IO 错误。

任何想法为什么我会得到这个?

即使 perl 文件位于同一目录中,我也无法让 require 语句正常工作。

非常感谢这里的任何帮助。


我试图运行的代码:

#!/data/data/com.googlecode.perlforandroid/files/perl/perl

print "Content-type: text/html\r\n\r\n";
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"w3.org/TR/html4/loose.dtd\""; 
print "<html><body style=\"font-family: arial; margin: 20px;\"><span style=\"color:red; font-weight: bold; padding-right: 10px;\">"; 

eval { 
    open(FILE, ">>/data/scwi/data/temp.cgi") or print $!;
    print FILE "respondent 1\n";
    close(FILE); 
}; 
print $!; 
if ($!) { 
    print "Error"; 
} else {
    print "Success";
} 
print "</span></body></html>";
4

2 回答 2

1

我有同样的问题。通过编辑修饰配置解决。

将 scipts 放在 scard 上的 cgi-bin 文件夹中。

确保脚本扩展 cgi 或 pl 在新郎配置中列出,并且两者都由新郎 cgihandler 处理,还确保groom.confscard/cgi-bin作为主机目录,即 localhost:8080 实际上将直接指向scard/cgi-bin

于 2012-04-27T22:16:40.070 回答
0

您尝试在 /data/ 目录中写入文件。

您确定您有权在此目录中写入吗?

  • 首先,尝试在 /sdcard/ 目录中写入,它是全局可写的。

  • 然后使用 stat() 函数检查您是否有足够的权限在目录中写入

于 2012-02-28T16:49:20.647 回答