2012-02-14 9 views
3

アンドロイド3.2を実行している私のSamsung Galaxyタブレットでcgiアプリケーションを実行できるようにします。 GroomDroid、SL4A、PerlForAndroidをインストールしました。
groom.confファイルを/ sdcardディレクトリに置き、GroomDroidを起動します。Android cgi web serverファイルとローディングperlスクリプト

私のperlスクリプトを/ data/perlappフォルダに置き、perlファイルを実行可能にして親フォルダを書き込み可能にします。

すべてのファイルが実行しているのは、print文を実行していることです。私がperlのスクリプトにアクセスするとき、人生は良いです。私はコンピュータのようにウェブページを期待どおりに見ています。

私がperlスクリプトからファイルを作成しようとすると、HTTP 506 IO Errorが発生します。

なぜ私はこれを得ているでしょうか?

私は、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

+0

私はevalブロックにopenステートメントがあり、$ @をチェックしています。 $ @は空です。 –

+0

あなたのopenステートメントは有効な構文であり、成功したものではありません。戻り値をチェックし、 '$!'をチェックしてください。 – mob

答えて

0

あなたが/ data /ディレクトリ内のファイルを書き込もう。

本当にあなたはこのディレクトリに書き込むことができますか?

  • まず、/ sdcard /ディレクトリに書き込んでみると、書き込み可能です。もしあれば

  • はその後のstat()関数

1

を使用してディレクトリに書き込むための十分な権利をチェックし、私は同じ問題を抱えていました。 groomの設定を編集して解決します。

sciac上のcgi-binフォルダ内のscipts。

groom.conf、すなわちローカルホスト、ホストディレクトリとしてscard/cgi-binを持っていることを確認し、スクリプトの拡張CGIやPLが新郎の設定にリストされ、両方がgroomcgihandlerによって対処されていることを確認してください:8080は、実際にscard/cgi-bin

関連する問題