Веб-сервер Android cgi пишет файлы и загружает скрипты на Perl - PullRequest
3 голосов
/ 15 февраля 2012

Я хочу иметь возможность запускать приложение cgi на своем планшете samsung galaxy под управлением Android 3.2.Я установил GroomDroid, SL4A и PerlForAndroid.
Я помещаю свой файл groom.conf в каталог / sdcard и запускаю GroomDroid.

Я помещаю свои perl-скрипты в папку / data / perlapp и делаюисполняемые файлы Perl и сделать родительскую папку доступной для записи.

Все файлы работают с инструкциями печати.Когда я получаю доступ к сценариям Perl, жизнь становится лучше.Я вижу веб-страницу, как и ожидалось, так же, как и на компьютере.

Теперь, если я пытаюсь создать файлы из сценариев Perl, я получаю ошибку HTTP 506 IO.

Любые идеи, почему ябудет получить это?

Я не могу заставить оператор call работать, даже если файлы perl находятся в одном каталоге.

Любая помощь здесь очень ценится.


Код, который я пытаюсь запустить:

#!/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>";

Ответы [ 2 ]

1 голос
/ 28 апреля 2012

У меня была такая же проблема.Решено редактированием конфига жениха.

Поместите scipts в папку cgi-bin на scard.

убедитесь, что расширение сценария cgi или pl указано в конфигурации groom и оба обрабатываются groomcgihandler, также убедитесь, что groom.conf имеет scard/cgi-bin в качестве каталога хоста, то есть localhost: 8080 будет фактически указывать прямо наscard/cgi-bin

0 голосов
/ 28 февраля 2012

Вы пытаетесь записать файл в каталог / data /.

Вы уверены, что имеете доступ для записи в этот каталог?

  • Сначала попробуйтедля записи в каталог / sdcard / он доступен для записи во всем мире.

  • Затем проверьте, достаточно ли у вас прав для записи в каталог, используя функцию stat ()

...