Создание серверных приложений на языке PERL


WWW,CGI-специфика





Q: Я положил скрипт на сервер, ввожу его путь в браузер, но вместо того,

чтобы выполнять скрипт, браузер выводит его исходный текст.


A: Чтобы сервер запускал скрипт и выдавал результаты его работы, необходимо

объяснить серверу, что этот файл -исполняемый. Существующее в

unix-системах понятие "атрибуты файла" отличается от атрибутов в DOS/Windows,

и в unix исполняемый файл определяется не расширением, а атрибутом.

Если сервер работает на unix-системе, необходимо проставить на

файлатрибуты исполняемого файла. Это делает команда "chmod 0755 file",

если вы работаете через telnet или ssh, или же продвинутый FTP-клиент типа

CuteFTP или FAR ftp plugin. Атрибуты файла, который могут исполнять

все желающие (в том числе и сервер), выглядят в буквенном представлении, как

-rwxr-xr-x

Если вы работаетев win32 среде, достаточно определить программу,

запускающую файлы с расширением, которое вы даете скриптам - например, cgi.

Для этого нужно в windows explorer'е дважды кликнуть по файлу .cgi, и

выбрать perl\bin\perl.exe в качестве запускающей программы.



Q: При попытке запустить скрипт происходит 500 Internal Server Error! Что это за

ошибка?


A: Это, строго говоря, просто сообщение об одной из ошибок, приведших к

невозможности нормального выполнения скрипта. Узнать что же привело к этому можно в большинстве случаев из логов сервера.(*)


Чаще всего возникает в следующих случаях:


1) в первой строке отсутствует или неправильно указан путь к perl. обычно это

#!/usr/local/bin/perl или #!/usr/bin/perl


2) Файл со скриптом содержит DOS-овые концы строк 0x0D 0x0A. В юниксе конец

строки- только 0x0A. Чтобы исправить это, воспользуйтесь соотв. возможностью

редактора FAR(shift-f2, asUnix text), или призакачке скрипта на ftp

используйте ASCII-режим вместо бинарного.


3) Скрипт невыводит ничего во время работы, или не выводит заголовок.

Hеобходимо, чтобы он выводил хотя бы content-type заголовок, например:


print "Content-type: text/html\n\n";




Начало  Назад  Вперед



Книжный магазин