2012-02-14 66 views
3

我希望能夠在運行android 3.2的三星銀河平板電腦上運行cgi應用程序。 我已經安裝了GroomDroid,SL4A和PerlForAndroid。
我把我的groom.conf文件放在我的/ sdcard目錄下,然後啓動GroomDroid。Android cgi web服務器寫入文件並加載perl腳本

我把我的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>"; 
+0

你檢查系統調用的返回值('open'等)?你在檢查'$!'(也許是'$^E')的值嗎? – mob 2012-02-14 21:28:43

+0

我在eval塊中有open語句,之後我檢查$ @。 $ @是空的。 – 2012-02-14 21:33:17

+0

所有證明的是,你的開放語句是有效的語法,而不是它成功。檢查返回值,並檢查'$!'。 – mob 2012-02-14 21:35:06

回答

0

您嘗試寫在/ data /目錄下的文件。

你確定你有權限在這個目錄下寫嗎?

  • 首先,嘗試寫入/ sdcard /目錄中,它是世界可寫的。

  • 然後檢查是否足夠正確的目錄使用stat()函數

1

我有同樣的問題寫。通過編輯新郎配置解決。

將scipts放在scard上的cgi-bin文件夾中。

確保腳本擴展CGI或PL是在新郎的配置上市,並都被groomcgihandler處理,也確保groom.conf具有scard/cgi-bin作爲主機目錄,即本地主機:8080實際上將指向直奔scard/cgi-bin