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
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Базовый патент
Базовый патент А что же случилось с патентом Фарнсуорта? Мы можем вспомнить, что в 1870-х гг. компании Bell удалось вынудить Western Union уйти из телефонии с помощью судебной тяжбы из-за патента. Тем же способом и сам Сарнофф вытеснил AT&T из радиоиндустрии в 1920-х гг. И Фарнсуорт
24.4.1 Сценарий 1
24.4.1 Сценарий 1 Технология Message Digest (резюме сообщения) подойдет для сценария 1 — аутентифицировать отправителя и определить изменения в данных. Рассмотрим, как работает этот механизм (см. рис. 24.1):? Источник и назначение знают секретный ключ.? Источник выполняет вычисление,
24.4.5 Сценарий 2
24.4.5 Сценарий 2 В сценарии 1 безопасность реализована на уровне хостов. Но предположим, что имеется пользователь или роль, требующие другого уровня безопасности. Основы безопасности должны обеспечиваться на уровнях пользователя, роли и важной информации.Допустим, что
24.4.6 Сценарий 3
24.4.6 Сценарий 3 Сценарий 3 показан на рис. 24.4. Цель состоит в том, чтобы сделать невидимым для внешнего мира весь трафик, который компания XYZ посылает через недоверенную сеть. Для этого используется инкапсуляция в режиме туннеля, т.е. датаграммы шифруются и инкапсулируются
Линейный сценарий
Линейный сценарий Как уже было сказано, веб-аналитики описывают сценарий убеждения как последовательность шагов. Такие шаги посетитель делает или в самом начале, или уже в конце процесса конверсии. В первом случае это может быть:переход по ссылке из поисковой системы
Нелинейный сценарий
Нелинейный сценарий Маркетологи хорошо понимают покупательскую психологию и знают, что люди не любят выполнять действия в предписанном порядке. В процессе покупки у них возникает множество сомнений, которые необходимо разрешить. Вы сможете это сделать, только если
1.2. Базовый синтаксис и семантика Ruby
1.2. Базовый синтаксис и семантика Ruby Выше мы отметили, что Ruby — настоящий динамический объектно-ориентированный язык.Прежде чем переходить к обзору синтаксиса и семантики, упомянем некоторые другие его особенности.Ruby — прагматичный (agile) язык. Он пластичен и поощряет
Базовый класс System.Enum
Базовый класс System.Enum Особенностью перечней .NET является то, что все они неявно получаются из System.Enum. Этот базовый класс определяет ряд методов, которые позволяют опросить и трансформировать перечень. В табл. 3.9 описаны некоторые из таких методов, и все они являются
Базовый класс System.Array
Базовый класс System.Array Каждый создаваемый вами массив в .NET автоматически получается из System.Array. Этот класс определяет рад полезных методов для упрощения работы с массивами. В табл. 3.14 предлагаются описания некоторых из наиболее интересных членов указанного класса.Таблица
Базовый класс System.Exception
Базовый класс System.Exception Все исключения, определенные на уровне пользователя и системы, в конечном счете получаются из базового класса System.Exception (который, в свою очередь, получается из System.Object). Обратите внимание на то, что некоторые из указанных ниже членов виртуальны и
Абстрактный базовый класс FileSystemInfo
Абстрактный базовый класс FileSystemInfo Типы DirectoryInfo и FileInfo во многом наследуют свое поведение от абстрактного базового класса FileSystemInfo. По большей части члены класса FileSystemInfo используются для получения общих характеристик (таких как, например, время создания, различные
Базовый класс HttpApplication
Базовый класс HttpApplication Как уже говорилось, сценарий Global.asax динамически преобразуется в класс, который получается из базового класса System.Web.HttpApplication и обеспечивает те же функциональные возможности, что и тип System.Web.UI.Page. Описания соответствующих членов предлагаются в табл.
1. Оператор Select – базовый оператор языка структурированных запросов
1. Оператор Select – базовый оператор языка структурированных запросов Центральное место в языке структурированных запросов SQL занимает оператор Select, с помощью которого реализуется самая востребованная операция при работе с базами данных – запросы.Оператор Select
27.2. Сценарий backup_gen
27.2. Сценарий backup_gen Сценарий backup_gen приводится здесь вовсе не для иллюстрации методики резервирования каталогов. Этот сценарий является удачным примером совместного использования настроек, общих для нескольких сценариев.Сценарий backup_gen предназначен для создания
Базовый инстинкт
Базовый инстинкт Автор: Киви БердСколь важны базы данных в работе полиции и следователей-криминалистов, очевидно, наверное, для всех. Причём ещё с первых десятилетий XX века, когда американское ФБР возглавил Эдгар Гувер, в сыскном деле начал доминировать нехитрый принцип
Базовый контроль сертификата
Базовый контроль сертификата Базовый контроль сертификата выполняется для всех сертификатов последовательности и состоит из ряда проверок [167]. Проверки, использующие каждую из четырех групп переменных состояния, выполняются, чтобы определить, не является ли