« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга

Тестирование 64-битных приложений

ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
    Популярное
Функция AccessResource

Ajax - взгляд со стороны: разработка программ на протяжении двух лет

Разворачивание TraceDemo.exe.config

Мобильный выход в Internet через GPRS с Motorola Timeport 260

Точки входа MiniportXxx

Функция IsZoomed

Размещение полей таблиц и надписей к ним с использованием построителя формы

Моя собственная база данных

Использование сессий в PHP

Запуск внешнего приложения и ожидание его завершения




    Архив файлов



    Сообщества



    Документация

Статьи:: Интернет технологии :: CGI :: Среда CGI


отправить ссылку другу версия для печати  Обсудить на форуме

Среда CGI





Давайте подойдем вплотную к рассмотрению вопроса о CGI-программировании. Прежде всего, для написания эффективно работающих CGI-скриптов необходимо правильно настроить Web-сервер. Потом, с полной уверенностью, можно смело начинать написание CGI-программ. Да, именно так - настроить Web-сервер. Ведь новичкам склонно считать, что стоит только поместить CGI-программу в их директорию (вместе с сайтом), скажем на том же narod.ru и их можно будет вызывать ;-)

Web-сервер

При слове сервер в голове невольно возникает образ мощного постоянно включенного компьютера величиной с книжный шкаф. Web-сервер это вовсе не просто кусок мощного железа! Прежде всего, это программа, которая принимает запросы от клиентов вроде GET index.html и выдает ответ. Либо в ответе будет действительно index.html, 404, еще какое-нибудь сообщение об ошибке, либо ..., да, в общем, что угодно! Эта программа может быть запущена как демон, т.е. работать постоянно, или просто, для экспериментов Web-мастера на локальной машине. Как видите, Web-серверу вовсе не обязательно быть подключенным к глобальной сети :-)) Он может работать через специальный IP-адрес 127.0.0.1, являющийся петлей, то есть отправленные пакеты приходят самому себе. При этом сервер корректно работает: выдает нужные файлы, запускает CGI-скрипты и т.п. Немного отступив от основной темы сайта, рассмотрим настройку Web-сервера Apache for Linux. Поставляется Apache в стандартном дистрибутиве любого Linux. Рекомендую Slackware Linux 7x. Все настройки Apache изменяются в файле /path/to/apache/conf/httpd.conf. Основное на данном этапе - описание директорий и корня сервера. Корень Web-сервера есть некий подкаталог файловой системы, от которого Web-сервер начинает отсчет доступных клиентам файлов. Если корнем сервера в файловой системе является /home/httpd/html/, следовательно, на запрос http://servername документ по умолчанию (index.html) будет взят из /home/httpd/html/index.html. Вот типичный пример секции описания корня Web-сервера в файле httpd.conf:

DocumentRoot "/home/httpd/html"
 

Дальше сразу следует описание директории-корня:

<Directory "/home/httpd/html">
Options Indexes FollowSymLinks Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

где Options - дополнительные опции директории, Allow - позволяет блокировать доступ в эту директорию некоторым хостам, сразу всем или, как в примере - разрешить доступ со всех хостов. Такие же правила остаются и для описания других каталогов. Вообще в этом файле можно менять многие параметры работы сервера: нагрузку на сервер, описания виртуальных хостов, доступ в директории с авторизацией, страницы-сообщения об ошибках и еще уйму полезных вещей, которые будут обсуждаться позже.

cgi-bin

Обычно это название носит директория, из которой можно выполнять CGI-скрипты. Описывается по принципу описания обычной директории в файле httpd.conf. Небольшая особенность отличает ее от простой директории: в список опций добавляется директива ExecCGI, означающая разрешение на запуск программ из данной директории. Если директория cgi-bin находиться выше корня сервера в файловой системе, то используется ScriptAlias:

ScriptAlias /cgi-bin "/home/httpd/cgi-bin/"

<Directory "/home/httpd/cgi-bin/">
AllowOverride None
Options Indexes FollowSymLinks ExecCGI
Order allow,deny
Allow from all
</Directory>

После того, как вы правильно описали директорию cgi-bin можно попробовать написать простейший CGI-скрипт, если Вы этого еще не сделали, и положить его в директорию cgi-bin в файловой системе. Проверьте права доступа на директорию cgi-bin и на сам CGI-скрипт. Необходимо, чтобы и директория и скрипт имели включенным право на исполнение от имени пользователя Web-сервера (обычно это nobody): rwxr-xr-x. Запустите Web-сервер (httpd) и вызовите скрипт из броузера http://servername/cgi-bin/first.cgi.

Переменные окружения

Из выше написанного можно сделать вывод, что CGI-скрипт представляет собой самую обычную программу, в которой мы имеем совокупность кода, HTML-тегов и обязательное взаимодействие с Web-сервером. Оказывается, что CGI-скрипты имеют доступ к т.н. переменным окружения сервера (environment variables), из которых можно извлекать весьма полезную информацию о пользователе, сервере и о соединении. Почти сразу возникает вопрос о том, как принять данные, отправленные по методу GET. Ответ на этот вопрос как раз кроется в ENV. Вы обращаетесь к переменным окружения так: $ENV{'KEYWORD'} - из Perl, или getenv("KEYWORD") - из C/C++, где KEYWORD какое-либо из ключевых слов:

GATEWAY_INTERFACE Спецификация CGI
SERVER_NAME Имя сервера
SERVER_ADMIN Адрес e-mail администратора
SERVER_SOFTWARE Название и версия сервера
SERVER_PROTOCOL Версия протокола HTTP или HTTPS
SERVER_PORT Номер порта
REQUEST_METHOD Метод (GET или POST)
PATH_INFO Дополнительная информация скрипту (путь)
SCRIPT_NAME Имя скрипта
SCRIPT_FILENAME Полный путь к скрипту
QUERY_STRING Строка данных при методе GET
REMOTE_HOST Машина клиента
REMOTE_ADDR IP-адрес клиента
AUTH_TYPE Тип аутентификации
REMOTE_USER Имя пользователя
CONTENT_TYPE Кодировка данных из формы
CONTENT_LENGTH Размер присоединенных данных
PATH_TRANSLATED Конвертированная версия пути
HTTP_USER_AGENT Программа-броузер клиента
HTTP_REFERER ULR предыдущей страницы
HTTP_PROXY_CONNECTION Соединение через прокси
HTTP_IF_MODIFIED_SINCE Если документ был изменен
HTTP_HOST DNS имя хоста
HTTP_FROM Адрес электронной почты пользователя
HTTP_COOKIE Cookie броузера
HTTP_CONNECTION Тип установленной связи
HTTP_ACCEPT Перечень принимаемых mime-типов

Самыми часто используемыми переменными среды являются QUERY_STRING и REMOTE_ADDR. Часто необходимо запретить повторное голосование или накрутку счетчика. Кроме переменных окружения есть еще полезные, а порой необходимые возможности среды CGI, требующие настройки. Они будут подробно рассмотрены в следующей статье...




Рубрика: CGI




Инструменты Internet Explorer 8 Beta 2 для разработчиков.

Вебмастеру

В марте этого года мы уже писали об инструментах для разработчика в IE8 Beta 1, но IE8 Beta2 позволяет более полно использовать инструменты за счет значительных изменений в имеющихся функциях, а также новых возможностей. В принципе инструменты для разработчика должны обладать следующими свойствами: Быть интегрированными и простыми в использовании; Иметь визуальный интерфейсC их помощью можно быстро протестировать сайт.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 05.09.2008

Google Developer Day 2008 в Москве.

Мероприятия

Дата проведения: 28 октября 2008 г.; Место проведения: Амбер Плаза, Москва, Россия. Конференция для веб-разработчиков и разработчиков мобильных приложений в Москве. Узнайте, как наилучшим образом использовать инструменты разработки и API от Google, чтобы создавать социальные, мобильные и картографические приложения, как использовать AJAX/JavaScript инструменты и библиотеки от Google и многое другое из первых уст.


Подробнее... | Рубрика: Мероприятия | Добавлено: 05.09.2008

ТОП 10 самых раздражающих факторов для программиста.

Разное

Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…


Подробнее... | Рубрика: Разное | Добавлено: 03.09.2008

Остальные статьи:

Windows Server 7, 8 и 9
jQuery для JavaScript-программистов
Инновационный веб-броузер Google Chrome стартует уже сегодня
Windows 7: подход к производительности системы
Trac + Subversion @ Ubuntu: Revisited
[g]Vim в режиме Python: Рекомпиляция в Windows
Java + JSON. Пути к дружбе
Драйвер SQL Server 2005 для PHP
Типы данных в MySQL (сжатый справочник для PHP программиста)
PHP класс для работы с Яндекс.XML
Ошибки начинающих PHP разработчиков
Наследование шаблонов в Smarty
Особенности хранения сессий PHP в memcached
Internet Explorer 8 beta 2
9 правил для начинающего Ajax-разработчика
ExtJS 2.2 - полная поддержка Firefox 3, новые виджеты и другие нововведения


Цитата дня (все,добавить):



    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование

Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 95
Пользователей: 0