URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 596
[ Назад ]

Исходное сообщение
"Счетчик в perl  и cgi"

Отправлено Zhenya , 27-Июн-02 10:42 
Столкнулся с такой штукой. Счетчик обращений на perl раболтает, закидываю его же в /cgi-bin/ с расширением cgi работать не хотит, пишет 500 Internal Server Error. Я уже все рекомендации посмотрел по этой ошибке и ни фига.
А вот листинг  counter.cgi:

#!/usr/bin/perl

$number_of_digits = "5";
$end = ".gif";
$pathtocounter = "counter.txt";
$pathtoimages = "http://localhost/icons/"; $graphics = "yes";
#=============================================================
print ("Content-Type: text/html\n\n");
open (COUNTER, "$pathtocounter");
$count = <COUNTER>;
chop ($count) if $count =~ /\n$/;
close (COUNTER);

$count += 1;

open (COUNTER, ">$pathtocounter");
print COUNTER ("$count");
close (COUNTER);

@digits = split(//, $count);

if ($number_of_digits eq "") {
        $howmany = @digits;
} else {
        $howmany = $number_of_digits;
}

$spline = '%0' . $howmany . 'd';
$count = sprintf("$spline", $count);

@digitimages = split(//, $count);

foreach $digitimage (@digitimages) {
    if ($graphics eq yes) {
        $image = "<img src=$pathtoimages"."$digitimage"."$end width=15 height=20>";
    print ("$image");
    } else {
        $plain = $digitimage;
    print ("$plain");
    }
}

exit;


Содержание

Сообщения в этом обсуждении
"RE: Счетчик в perl  и cgi"
Отправлено rino , 27-Июн-02 13:28 
А что в серваковском error_log?
Скорее всего у тебя в настройках сервера не раскомментирована строка,
разрешающая исполнение cgi.
У меня была такая проблема, я её решил чисто настройкой сервера.
Кстати при исполнении скрипта у тебя пристуствует строка:

(offline mode: enter name=value pairs on standart input)?


"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 28-Июн-02 04:51 
>А что в серваковском error_log?
>Скорее всего у тебя в настройках сервера не раскомментирована строка,
>разрешающая исполнение cgi.
>У меня была такая проблема, я её решил чисто настройкой сервера.
>Кстати при исполнении скрипта у тебя пристуствует строка:
>
>(offline mode: enter name=value pairs on standart input)?

В логах то он пишет: No such file or directory.
А в настройках все в норме вроде:
ScriptAlias, AddHandler, Directory /var/www/cgi-bin прописаны, а больше по моему ничего не надо.
Строчки (offline mode: enter name=value pairs on standart input)? нет.


"RE: Счетчик в perl  и cgi"
Отправлено uldus , 28-Июн-02 12:15 
А после #!/usr/bin/perl точно 0x0D символа возврата каретки нет ? Попробуй "#!/usr/bin/perl --" или "#!/usr/bin/perl -w"

"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 01-Июл-02 08:01 
>А после #!/usr/bin/perl точно 0x0D символа возврата каретки нет ? Попробуй "#!/usr/bin/perl
>--" или "#!/usr/bin/perl -w"

Нет все нормально тут. Попробывал оба. Он вообще файлы на perl запускать не хочет. А вот закидываешь какой-нибудь другой, например на C, выполняет без ошибок. Может интерпретатор не работает в cgi?


"RE: Счетчик в perl  и cgi"
Отправлено Арлекин , 01-Июл-02 08:14 
А у тебя ЭТОТ юзер перла-то видит ? Среду проверяй. Чудес не бывает.

"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 01-Июл-02 10:45 
>А у тебя ЭТОТ юзер перла-то видит ? Среду проверяй. Чудес не
>бывает.
То что лежит в каталоге /perl/ юзер запускает, значит видит, а вот в /cgi-bin/ запускает все акромя перла, видимо не видит. Что делать, чтоб увидел?
Вообще то юзер тот же, а выходит что права доступа разные. Но то, что он перла не видит больше похоже на правду, как же исправить?


"RE: Счетчик в perl  и cgi"
Отправлено Арлекин , 01-Июл-02 10:59 
А на /cgi-bin/ в смысле /.../cgi-bin права у этого юзера есть ? Исполнение и просмотр - по любому должны быть. По-моему так, если не напутал чего. Это раз, и сам модуль name.cgi должен быть исполнимым.

"RE: Счетчик в perl  и cgi"
Отправлено Арлекин , 01-Июл-02 11:07 
Для каталога в *nix исполнение и просмотр одно и тоже, ессно. Эт я перемудрил.

"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 02-Июл-02 03:53 
>Для каталога в *nix исполнение и просмотр одно и тоже, ессно. Эт
>я перемудрил.
Там все нормально: drwxr-xr-x root root /cgi-bin.
И файлики *.cgi такие же. Если было бы все так плохо он бы остальные файлы не исполнял. А он работает со всем, что не написано на перлу. Вот такие траблы.


"RE: Счетчик в perl  и cgi"
Отправлено andrey , 03-Июл-02 14:32 
а есть в конфигах апача такая строка:
AddHandler cgi-script .cgi .pl  ...?
pl там есть?

"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 04-Июл-02 08:47 
>а есть в конфигах апача такая строка:
>AddHandler cgi-script .cgi .pl  ...?
>pl там есть?
Есть!!!


"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 04-Июл-02 09:59 
>>а есть в конфигах апача такая строка:
>>AddHandler cgi-script .cgi .pl  ...?
>>pl там есть?
Ошибка та же  

"RE: Счетчик в perl  и cgi"
Отправлено niger , 05-Июл-02 14:10 
слушай, не знаешь такой простой программерский метод - берешь скрипт из него все вырезаешь после content-type, потом запускаешь если не проходит, то ошибка в настройках каталога||скрипта||\r\n||rwx если все работает, то вставляй частями код, или смотри errors

"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 08-Июл-02 10:18 
>слушай, не знаешь такой простой программерский метод - берешь скрипт из него
>все вырезаешь после content-type, потом запускаешь если не проходит, то ошибка
>в настройках каталога||скрипта||\r\n||rwx если все работает, то вставляй частями код, или
>смотри errors

Я уже писал, скрипт рабочий, это 100%, он в cgi-bin не запускается!


"RE: Счетчик в perl  и cgi"
Отправлено r7mka , 11-Июл-02 12:32 
Да, скрипт 100% рабочий!
По всем симптомам - некорректно прописан путь до perl.
Как проверить? Просто в shell: ./counter.cgi

"RE: Счетчик в perl  и cgi"
Отправлено Zhenya , 12-Июл-02 04:44 
>Да, скрипт 100% рабочий!
>По всем симптомам - некорректно прописан путь до perl.
>Как проверить? Просто в shell: ./counter.cgi
У меня прописано в файле #!/usr/bin/perl(это правильный путь, проверено), а из shell он конечно не выполняет.