- •Принципы работы арасне
- •Директивы сервера
- •Блочные директивы
- •Запуск нескольких экземпляров Apache
- •Виртуальные хосты
- •Управление виртуальными хостами
- •Перезапуск Apache
- •Использование файлов .Htaccess
- •Общий шлюзовый интерфейс (cgi)
- •Установка переменных среды
- •Браузеры
- •Обработчики
- •Аутентификация
- •Команды allow и deny
- •Выбор языка
- •Поддержка русскоязычных кодировок,
- •Переадресация
- •Сенсорные изображения
- •Кэширование
- •Var Значение этого атрибута — имя переменной.
Использование файлов .Htaccess
Если поместить директивы конфигурации не в файл httpd.conf, а в файл .htaccess, то это сработает. Суть механизма использования .htaccess состоит в том, что можно изменять директивы сервера, не перезапуская его. Это особенно ценно на узле, где множество пользователей ведут свои домашние страницы, но не имеют полномочий на отключение сервера и, естественно, на модификацию его файлов конфигурации. Недостаток использования файлов .htaccess заключается в том, что синтаксический анализ файлов производится при каждом случае доступа к серверу, а не один раз при запуске, что существенно снижает производительность.
Общий шлюзовый интерфейс (cgi)
Для того, чтобы обеспечить связь сервера с другими прикладными программами (например, с базами данных), используется так называемый общий интерфейс шлюзов (CGI). Программы, которые запускаются на стороне сервера и служат для связи с другими программами называются CGI-сценариями. На машине, где запущена программа-сервер необходимо создать каталог для хранения таких сценариев. Важно отметить, что данный каталог не должен являться подкаталогом корневого каталога документов, чтобы злоумышленник не смог добраться до сценариев и отредактировать их для своих плохих шуток или, что более опасно, проверить их на предмет наличия просчетов в защите. При работе с CGI-сценариями следует помнить о четырех важных моментах:
• Сценарий должен быть выполняемым с точки зрения операционной системы. Его необходимо запускать с консоли с теми привилегиями, которые есть у Apache.
• В файле конфигурации хоста должна быть директива ScriptAlias, указывающая на безопасное место вне Web-пространства. Как альтернативный вариант, нужно с помощью директивы Addhandler или Sethandler установить тип обработчика cgi-script.
• Если не использовалась директива ScriptAlias, то должна быть включена директива ExecCGI.
• Посторонние не должны читать CGI-сценарий. Здесь речь идет о разумной предосторожности, потому что если злоумышленники не доберутся до исходного текста, им будет труднее анализировать прорехи в защите.
Директивы
При конфигурировании сервера для работы с CGI-сценариями используются четыре директивы.
ScriptAlias <URL_nymь каталог>
Директива ScriptAlias в соответствии с запросом по URL, начинающимся с URL_путь, инициирует выполнение CGI-программы, находящейся в указанном каталоге. Лучше размещать этот каталог вне Web-пространтсва.
ScriptLog <имя_файла>
Отладка CGI-сценариев может оказаться довольно непростьм делом. Данной директивой задается файл регистрации, в который будет записываться информация о неполадках в CGI.
ScriptLogLength <число_байтов>
Этой директивой задается максимальный объем файла регистрации для отладки CGI-сценариев.
ScriptLogBuffer <число_байтов>
Этой директивой задается максимальный объем буфера (в байтах) для записи POST-запроса.
Установка переменных среды
В сценарии могут использоваться значения множества переменных среды (таких как GATEWAYJNTERFACE, CONTENT_TYPE, REMOTE_HOST, SERVER_PROTOCOL и многих других). Может случиться так, что необходимо будет передать сценарию значения некоторых переменных UNIX или своих переменных. Для этого существуют две директивы: PassEnv и SetEnv.
Директива SetEnv устанавливает переменную среды, которая затем передается в CGI-сценарии. Можно задать собственные переменные среды и присвоить им значения. Например, на одной машине может быть несколько виртуальных хостов и необходимо определить, какой именно вызвал сценарий. Для рассмотренного ранее примера можно определить в файле конфигурации свою собственную переменную среды VHOST:
SetEnv VHOST customers
или
SetEnv VHOST salesmen
Директива PassEnv передает переменную среды хоста CGI-сценарии. Если в сценарии, например, требуется информация о типе операционной системы, можно использовать директиву: PassEnv OSTYPE.
