Вопрос наверное простой, но сам ответа не нашел.
Не запускаются скрипты для которых нужен perl.
Если перепмсываю бинарник perl в директорий CGI,
и запускаю вручную
./perl script.pl - отрабатывает
Другие скрипты (шеловские) отрабатывают нормально.
Сам perl в системе в путях прописан.
(в скриптах в первой строке perl тоже прописан)Подскажите где чего прописать?
Видимо, попытка запустить на разделе, который примонтирован с опцией noexec.
>Видимо, попытка запустить на разделе, который примонтирован с опцией noexec.Врятли. Другие же скрипты идут, да и в httpd.conf
директорий cgi описан нормально.
Нет ли какой специальной настройки для запуска скриптов.
Типа: "Открывать с помощью..." - как в винде?
>>Видимо, попытка запустить на разделе, который примонтирован с опцией noexec.
>
>Врятли. Другие же скрипты идут, да и в httpd.conf
>директорий cgi описан нормально.
>Нет ли какой специальной настройки для запуска скриптов.
>Типа: "Открывать с помощью..." - как в винде?
sorry. глюк....
Скорее всего дело в "\r". Надо или перекодировать скрипты в koi8 или убрать "вручную" \r из первой строки скрипта.. или добавить опцию -w туда-же....
Привет,А окончание .pl прописано в httpd.conf как CGI приложение? По дефолту там только .cgi...
WWell,
Спасибо всем за советы, проблему решил.Не знаю, что konst имел ввиду под "/r" и "-w", но это натолкнуло на правильное решение.
Во встроенном редакторе в DECO оказалось что в конце всех строк добавлен символ "М". Я с таким уже сталкивался , но проблем это раньше не строило.
Убрал символ из нескольких первых строк и все пошло.
А .pl оказывается был ни причем, просто раньше перловых скриптов не было, а тут закачал два, а они с "сюрпризом".
Привет,"^M" в конце строки - визализация символа <CR>.
Скрипты под UNIX должны иметь в конце строки только <LF>, но не <CR>.
Посмотрите программку dos2unix, она вам поможет.
WWell,
>Спасибо всем за советы, проблему решил.
>
>Не знаю, что konst имел ввиду под "/r" и "-w", но это
>натолкнуло на правильное решение.
"\r" = ^M. Это и имел ввиду :)
В первой строке #!/bin/perl - путь к интерпретатору. Из-за \r, т.е.
#!/bin/perl\r - путь оказывается к несуществующему файлу.... Если добавить опцию #!/bin/perl -w\r - то путь правильный... Но это тупое решение :)
В перле это решается так:while(<>) { s/\r//g; print; }
cat file_bad | perl -ne 's/\r//g; print;' > file_good