29.4.1. Базовый сценарий cgi

29.4.1. Базовый сценарий cgi

Все сценарии обычно находятся в каталоге cgi?bin Web–сервера, хотя подобное размещение может быть изменено. Для изменения размещения сценариев и подключения сервера cgi следует обратиться к файлам конфигурации srm.conf и разделу ScriptAlias. Все сценарии должны иметь расширение .cgi. Все документы обычно размещаются в каталоге html либо htdocs и имеют расширение .html. Для всех сценариев требуется установить следующие права доступа:

chmod 755 script.cgi

По умолчанию любые подключения к Web–странице обычно осуществляются от имени пользователя nobody, хотя это можно изменить с помощью файла конфигурации httpd.conf. Несмотря на то, что в этой главе не рассматриваются вопросы настройки Web, некоторые моменты все же стоит отметить. В частности, неплохо было бы проверить, отключено ли поле пароля "nobody". Если это так, запрещается подключение для произвольных пользователей, в то время как пользователь nobody физически подключен к терминалу. Для отключения пароля пользователя nobody в соответствующее поле пароля просто вставьте звездочку (файл пароля /etc/passwd).

Если какой?либо из сценариев не функционирует, первым делом нужно просмотреть журнальные файлы ошибок. В этих файлах содержатся четкие описания всех возникших ошибок. Если применяется сервер apache, журнальные файлы обычно находятся в каталоге /etc/httpd/logs либо /usr/local/apache/logs, в зависимости от того, в каком месте системы устанавливается Web–сервер. Сценарии могут быть также протестированы путем выполнения их запуска из командной строки. Конечно, в этом случае вы получите только текстовый вывод, но он окажет вам помощь при дальнейшей отладке.

А теперь приступим к созданию сценария cgi. Введите указанный ниже текст в файл, назовите его test.cgi и сохраните в каталоге cgi?bin. He забудьте установить для сценария права доступа 755.

$ pg firstpage.cgi

#!/bin/sh

#firstpage.cgi

#отображение текстовой страницы

echo "Content?type: text/html"

echo ""

echo "<HTML>"

echo "<H1><CENTER> THIS IS MY FIRST CGI PAGE</CENTER></H1>"

echo "<HR>"

echo "<H2><CENTER>STAND?BY TO STAHD?TO! </CENTER></H2>"

echo "</HTML>"

В первой строке (как вы уже, наверное, знаете) указывается местоположение интерпретатора shell. Первая строка, содержащая команду echo, сообщает серверу о том, что это заголовок MIME; вторая команда echo сообщает о новой строке. Вывод сценариев cgi не будет осуществляться, если не указана новая строка после заголовка MIME.

На этом этапе отображается начальный тег <html>, информирующий броузер о том, что весь документ представлен в формате HTML. При этом могут отображаться различные символьные шрифты, размеры которых варьируются от наибольшего, <Н1>, до наименьшего — <Нn>. Обычно шрифт наименьшего размера, который хорошо различим, задается тегом <H6>. Для придания красивого внешнего вида

выполняется центрирование текста на странице. Затем отображается горизонтальная линия. В дальнейшем снова используется тег <H2> для определения размера шрифта, и тег <center> — для центрирования текста "Stand?By To Stand?To". Последняя строка завершается тегом <HTML>.

Если вы забудете указать какие?либо закрывающие теги, не беспокойтесь — вы их вскоре обнаружите, поскольку при попытке загрузки в окно броузера подобного документа открывающие теги, для которых отсутствуют закрывающие, будут отображены на экране.

Теперь для отображения документа введите URL:

http://ваш_cepвep/cgi?bin/firstpage.cgi

Вместо параметра ваш_сервер подставляется фактическое имя сервера.

Если вы работаете в сети, и при этом на экране отображается сообщение "DNS lookup failure" ("Сбой при поиске DNS"), это означает, что броузер, возможно, пытается подключиться к Internet для осуществления поиска заданной страницы. Измените параметры настройки броузера, позволяющие обойти proxy–сервер при обращении к локальным компьютерам и перезагрузите броузер.

На рис. 29.2 демонстрируется внешний вид Web–страницы.

Рис. 29.2. Результат выполнения сценария firstpage.cgi