Поиск

Первая CGI-программа

Только теперь, после всех наших предупреждений, контрольных списков и полезной информации, можете набрать вашу первую CGI-программу. Она приведена в листинге 17.1.

Наберите и сохраните эту программу в файле hello. Если согласно контрольному списку требуется определенное расширение имени файла — укажите его, т.е. если необходимо использовать расширение .cgi, назовите сценарий hello. cgi. Если же требуется расширение .pl, сохраните сценарий в файле hello.pl.

Вы же действительно выполнили все требования контрольного списка и получили необходимую информацию, не правда ли?

Проведем анализ программы.

  • Строка 1. Это стандартная строка. Чтобы сценарий работал, необходимо, чтобы путь к интерпретатору Perl соответствовал тому, что вы записали при проверке контрольного списка. Ключ -w включает режим выдачи предупреждений.
  • Строка 2. Модуль CGI, используемый программой. Оператор qw(:standard) определяет стандартный набор функций модуля, импортируемого в программу.
  • Строка 3. Директива use strict ужесточает стилистический контроль. При этом не имеет значения, относится наша программа к CGI или нет.
  • Строка 5. Из модуля CGI импортируется функция header. Она выводит стандартный заголовок, необходимый для обработки сервером информации, получаемой от CGI-программы.
  • Строка 6. После вывода заголовка любая информация, выведенная CGI-программой, нормально отображается броузером. В нашем случае, если программа заработает, броузер выведет фразу Hello, World.

И это все? Ну, не совсем. Еще нужно поместить CGI-программу на сервер и протестировать ее. Пока же сделано лишь полдела.

Установка CGI-программы на сервер

Способ установки CGI-программы главным образом зависит от типа используемого сервера, наличия локального или FTP-доступа к нему и т.д. В следующих разделах описаны различные варианты установки CGI-программ.

Локальный доступ к Web-серверу в UNIX

Если вы можете войти в UNIX-систему Web-сервера с помощью программ telnet, rlogin или каких-нибудь других, воспользуйтесь следующими инструкциями.

  1. Поместите CGI-программу hello.cgi (или hello.pl) на UNIX-сервер с помощью FTP. Можете сразу набрать программу в текстовом редакторе vi.
  2. Переместите CGI-программу в нужный каталог с помощью команд mv или ср. Каталог вы должны были определить при проверке контрольного списка.
  3. В UNIX необходимо сделать файл выполняемым. Для этого воспользуйтесь следующей командой:

    При необходимости вместо hello.cgi нужно подставить другое имя файла, например hello.pl. С помощью команды chmod устанавливаются права доступа к файлу. В нашем случае мы разрешаем изменять файл его владельцу, а читать и запускать — любому пользователю системы (так принято для CGI-программ).

только FTP-доступ к Web-серверу в UNIX

При наличии лишь FTP-доступа следуйте приведенным ниже инструкциям.

  1. С помощью FTP-клиента поместите программу hello.cgi (или hello.pl) в каталог CGI-программ сервера. Вы должны были определить имя этого каталога при проверке контрольного списка. Пересылайте файлы в текстовом режиме или в режиме ASCII. He пересылайте CGI-программу на сервер в двоичном режиме. В утилите FTP для пересылки файлов по умолчанию используется текстовый режим.
  2. Сделайте CGI-программу выполняемой. В FTP для этого нужно набрать команду

    Вместо hello.cgi используйте реальное имя файла программы. С помощью этой команды устанавливаются права доступа к файлу. В нашем случае мы разрешаем изменять файл его владельцу, а читать и запускать — любому пользователю системы.

  3. Если у вас графический FTP-клиент, такой как Cute-FTP, вам нужно найти команду с названием Set Permissions, Change Mode, Set File Attributes или Set File Access Mode и изменить атрибуты файла с ее помошью.
  4. Какой бы у вас ни был доступ, у владельца файла должны быть права на запись, чтение и выполнение файла, а у его группы и остальных пользователей — на чтение и выполнение. Если программа FTP-клиента требует числовое обозначение прав доступа, введите 755.
Локальный доступ к Web-серверу в Windows NT

Если у вас имеется локальный доступ к файловой системе Web-сервера в Windows NT, поместите CGI-программу в нужный каталог, имя которого вы должны были узнать при проверке контрольного списка. Для этого можно воспользоваться программой Проводник или любой другой утилитой копирования файлов.

Только FTP-доступ к Web-серверу в Windows NT

При наличии лишь FTP-доступа к Web-серверу в Windows NT используйте FTP-клиент, чтобы поместить программу hello.cgi (или hello.pl) в каталог программ CGI сервера (его имя вы должны были узнать при проверке контрольного списка). Пересылайте файлы в текстовом режиме или в режиме ASCII. He пересылайте CGI-программу на сервер в двоичном режиме. В утилите FTP для пересылки файлов по умолчанию используется текстовый режим.

Выполнение CGI-програллллы

Чтобы посмотреть, выполняется ли ваша программа, запустите броузер и укажите ему URL каталога CGI с именем программы, например:

http://www.myserver.com/cgi-bin/hello.pl

Вместо hello.pl введите реальное имя программы, например hello.cgi. Произойдет одно из двух.

  1. Броузер загрузит страницу с сообщением Hello, World.
  2. Будет выведена страница с сообщением об ошибке.

Если CGI-программа по какой-то причине не работает — изучайте следующий раздел, который целиком посвяшен проблемам отладки CGI-сценариев. Процедура установки и отладки CGI-программ очень сложная. Не прекращайте отладку программы, пока она не будет в полном порядке. После этого вам больше не придется с нею мучиться.

Если CGI-программа заработала, как и ожидалось, примите поздравления! Вы успешно установили Web-сервер, CGI-программу на нем и добились того, что она заработала. Все равно обязательно прочитайте следующий раздел, и вы узнаете, что делать, если CGI-программа не работает.