Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Perl оффлайновое тестирование


Автор: SelfDestructor 24.9.2003, 15:28
Можно ли как нибудь тестировать работу скриптов Перла на html страницах оффлайново?
В тексте страницы:

<FORM method=post action"cgi-bin/testform.pl">

в поддиректории cgi-bin относительно той дирректории, где у меня лежит эта страница лежит отлаженный скрипт testform.pl

однако он не запускается

неужели это нельзя тестировать не загружая на веб сервер?


Автор: Sun 24.9.2003, 15:55
Поставь себе на машину WEB-сервер и Perl. Настрой директорию cgi-bin и вперед.

Автор: SelfDestructor 24.9.2003, 16:10
Нашел http://phpclub.unet.ru/tutor/apache.html#ch1
У меня W2K. Скачал Апач 2.0.47.
Сильно ли будет различаться установка?

Автор: Sun 24.9.2003, 16:23
Вполне пристойная инструкция, думаю тебе подойдет. Кроме Апача тебе еще понадобится Перл.

Автор: SelfDestructor 24.9.2003, 16:34
При инсталяции спрашивает Network Domain. У меня пока нет никакого домена, да и пока не планирую - цель попрактиковаться в Перле. Машина подключена к инету. Не будет ли ничего страшного, если я несуществующий Network Domain укажу?

Перл уже стоит.


Автор: HalkaR 25.9.2003, 10:19
Нет - не будет.

Автор: KesTeL 25.9.2003, 12:20
Можно скачать пакет Denver, неплохая штука, как раз для отлаживая скриптов я считаю smile.gif

Автор: SelfDestructor 26.9.2003, 16:18
Установил, настроил, вроде бы все работает, но скрипт с формы все равно не запускается.
Форма в "c:\Program Files\Apache Group\Apache2\htdocs\"
Скрипт в "c:\Program Files\Apache Group\Apache2\cgi-bin\"

Эти дирректории прописаны в установках Апача. Но скрипт не запускается.

Автор: Sun 26.9.2003, 17:47
Так-же важно указать в скрипте путь к Перлу (в первой стороке)
#!c:\perl\perl.exe

Не знаю как на Windows, а на Unix скрипт не работает, если в конце каждой строки кроме символа конца строки стоит еще и перевод каретки (его вставляют редакторы вроде Notepad). Ну и конечно надеюсь что ты набирал скрипт не в Ворде smile.gif

Автор: HalkaR 26.9.2003, 17:50
В каком смысле не запускается?
Сам скрипт рабочий?
Заголовок print $q -> header(-type => "text/html", -charset => "Windows-1251"); выводишь?

Автор: Nobody 27.9.2003, 14:20
Цитата(Sun @ 26.9.2003, 17:47)
Так-же важно указать в скрипте путь к Перлу (в первой стороке)
#!c:\perl\perl.exe

Виндовоз не обращает внимания на эту строчку.

Автор: HalkaR 28.9.2003, 19:39
Nobody, обращает.

Автор: Nobody 28.9.2003, 20:57
HalkaR
Да? А я во всех скриптах пишу #!/usr/bin/perl и ничего, отлично работают. (Может, расскажешь, что это за папка такая в Винде - /?

Автор: NightGoblin 29.9.2003, 09:27
Nobody, HalkaR
AFAIK, в винде перл обращает внимание только на праметры программы, все остальное пропускает.

Sun
Цитата
Ну и конечно надеюсь что ты набирал скрипт не в Ворде smile.gif

Смех смехом, а не помню кто мне рассказывал про учителя информатики, который на уроке доказывал, что ВСЕ программы набираются исключительно в Ворде smile.gif

Автор: HalkaR 29.9.2003, 10:00
Nobody, если ты тестируешь скрипты в редакторе, либо на сервере с включенной опцией ScriptInterpreterSource registry, эта строка не на что не влияет. Если же эта опция выключена, то даже в Виндах надо писать путь к итерпритатору Перл.

Автор: MuToGeN 29.9.2003, 10:31
Строка #!что-то нужна только для никсов, причем далеко не для сервера, а для самой ОС, потому что CGI скрипты и CGI программы выполняются сервером через что-то a-la перловский system(). И серверу по барабану, что будет в первой строке, это проверяет уже ОС. Там можно с тем же успехом написать #!/usr/bin/php, и скрипт будет передан PHP парсеру. Под виндой результат будет такой же, что и с #!/usr/bin/perl, т.к. в виндах это дело выполняет не ОС, а сервер, в котором прописаны связи расширение - MIME тип - то, что будет выполнять скрипт

Автор: SelfDestructor 3.10.2003, 17:48
Скрипт рабочий, запускается и правильный результат выдает. Просто он не запускается с формы по нажатию клавиши. Приведу полностью html-код, возможно ошибка в нем. Это маленький учебный пример.

Код

<html>
<head><title>My Form</title></head>
<body>
<form method=post action"cgi-bin/testform.pl">
<b>Enter your name: </b>
<input name="user_name" value="" size=20>
<input type="submit" value="Register">
</form>
</body>
</html>


ПС Долго не мог добраться до инета. Всем ответившим спасибо.

Автор: HalkaR 3.10.2003, 18:43
не
Код
<form method=post action"cgi-bin/testform.pl">

а
Код
<form method="post" action="/cgi-bin/testform.pl">

Очепятка видимо. smile.gif

Автор: SelfDestructor 3.10.2003, 19:09
Пробела после action действительно не было, спасибо.
А теперь по нажатию кнопки, вместо исполнения скрипта, предлагается его даунлоадить.


Автор: HalkaR 3.10.2003, 19:22
Это уже глюк сервера. Настроить надо...

Автор: SelfDestructor 3.10.2003, 19:27
Так вот собственно и вопрос: как? =))))

Автор: Sun 3.10.2003, 22:16
Видимо что-то не так в тэге ScriptAlias. Может проблема в том что дира с пробелом прописана или ты кладешь скрипт не в эту диру что в ScriptAlias.

Автор: NightGoblin 6.10.2003, 07:55
А может скрипт неправильно Content-Type выдает? У меня такое было, когда новую строку между концом Content-Type и следующим заголовком забыл вставить...

Автор: Lonley 10.10.2003, 11:42
smile.gif
-=-=-
Есть маленький сервер

SmallServer
Small HTTP Server ver. 2.04
by Max Feoktistov
E-mail: max@feokt.spb.ru
© 1999-2001
Registred to
Root dir=C:\WWW\ok.ru def=index.htm port=80 Number of connections=5
-=-=--=-=
в нестройках очень прост удобен Сам им пользовался маленький rolleyes.gif

Автор: HalkaR 10.10.2003, 20:15
Lonley, на самом деле кромь Апача есть много других простых в настройке серверов (Апач далеко не самый простой). Это и Sambar Server, и Small Server, и Denver

Автор: Lonley 10.10.2003, 22:32
smile.gif
-=-=-=
Как бы то нибыло другие не тестил
Small поставил и он работает
-=-=-
но всеравно будут промблемы при переносе cкриптов
на ХОСТ под другую платформу вообще все ети права
но чертовски интересно

-=-=-=--= rolleyes.gif

Автор: korob2001 10.10.2003, 22:46
А есть ещё Xitami. Подробности тута:

http://denstelen.hop.ru/www/statty/programming/perl/perlz.htm

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)