Налаштування сервера для роботи з CGI-скриптами
Д ля виконання CGI-скриптів сервер Apache повинен бути відповідним чином налаштований. По-перше, сервер повинен бути зібраний з модулем виконання CGI-скриптів (зазвичай включений за замовчуванням), по-друге, в файлах настройки сервера слід вказати опції управління виконанням CGI-скриптів.
В даному розділі ми будемо мати на увазі, що сервер зібраний з модулем іспоненіе CGI-скриптів, тому состредоточім свою увагу на настройках сервера.
У версіях Apache, починаючи з 1.2.6 можна все директиви налаштувань сервера включати в один файл httpd.conf. Однак, традиційним способом налаштування, який успадкований від NCSA-сервера є використання трьох файлів настройки, які відповідають:- за настройку самого сервера (httpd.conf)
- за настройку ресурсів Web-вузла (srm.conf)
- за настройку управління доступом до ресурсів (access.conf)
Для віртуальних хостів всі директиви розміщуються у файлі httpd.conf в розділах опису кожного з віртуальних хостів.
У цьому файлі визначаються скрипти обробки нестандартних методів доступу (PUT або DELETE), а також опису роботи з CGI-скриптами для віртуальних хостів.
Для вказівки скрипта обробки нестандартного методу використовують директиву Script:
Script PUT put_script.cgi
Замість PUT тут можна вказати DELETE або інший метод доступу. При зверненні за цим методом доступу буде викликаний скрипт, який вказаний в якості другого аргументу.
Директиви для опису роботи зі скриптами для віртуальних хостів розміщують всередині контейнера VirtualHost:
Усередині цього контейнера можна розміщувати всі директиви, які розміщують для основного сервера в файлах httpd.conf, srm.conf, access.conf.
У цьому файлі визначається конфігурація ресурсів, якими управляє сервер. Скрипти входять до складу цих ресурсів. Дірікторію скриптів за замовчуванням визначає директива ScriptAlias:
ScriptAlias cgi-bin / usr / local / etc / httpd / cgi-bin
У даній директорії визначається синонім частини URL (перший параметр директиви), якому ставиться у відповідність реальний шлях в каталозі файлової системи обчислювальної установки, де експлуатується сервер (другий аргумент). Наприклад.
звертається до файлу:
Крім стандартного місця розміщення скриптів, яке визначається через ScriptAlias, скрипти можна розміщувати в довільному каталозі, всередині дерева каталогів сервера.
Дерево каталогів сервера отпределяется директивою DocumentRoot:
DocumentRoot / usr / kiae
або
DocumentRoot kiae
У першому випадку зазначений повний шлях від кореня файлової системи, а в другому відносний шлях, тобто шлях від домашнього каталогу сервера.
Для того, щоб можна було запускати скрипти потрібно додати handler (обробник) для запуску скриптів з заданого каталогу:
Крім цього з розширенням файлу можна пов'язати MIME-тип, за яким сервер розпізнає, що це скрипт:
AddType application / x-www-form-urlencoded .pl
В даному випадку ми призначаємо розширення * .pl для CGI-скриптів. Традиційним розширенням скриптів за замовчуванням явлется розширення * .cgi.
Найбільш важливою директивою в цьому файлі з точки зору виконання скриптів є Options. Вона використовується всередині контейнера Directory:
В даному випадку для каталогу / usr / local / etc / httpd / htdocs буде дозволено виконання CGI-скриптів.