Что не должны разрешать конфигурационные файлы apache. Установка и настройка сервера Apache. Включить виртуальный хост в Apache

Установка и настройка локального web-сервера Apache, PHP, MySQL под операционную систему Windows

учебное пособие

2.3. Настройка файла конфигурации Apache

Apache по праву считается одним из лучших веб-серверов, однако заставить его правильно работать не каждому под силу. В лучших традициях *nix-программ все настройки осуществляются редактированием текстового файла httpd.conf. Значительно облегчить конфигурирование может графическая оболочка ApacheConf 3.3: http://apache-gui.com, http://www.zecos.com, [email protected]. ApacheConf 3.3 позволяет редактировать файл httpd.conf, используя графический интерфейс (GUI):

Все параметры сервера в утилите удобно разбиты на разделы (глобальные параметры, виртуальные хосты и т.п.), имеет мастера по установки SSI, PHP и множество дополнительных функций. Начинающие администраторы смогут улучшить свои знания Apache - многие директивы снабжены комментариями, имеются подсказки на русском языке. Опытным пользователям программа поможет сэкономить время при настройке. Поддерживаются версии сервера Apache 2 и 1.3. Редактировать можно как локальный файл httpd.conf, так и расположенный на FTP-сервере.

Конфигурирование Apache -- непростое занятие. К счастью, все директивы сервера подробно описаны в сопроводительной документации, включенной в дистрибутив. Существует и online-версия руководства. Она доступна по адресу http://httpd.apache.org/docs/ . Главное достоинство документации на сайте в том, что по ней можно проводить поиск, что недоступно при использовании руководства из дистрибутива.

Следует в точности выполнять перечисленные ниже шаги, не пропуская и не откладывая ни одного.

Создайте в папке home папку localhost:

В папке localhost будет храниться содержимое главного хоста Apache-того, который будет доступен по адресу http://localhost.

В папке localhost следует создать папки cgi-bin и www:

В папке cgi-bin будут храниться CGI-сценарии, а в папке www - программы на PHP и разные документы. Обратите внимание CGI-сценарии - это не совсем то же самое, что PHP - скрипты. Поэтому они должны располагаться раздельно.

Для настройки Apache необходимо открыть файл D:usrApacheconfhttpd.conf при помощи Блокнота или Notepad++. Это единственный файл, который нужно настроить. Прежде чем начать редактирование данного файла рекомендуется сделать его резервную копию (например, с названием: httpd.conf рез коп исх).

Приступим к настройке.

1. Первую опцию, которую мы установим, будет путь к Apache. Измените ее следующим образом: ServerRoot "/usr/Apache"

3. Директиву BindAddress использовать не рекомендуется, поэтому оставьте ее закомментированной:

4. Раскомметируйте строку подключения модуля: LoadModule rewrite_module modules/mod_rewrite.so

5. В конец списка загружаемых модулей добавьте строку: LoadModule php4_module "/usr/php/sapi/php4apache.dll"

Эта строка подключает модуль PHP для правильной работы с Apache. Если его не подключить, то могут возникать проблемы при работе со скриптами.

6. После подключения модуля PHP добавьте две строчки:

#For the module mod_rewrite

# Reconstruction of the complete module list from all available modules

# (static and shared ones) to achieve correct module execution order.

AddModule mod_setenvif.c

поместите перед словами:

# Dynamic Shared Object (DSO) Support

Перейдем ко второму разделу файла httpd.conf - конфигурация сервера по умолчанию.

8. В опции ServerAdmin следует указать адрес, на который следует направлять сообщения в случаи неправильной работы сервера:

ServerAdmin [email protected]

9. Опция ServerName задает имя сервера:

ServerName localhost

10. Опция DocumentRoot указывает каталог, в котором расположены web-страницы: DocumentRoot "/home"

11. Опция и используется для применения опций к конкретному каталогу. Замените следующий блок:

# doesnt give it to you.

Options Indexes FollowSymLinks MultiViews

# "AuthConfig", and "Limit"

AllowOverride None

Order allow,deny

# This may also be "None", "All", or any combination of "Indexes",

# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".

# Note that "MultiViews" must be named *explicitly* --- "Options All"

# doesnt give it to you.

Options Indexes FollowSymLinks Includes MultiViews

# This controls which options the .htaccess files in directories can

# override. Can also be "All", or any combination of "Options", "FileInfo",

# "AuthConfig", and "Limit"

AllowOverride All

# Controls who can get stuff from this server.

Order allow,deny

В этом блоке была настроена папку home. Давайте разберем значения опций.

Директива Options определяет, какие особенности сервера являются доступными в данном каталоге:

Indexes - если запрошенный URL соответствует папке, и в этой папке нет ничего соответствующего DirectoryIndex (например, index.html), то сервер выведет содержание данной папки;

FollowSymLinks - разрешить переходы по символическим ссылкам (создаваемым командой ln);

Includes - разрешить SSI (Server Side Includes);

MultiViews - разрешить поддержку многих языков.

Директива AllowOverride позволяет отменять, при помощи файлов.htaccess, ранее установленные директивы. Если данная директива установлена в None, то файл.htaccess игнорируется, если же в All, то все директивы.htaccess файла будут допускаться.

Директивы Order allow,deny и Allow from all определяют, кто может получать, что бы то ни было с данного сервера.

12. Закомментируйте следующий модуль:

#

# UserDir "D:/usr/Apache/users/"

DirectoryIndex index.html index.htm index.php index.shtml index.shtm

14. В блоке:

Order allow,deny

16. Если вы желаете, чтобы в сообщениях об ошибке высвечивался e-mail администратора, то замените в следующей опции On на Email:

ServerSignature EMail

17. Находим такую строку:

ScriptAlias /cgi-bin/ "D:/usr/Apache/cgi-bin/"

и заменяем ее другой строкой: ScriptAlias /cgi-bin/ "/home/cgi-bin/"

Этот каталог cgi-bin, в котором должны располагаться ваши CGI - скрипты. Он был создан в директории home.

18. Установите следующие опции для папки cgi-bin:

AllowOverride All

19. Ищем строку AddType application/x-tar .tgz, она расположена после настроек приоритета языков. Перед этой строкой необходимо добавить блок подключения php:

#AddType application/x-httpd-php phtml php3 php

#ScriptAlias /__php_dir__/ "/usr/php/"

#Action application/x-httpd-php "/__php_dir__/php.exe"

Первая строка указывает расширения файлов, которые должны обрабатываться PHP интерпретатором.

Во второй строке связывается настоящий путь к PHP и псевдоним, а в третьей указывается файл интерпретатора.

Эти строки пока следует закомментировать, иначе могут возникнуть ошибки. После настройки PHP, комментарии нужно будет снять.

20. Далее настраивают SSI -- очень мощный и в то же время очень простой инструмент, способный помочь при создании и поддержке сайта. С помощью SSI-директив, их еще называют SSI-вставками, можно включать в страницу другие файлы, результаты работы программ, значения системных переменных и пр. Преимущества этой технологии особенно проявляются, когда нужно поддерживать достаточно большой по объему сайт, который имеет определенную структуру и повторяющиеся по всему сайту элементы. Для подключения SSI находят строки, снимают с них комментарии и изменяют, как показано ниже: AddHandler cgi-script .cgi

Затем надо раскомметировать и изменить:

AddType text/html .shtml .shtm

AddHandler server-parsed .shtml .shtm

Этими директивами настраиваем SSI. Apache будет обрабатывать файлы с указанными расширениями процессором SSI. Это наиболее стандартный ход. Впрочем, вместо.shtml можно написать.html или.phtml - главное, чтобы расширение было идентично расширению, которые использует для обозначения использующих SSI файлов провайдер.

И, естественно, нужно включить сам "механизм" вложения, а для этого добавить к команде Options слово Includes. Тогда строка с командой Options может принять вид: Options Indexes FollowSymLinks Includes

Эта функция разрешает Apache передачу файлов, не сопровождающихся http заголовками.

21. Для использования карт изображения и карт типов раскомметируйте следующие строки:

AddHandler imap-file map

AddHandler type-map var

22. В самый конец файла добавьте строку:

Include conf/vhosts.conf

Сохраните все изменения файла httpd.conf. Создайте резервную копию рабочего файла httpd.conf (например, с названием: httpd.conf рабочий). Это может оказаться полезным при восстановлении системы.

23. Создайте в папке D:usrApacheconf файл vhosts.conf:

Допустим, что Вам придется работать с несколькими серверами. Разработчики Apache предусмотрели и этот вариант. При настройке Apache, изначально сделано так, чтобы с появлением нового сервера на Вашем компьютере его было легко подключить и настроить. Для этого при настройке Apache создают файл vhosts.conf и в конец файла httpd.conf добавляют строчку «Include conf/vhosts.conf», которая подключает этот файл.

Добавление нового сервера подробно описано в разделе 2.4.

24. Теперь перезапустите Apache: Пуск > Все программы > Apache HTTP Server > Control Apache Server > Restart.

Если все сделано верно, то откроется консольное окно:

В консольном окне сообщается, что Apache запущен, модуль PHP 4.3.9RC3 для правильной работы Apache с PHP установлен и работает.

Если же имеются ошибки, то в течение 30 секунд оно будет запущено и в нем будет написана ошибка, по которой Apache не может быть запущен, например:

Сообщается, что на линии 327 файла httpd.conf имеется ошибка. Ошибка часто возникает, если забыли скопировать файл php4ts.dll в каталог C:WindowsSystem32.

Ошибка может возникнуть также, если забыли создать файл vhosts.conf и хотя бы один виртуальный хост.

Автоматизированная настройка TCP/IP, BOOTP. Динамическая настройка (DHCP)

Протокол ВООТР проектировался для того, чтобы протоколы IP (Internet Protocol) и UDP (User Datagram Protocol) могли использоваться для передачи информации компьютерам, желающими настроить свою конфигурацию. Компьютер, сгенерировавший запрос...

Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9

Apache HTTP-сервер - відкритий веб-сервер Інтернет для UNIX-подібних, Microsoft Windows, Novell NetWare та інших операційних систем. На сьогодні є найуживанішим Веб сервером мережі Інтернет...

Редкий случай, когда веб-сервер используется с дефолтными настройками. Обычно, перед запуском его требуется настроить под конкретные задачи. Для этого нужно отредактировать конфигурационный файл httpd.conf...

Инсталляция, настройка и сопровождение Web-сервера Linux

ServerType Для этой директивы значением по умолчанию является ServerType standalone. Серверы, работающие в автономном режиме (standalone), запускаются из загрузочных сценариев при запуске системы...

Файл конфигурации представляет собой XML - файл, в котором хранятся данные, необходимые для подсветки синтаксиса. Файл состоит из корневого элемента language, который в свою очередь содержит 3 дочерних элемента: style, keywords и types...

Написание текстового редактора с подсветкой синтаксиса

Для начала создадим 3 переменных типа xmlChar: xmlChar *uri; // используется для хранения атрибутов xmlChar *color; // используется для хранения значения цвета xmlChar *font; // используется для хранения значения шрифта Загрузка данных из XML файла происходит в функции...

Понятие и использование Network File System

В простейшем случае, файл /etc/exports является единственным файлом, требующим редактирования для настройки NFS-сервера...

Представление графических данных. Преобразование форматов. Использование специальных эффектов

Рисунок 2.1 - Схема открытия файла. На рисунке 2.2 приведен алгоритм открытия файла формата TGA. Рассмотрим его подробнее. Сначала происходит открытие файла с именем ИмяФайла. tga...

Проект разработки HTTP-сервера

Чтобы запустить установочный файл (install.php), необходимо зайти в Moodle используя веб-броузер или просто наберите http://localhost/install.php в строке адреса (Инсталлер будет использовать cookie. Если Вы увидете всплывающее окно с сообщением об этом...

Разработка Web-сайта для кафедры "Вычислительная техника и информационные технологии"

Самый распространенный Web-сервер в мире - это Apache. По данным компании Netcraft, общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет...

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

Для корректной работы электронного обмена, в программе ЗУП должны быть обязательно заданы определенные настройки. В частности, должна быть введена информация об отделении ПФР, с которым предполагается осуществлять обмен данными...

Разработка системы сбора и обработки данных

Для моделирования системы в среде MAX+plusII необходимо разработать файл конфигурации на языке AHDL. В него войдут такие мега-функции, как: lpm_counter - счетчик, необходимый для деления частоты...

Файл конфигурации представляет собой XML-файл, в котором хранятся данные, необходимые для подсветки синтаксиса. Файл состоит из корневого элемента language, который в свою очередь содержит 3 дочерних элемента: style, keywords и types...

Разработка текстового редактора с подсветкой синтаксиса языков программирования

Для начала создадим 3 переменных типа xmlChar: xmlChar *uri;//используется для хранения атрибутов xmlChar *color;//используется для хранения значения цвета xmlChar *font;//используется для хранения значения шрифта Загрузка данных из XML файла происходит в функции...

Понятия: конфигурирование, директивы. Конфигурационные файлы, директивы. Основные конфигурационные директивы. Серверные процессы. Контроль доступа к каталогам и файлам.

Конфигурирование (лат. configuratio - взаимное расположение) - особый логико-методологический прием, мыслительная техника синтезирования разнопредматных знаний, различных представлений об одном и том же объекте.

Директивы, ж. (от латин. directio - направление) . Общее руководящее указание, даваемое высшим органом подчиненному (сервером для рабочей станции и т.д.).

Конфигурационный файл- файл с достаточно простым форматом. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом # является комментарием и игнорируется.

Apache конфигурируется изменением служебных файлов в каталоге /etc/httpd/conf/. Главный конфигурационный файл веб-сервера -httpd.conf. Конфигурационные директивы могут размещаться в различных файлах, которые включают в основной конструкцией Include имя_файла.conf.

Eсли размещение какого-либо файла или каталога в конфигурационном файле указано неявно (явное размещение начинается с корня файловой системы - с символа "/") Apache использует каталог, заданный в директиве ServerRoot для определения реального местоположения цели.

Описание модулей и конфигурационных директив Apache

Директивы могут быть использованы на следующих уровнях:

A уровень конфигурации сервера - директива может быть использована только в главном конфигурационном файле.

V уровень - директиву можно использовать по-разному для разных виртуальных хостов.

D уровень - для любого каталога директивой этого уровня можно установить свои настройки.

H уровень файлов.htaccess - директиву разрешено использовать в файлах.htaccess в местах, где они разрешены сервером.

В любой точке использование в директиве параметра filename обозначает абсолютный (начинается с "/") или относительный от каталогаServerRoot путь к файлу.

CORE - ядро веб-сервера (основной модуль Apache)

AccessConfig filename

Устанавливает расположение файла конфигурации. Системный файл конфигурации по умолчанию - conf/access.conf; для отмены чтения этого файла рекомендуется устанавливать /dev/null.

AccessFileName file file ...

Устанавливает имена файлов доступа, используемых для настройки конфигурации «на лету» по умолчанию - .htaccess.

AddModule module module ... [A]

Активирует динамически загружаемый модуль, поставляемый в виде отдельного библиотечного файла.

AddModule module module ...

Активирует динамически загружаемый модуль, поставляемый в виде отдельного библиотечного файла или скомпилированного внутрь главного модуля httpd.

AllowOverride param param ...

Устанавливает правила, по которым Apache использует директивы внутренних файлов.htaccess;

None - игнорирует;

All - использует все директивы;

Options - разрешает использовать Options и XBitHack;

Indexes - директивы управления индексированием каталогов;

FileInfo - директивы управления типами файлов и их обработчиками;

AuthConfig - директивы доступа к каталогам Auth*;

Limit - директивы allow/deny/order.

AuthName realm

AuthType type

Используется для указания способа запроса и передачи имени пользователя и пароля для доступа к каталогам веб-сайтов. Чаще всего используют Basic, реже - Digest и другие.

BindAddress address [A]

Задаёт адрес, на котором Apache будет принимать соединения. Можно использовать имя хоста, IP-адрес или *.

ClearModuleList [A]

Директива очищает список загруженных модулей. После данной директивы нужно использовать директивы AddModule для работы с необходимыми модулями.

ContentDigest on|off

Включает или выключает пересылку MD5 хэша данных. Вычисляется для всех передаваемых страниц и не кешируется.

CoreDumpDirectory dirname [A]

Указывает Apache на каталог, в котором будут сохраняться файлы дампа памяти (core), создаваемые при аварийных ошибках.

DefaultType mimetype

Задаёт тип MIME, отправляемый клиентам, если Apache не может определить тип через файл mime.types или директивы AddType. По умолчанию установлен как text/plain.

...

Объединяет группу директив, задающих поведение Apache при обращениях к документам, расположенным в данной директории. Разрешено использовать маски имён - символы *, ? по правилам shell. В случае использования маски перед именем помещается знак тильда ~.

...

Определяет группу каталогов заданных регулярным выражением и устанавливает правила работы Apache с каталогами и файлами этой группы.

DocumentRoot dirname

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

ErrorDocument filename|string|URL

В случае ошибки делает редирект на указанные страницы. Также можно установить комментарий к возникшей ситуации, который должен начинаться с одной кавычки. Пример:

ErrorDocument 500 http://foo.example.com/cgi-bin/tester

ErrorDocument 404 /cgi-bin/bad_urls.pl

ErrorDocument 401 /subscription_info.html

ErrorDocument 403 "Sorry can"t allow you access today"

ErrorLog filename

Имя файла протокола ошибок. Если строка параметра начинается с (/), то путь к файлу нужно указывать от ServerRoot; если она начинается с (|), тогда сообщения ошибок передаются указанной команде на стандартный вход. В частности, таким образом, например, можно реализовать сохранение журнала сразу в SQL СУБД или сохранять их сразу сжатыми, передавая, для примера, на gzip. Apache версии 1.3 и выше по умолчанию выводит сообщения в syslog, если система поддерживает такую возможность; но это можно запретить используя syslog:facility.

...

Контроль доступа к файлу. Разделы обрабатываются в том же порядке, что и в файле конфигурации, после того, как прочитаны разделы директивы и файлы.htaccess, но перед тем, как прочитаны разделы директории . Аргумент должен содержать имя фала или маску, в которой "?" - любой символ, "*" - любая строка. С дополнительным символом ~ могут использоваться расширенные рег. выражения (см REGULAR EXPRESSIONS секцию в grep(1)) Например: будет соответствовать общеиспользуемым в Internet графическим файлам.

...

То же что и , но использует регулярные выражения.

Имеет отношение только к запуску Apache и отфоркиванию процессов в окружении и с правами соответствующему данному имени.

HostNameLookups on|off|double

Управляет возможностью определения имени хоста посетителя по реверсному ДНС. Работает медленно и по умолчанию считается отключённой. Double указывает, что имя хоста должно быть подвергнуто дополнительной проверке на соответствие этого имени IP адресу отправившего запрос хоста.

IdentityCheck on|off

Включение RFC1413 аутентификации. Включение функции значительно увеличит время доступа к серверу.

...

и должны быть выполнены только если данный параметр определён во внутренних структурах Apache. Предшествующий параметру знак [!] указывает, что блок директив будет прочтён только если параметр не определён.

...

Указывает, что директивы, помещённые внутри блока, образованного парой директив и должны быть выполнены только если данный модуль откомпилирован в Apache. Предшествующий модулю знак [ !] указывает, что блок директив будет прочтён только если параметр не определён.

Include filename [A]

Директива позволяет включать файлы конфигурации в конфигурацию сервера.

KeepAlive on|off [A]

Разрешает клиенту последовательно запрашивать несколько файлов без разрыва TCP соединения.

KeepAliveTimeout sec [A]

Указывается время (в секундах) до разрыва TCP соединения, которое Apache будет ждать следующего запроса от клиента.

...

Позволяет указывать к какому HTTP методу (например GET или POST) относятся помещённые внутрь ... команды ограничения доступа.

Могут использоваться методы: GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK.

Listen port [A]

Заставляет Apache слушать указанные адреса и порты. Например, что бы заставить сервер слушать порты 80 и 8000, используйте:

Чтобы Apache работал на разных интерфейсах с указанными номерами портов, используйте:

Listen 192.170.2.1:80

Listen 192.170.2.5:8000

ListenBacklog length [A]

Максимальная длина очереди обработки подключений.

...

Подробности в apache-manual:)

...

Подробности в apache-manual

Lockfile filename [A]

Директива устанавливает путь к lockfile.

LogLevel emerg|alert|crit|error|warn|notice|info|debug

Устанавливает уровень информативности протокола (лог-файла работы сервера). Рекомендуется использование по крайней мере уровня crit.

MaxClients count [A]

Директива устанавливает предел на число одновременных запросов к серверу. На самом деле, это число не может превышать число дочерних процессов сервера, которых по умолчанию не может быть более 256. Что бы исправить ситуацию редактируйте HARD_SERVER_LIMIT в httpd.h и компилируйте его.

MaxKeepAliveRequest count [A]

Разрешает клиенту последовательно запрашивать указанное число файлов без разрыва TCP соединения, если включена KeepAlive. Если параметр установлен в 0, то Apache будет разрывать соединение только учитывая параметр KeepAliveTimeout.

MaxRequestsPerChild count [A]

Директива устанавливает предел на числе запросов которые может обработать индивидуальный дочерний процесс. Если MaxRequestsPerChild установлена в 0, число запросов не ограничено.

MaxSpareServers count [A]

Директива устанавливает желательное максимальное число неактивных процессов сервера. Директива бесполезна если используется версия Apache для Microsoft Windows.

MinSpareServers count [A]

Директива устанавливает желательное минимальное число неактивных процессов сервера. Директива бесполезна если используется версия Apache для Microsoft Windows.

NameVirtualHost port [A]

Указывает, что запросы к данному порту-имени следует разделять по имени хоста к которому производится обращение (заголовок "Host:" HTTP). Позволяет определять несколько виртуальных хостов для одного IP адреса.

Options param param ...

Определяет установки действий Apache для указанного контента. Подробно все возможные установки описаны в apache-manual. Часто применяемые: Indexes - включает показ содержимого каталога если в нем не найден индексный файл (директива DirectoryIndex); ExecCGI - включает возможность размещения в данном каталоге исполняемых файлов (cgi, perl скриптов); Includes - включает возможность размещения в каталоге SSI файлов. Каждая установка поддерживается соответствующим модулем её использующим и может не действовать если нужный модуль не подгружен. Каждая директива Options считается дополняющей уже известные Options определённые для родительских каталогов. Каждая установка может сопровождаться префиксом + или - для её "включения-выключения" в данном контексте.

PidFile filename [A]

Директива устанавливает имя файла в который сервер записывает идентификатор процесса.

Указывает Apache порт - число от 0 до 65535 (следует помнить, что некоторые порты могут использоваться другими протоколами, см. /etc/servises). Стандартный порт для http протокола - 80.

require userid|groupid|valid-user|file-owner|group-owner [A]

Определяет, какие пользователи имеют доступ к каталогу.

Require user userid - только эти пользователи имеют доступ

Require group имя-группы [имя-группы] - все пользователи этих групп

Require valid-user - все адекватные пользователи.

ResourceConfig filename [A]

Сервер читает из этого файла дальнейшие директивы после прочтения httpd.conf. Имя файла задаётся относительно ServerRoot.Может быть отключена: ResourceConfig /dev/null

RLimitCPU max|sec[ max|sec] [A]

RLimitMEM max|bytes[ max|bytes] [A]

RLimitNPROC max|count[ max|count] [A]

Satisfy any|all [A]

Определяет политику доступа, если одновременно используются Allow и Require. Используется в том случае, когда доступ к области ограничен именем/паролем и клиентским адресом. В этом случае по умолчанию ("all") требуется, чтобы клиент прошёл проверку по адресу и ввёл правильное имя и пароль. В случае параметра "any" клиент получит доступ если ввёл правильное имя и пароль или прошёл ограничение по хосту. Может использоваться, чтобы ограничить доступ через пароль, но пропустить клиентов с определённого адреса без пароля.

ScoreBoardFile filename [A]

Директива требуется для того, что бы указать имя файла, используемый сервером для связи между дочерними и материнскими процессами. Выяснить, требуется ли этот файл, можно запустив Apache и посмотрев, создал ли он файл с заданным именем. Если да, то нужно убедиться, что он используется только одной копией Apache.

SendBufferSize bytes [A]

Установит размер буфера TCP.

ServerAdmin email

Устанавливает email адрес, который сервер показывает клиенту в сообщения об ошибках.

ServerAlias hostname

Задаёт альтернативное виртуальное имя хоста.

ServerName hostname

Директива устанавливает имя сервера; используется в создании ссылок. Если имя не задано, сервер попытается получить его из собственного IP-адреса.

ServerPath path

Директива устанавливает унаследованное имя пути для хоста.

ServerRoot path [A]

Устанавливает каталог, в котором живёт сервер. Обычно содержит подкаталоги conf/ и logs/. Пути для других файлов конфигурации строится относительно этого каталога.

ServerSignature on|ff|mail

Конфигурирует строку внизу сгенерированного сервером документа. По умолчанию выключено, On - показывает версию сервера и ServerName виртуального хоста, Email добавляет ссылку mailto: на ServerAdmin

ServerTokens Minimal|OS|Full [A]

Контролирует заголовок, отсылаемый клиенту сервером с описанием ОС сервера и скомпилированных модулей.

ServerType standalone|inetd [A]

Определяет, как сервер запускается системой. inetd - запускается из системного процесса inetd. standalone - как daemon-процесс.

StartServers count [A]

Устанавливает число дочерних процессов, создаваемых при запуске. Число все равно динамически изменяется в зависимости от загрузки, обычно нет причин менять этот параметр.

Время, которое Apache будет ждать: получения запроса GET, получение пакетов TCP на запросах POST и PUT, пауза между ACK"ами при передаче пакетов TCP в ответах.

UseCanonicalName on|off

Заставляет Apache генерировать названия страниц которые он создаёт используя значения SERVER_NAME с SERVER_PORT.

User username

Устанавливает userid, по которому сервер будет отвечать на запросы. Чтобы использовать директиву, сервер должен быть запущен как root.

... [A]

Директивы, помещённые внутри блока, образованного парой директив и определяю конфигурацию заданного виртуального хоста. У каждого виртуального хоста должен быть уникальный IP-адрес, номер порта или имя хоста. Директиву имеет смысл использовать если, например, сервер имеет сетевой интерфейс для внутренней сети и ещё один интерфейс для внешней сети.

mod_env - устанавливающий и передающий переменные для обработки в CGI/SSI файлы

PassEnv variable[ variable] ...

Передаёт переменную окружения (напр. HOME) обработчикам.

SetEnv variable value

Записывает заданное значение в указанную переменную окружения.

UnsetEnv variable[ variable] ...

Сбрасывает переменную, что делает невозможным её прочтение из обработчиков.

mod_setenvif - использующий условные выражения для установки переменных окружения

BrowserMatch regex env-variable[=value] ] ... [A]

Использует переданное регулярное выражение как фильтр для заголовка User-Agent от броузера клиента. При удачном попадании инициализирует переменную данным значением. Если указано только имя переменной - она инициализируется числом 1. Если указана переменная с предшествующим знаком "!" - переменная сбрасывается.

BrowserMatchNoCase regex env-variable[=value] ] ... [A]

Действует аналогично BrowserMatch допуская различия в регистре символов переданного значения User-Agent и используемого в качестве фильтра регулярного выражения.

SetEnvIf attribute regex env-variable[=value] ] ... [A]

Выполняемое директивой действие полностью аналогично BrowserMatch, но вместо User-Agent может быть использован любой другой заголовок: Remote_Host; Remote_Addr; Remote_User; Request_Method; Request_URI; Referer

SetEnvIfNoCase attribute regex env-variable[=value] ] ... [A]

Отличие от SetEnvIf такое же как у BrowserMatchNoCase от BrowserMatch выше.

mod_unique_id - генерирующий уникальную переменную окружения UNIQUE_ID

Переменная генерируется случайным образом из IP адреса сервера, номера работающего процесса, временными отметками и дополнительными внутренними счётчиками.

Переменная предназначена для использования в составных документах, когда невозможно отследить один и тот же запрос другими методами.

mod_mime - предназначенный для определения mime типа файла при передачи его клиенту

AddCharset charset extension ...

Для указанных расширений файлов указывает Apache необходимость передачи данного charset при ответе клиенту.

AddEncoding MIME-enc extension ...

Для указанных расширений файлов указывает Apache возможность передачи файла с использованием нужной кодировки MIME.

AddHandler handler-name extension ...

Указывает Apache, что файлы с данными расширениями должны быть переданы конкретному обработчику. Обработчик может как внутренним (cgi-sript и другие), так и внешним, описанным ранее директивой Action.

AddLanguage MIME-lang extension ...

Устанавливает связь между расширениями файлов и передаваемым в ответе кодом языка.

AddType MIME-type extension ...

Дополняет таблицу MIME - типов новым соответствием расширений файлов и кода MIME для ответа клиенту.

DefaultLanguage MIME-lang

Устанавливает язык ответа передаваемый всегда, если это невозможно сделать другими средствами.

ForceType MIME-type

Форсирует ответ с данным MIME-типом в каталоге, к которому отнесена данная директива.

RemoveEncoding extension ...

Удаляет код MIME-кодировки в ответе для файлов с данными расширениями.

RemoveHandler extension ...

Указывает Apache не запускать обработчиков для файлов с данными расширениями.

RemoveType extension ...

Сбрасывает MIME-тип в ответе клиенту на тип MIME по умолчанию

SetHandler handler

Форсирует вызов данного обработчика для всех файлов к которым отнесена данная директива.

TypesConfig filename [A]

Указывает расположение таблицы соответствия MIME-типов. По умолчанию - conf.mime.types

mod_mime_magic - модуль использующий сложные правила для определения MIME-типа передаваемого в ответе файла

MimeMagicFile filename

Активизирует действие модуля с использованием указанного файла на данную область документов веб-сервера или на все документы доступные Apache.

mod_negotiation - обеспечивающий согласование передаваемых типов данных между клиентом и сервером

CacheNegotiatedDocs [A]

Разрешает кеширование документов с согласуемым содержимым на промежуточных прокси-серверах и компьютере клиента.

LanguagePriority MIME-lang ... [A]

Определяет приоритет языков используемых в ответе клиенту, когда точно не удаётся определить или найти затребованный клиентом язык документа.

mod_alias - позволяющий располагать документы в каталогах веб-сервера более произвольным образом

Alias URL-path filesystem-path

Указывает Apache, что документы, расположенные "ниже" данного URL следует искать "ниже" данного расположения в файловой системе.

AliasMatch URL-regexp filesystem-path

Определяет более сложные правила поиска данных в файловой системе по результатам сравнения URL с регулярным выражением.

Redirect URL-path URL

В ответ на запрос URL-path и "ниже" расположенных документов возвращает указанный код ответа (302 по умолчанию) и перенаправляет клиента на другой URL. Статус может задаваться как число или символически: permanent (301), temp (302), seeother (303), gone (410). Для кода ответа 410 URL ответа должен быть опущен.

RedirectMatch URL-regexp URL

Аналогично Redirect, с использованием для сравнения переданного URL не точного соответствия а заданного регулярного выражения.

RedirectTemp URL-path URL

Аналогично Redirect с использованием кода ответа 302.

RedirectPermanent URL-path URL

Аналогично Redirect с использованием кода ответа 301.

ScriptAlias URL-path filesystem-path

Действует аналогично Alias но автоматически задаёт запуск cgi-handler обработчика для всех файлов внутри целевой директории.

ScriptMatch URL-regexp filesystem-path

Аналогично ScriptAlias, с проверкой URL регулярным выражением.

mod_rewrite - управляющий расположением документов на сервере

В кратком собрании описания директив Apache сложно описать задачи решаемые этим сложным модулем. Как руководство к действию лучше всего использовать специальные разделы apache-manual "Module mod_rewrite URL Rewriting Engine" и "URL Rewriting Guide". Обучиться использованию данного модуля проще всего рассматривая конкретные задачи и их решения с его использованием.

Существует единственный основной (родительский) процесс, который ответственен за создание дочерних процессов, которые в свою очередь прислушиваются к связям и обрабатывают запросы клиента. Apache всегда пробует держать в запасе несколько неиспользуемых серверных процессов, которые готовы обработать поступающие запросы.Таким образом, клиенты не должны ждать создания новых дочерних процессов, которые будут разветвленны прежде, чем их запрос обслужится.Директивы StartServers, MinSpareServers, MaxSpareServers и MaxClients регулируют, как родительский процесс создает дочерние процессы, чтобы обслуживать запросы.

Вообще, Apache очень автономен, таким образом для большинство web-сайтов нет необходимости изменения этих дирректив от значений по умолчанию (default).

Для сайтов, которые должны обслуживать большее 256 одновременных запросов, возможно, следует увеличить MaxClients, а для сайтов, расположенных на серверах с ограниченной памятью, возможно, следует уменьшить значение MaxClients, чтобы не довести сервер до необходимости свапа памяти на диск (swapping memory to disk and back), что приведет к сильным замедлениям в работе.

Выбор модулей - один из наиболее важных шагов в обеспечении хорошей защиты Apache Web server. Мы должны руководствоваться одним хорошим правилом: чем меньше, тем лучше. Чтобы задействовать нужные нам функциональные возможности и обеспечить хорошую защиту, должны быть включены следующие модули:

httpd_core - Ядро Apache, требуется при каждой установке Apache.

mod_access - Контроль доступа к каталогам сервера в зависимости от IP-адреса или имени узла клиента.

mod_auth - Требуется, чтобы осуществлять авторизацию пользователей, используя текстовые файлы.

mod_dir - Требуется, чтобы искать индексные файлы: "index.html", "default.html", и т. д.

mod_log_config - Обеспечивает регистрацию запросов, направляемых серверу. mod_mime - Содержит директивы, способствующие организации на сервере различных типов MIME.

Все остальные модули Apache должны быть выключены. Мы можем спокойно их отключить, потому что они нам не понадобятся. Отключая ненужные модули, мы предотвращаем возможность взломщика эксплуатировать уязвимость, которая была найдена в одном из этих модулей.

Также стоит обратить внимание, что два модуля Apache (mod_autoindex и mod_info) являются наиболее опасными. Первый модуль позволяет автоматически проиндексировать каталог и он включен по умолчанию. Чтобы посмотреть, как он работает, введите, например, http://server_name/icons/ и если в этом каталоге нет индексных файлов, то будет выведено содержание всего каталога. Второй модуль, mod_info, никогда не должен быть доступен через Интернет, потому что он показывает всю конфигурацию Web сервера Apache.

Следующий вопрос - как компилировать модули. Мне кажется, что статический метод - самый лучший (коды встраиваются в исполняемые файлы), нежели динамическая (коды собираются в момент запуска программы). Выбирая статический метод, мы также устраняем потребность в еще одном модуле - mod_so.

Самостоятельная работа: Работа с сервером баз данных MySQL. Создание таблиц. Вставка, извлечение и обновление данных в базе данных.

Лабораторная работа № 12. Установка и настройка web-сервера Apache.

Самостоятельная работа: Работа с сервером баз данных MySQL.

Apache – самый популярный веб-сервер в сети Интернет, который обслуживает больше половины активных сайтов.

В этой статье мы рассмотрим общие конфигурационные файлы и основные параметры Apache в системе Ubuntu/Debian

Примечание : Файлы Apache отличаются в зависимости от дистрибутива, потому эта статья не подходит пользователям RHEL.

Установка Apache в Ubuntu/Debian

Если веб-сервер Apache ещё не установлен, используйте команды:

sudo apt-get update
sudo apt-get install apache2

Чтобы убедиться, что установка прошла успешно, откройте в браузере IP-адрес своего сервера. На экране должна появиться приветственная страница Apache:

It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

Иерархия файлов Apache

В Ubuntu и Debian Apache хранит конфигурационные файлы в папке /etc/apache2.

cd /etc/apache2
ls -F
apache2.conf envvars magic mods-enabled/ sites-available/
conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

Эта папка содержит ряд простых текстовых файлов и подкаталогов. Наиболее важные из них:

  • apache2.conf: главный конфигурационный файл сервера. В нём можно выполнить почти все конфигурации.
  • ports.conf: этот файл задаёт порты, которые прослушиваются виртуальными хостами. Проверьте этот файл при настройке SSL.
  • conf.d/: этот каталог управляет отдельными аспектами конфигурации Apache. К примеру, с его помощью часто определяется конфигурация SSL и стандартная политика безопасности.
  • sites-available/: этот каталог хранит все доступные виртуальные хосты, которые определяют, какой контент будет обслуживаться на сайте. Эти хосты не активны.
  • sites-enabled/: этот каталог определяет активные виртуальные хосты. Как правило, он содержит символические ссылки на файлы, определенные в каталоге sites-available.
  • mods-/: эти каталоги работают по тому же принципу, что и sites-available и sites-enabled. Они хранят модули.

Как видите, конфигурации Apache не ограничены главным конфигурационным файлом, они распределены между несколькими файлами и каталогами. Такую структуру конфигураций можно расширить при помощи новых файлов.

Конфигурационный файл Apache

Основные настройки Apache хранятся в /etc/apache2/apache2.conf.

Этот файл содержит три главных раздела: глобальные настройки Apache, настройки сервера по умолчанию и конфигурации виртуальных хостов.

В Ubuntu и Debian большая часть файла отведена под глобальные настройки, а конфигурация сервера по умолчанию и настройки виртуальных хостов обрабатываются в конце файла с помощью директивы Include.

В конце файла вы найдёте множество настроек Include. Они определяют модули, добавляют документ ports.conf, определённые файлы из каталога conf.d/ и настройки виртуальных хостов из каталога sites-enabled/.

Сосредоточимся на глобальных настройках веб-сервера Apache.

Глобальные настройки Apache

Данный раздел рассматривает важные параметры глобальных настроек Apache.

Timeout

По умолчанию этот параметр имеет значение 300. Это значит, что на выполнение каждого запроса у сервера есть максимум 300 секунд. В большинстве случаев это значение очень большое, и его рекомендуют уменьшить до 30-60 секунд.

KeepAlive

Если этот параметр имеет значение On, сервер позволит клиенту запрашивать несколько объектов в рамках одного соединения. Если параметр имеет значение Off, то каждый новый запрос будет создавать индивидуальное соединение. Такое поведение может привести к перенагрузке сайта с большим трафиком.

MaxKeepAliveRequests

Этот параметр позволяет определить максимальное количество запросов для одного соединения. Это позволяет увеличить производительность Apache.

Значение 0 позволит веб-серверу обрабатывать неограниченное количество запросов в рамках одного соединения.

KeepAliveTimeout

Данный параметр устанавливает промежуток времени между запросами. Если в течение указанного времени клиент не создал следующий запрос. Веб-сервер прервёт соединение. Если в дальнейшем этот клиент отправит запрос, сервер создаст новое соединение.

Настройки MPM

Чтобы узнать, с помощью каких модулей был скомпилирован Apache, откройте терминал и наберите:

apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c

Как видите, в данном случае веб-сервер скомпилирован с модулем prefork.c и файлом apache2.conf.

Конфигурации виртуальных хостов

Стандартный виртуальный хост находится в файле default в каталоге sites-available.

Чтобы ознакомиться с общим форматом виртуального хоста, откройте этот файл:

sudo nano /etc/apache2/sites-available/default

ServerAdmin webmaster@localhost
DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

. . .

По умолчанию виртуальный хост обрабатывает запросы на порте 80.

Это не означает, что веб-сервер обязательно будет обрабатывать каждый запрос через этот порт. Apache может переопределять конфигурации.

Настройки виртуального хоста высшего уровня

Эти параметры устанавливаются в разделе Virtual Host и применяются ко всему виртуальному хосту.

Параметр ServerAdmin указывает контактный адрес электронной почты, который будет использоваться в случае возникновения проблем на сервере. Этот адрес можно вставить на страницу ошибки. Для этого параметр ServerSignature (в файле /etc/apache2/conf.d/security) должен иметь значение Email.

Директива ServerName задаёт доменное имя или IP-адрес сервера. Это индивидуальный параметр каждого виртуального хоста, который может переопределить настройки по умолчанию, если он совпадает со значением ServerName.

Параметр ServerAlias позволяет добавить алиасы сайта – альтернативные имена и пути, ведущие к одному контенту. Так, например, часто устанавливается алиас домена с www.

DocumentRoot задаёт каталог, в котором веб-сервер хранит контент данного виртуального хоста. В Ubuntu для этого по умолчанию используется /var/www.

Настройки каталогов

В конфигурации виртуального хоста есть специальный раздел для настройки обработки отдельных каталогов файловой системы. Эти настройки также можно переопределять.

Сначала виртуальный хост предлагает набор правил для каталога / (root-каталог). Этот раздел обеспечит базовую конфигурацию виртуального хоста, поскольку он относится ко всем файлам, которые обслуживаются в файловой системе.

По умолчанию Ubuntu не накладывает никаких ограничений на файловую систему. Apache рекомендует добавить несколько стандартных ограничений доступа, например:


Options FollowSymLinks
AllowOverride None
Order Deny,Allow
Deny from All

Это заблокирует доступ ко всему контенту, если в последующих определениях каталогов не указано иное.

Параметр AllowOverride позволяет настроить переопределение конфигураций с помощью файлов.htaccess. Чтобы переопределить настройки, файл.htaccess должен находиться в каталоге с контентом. По умолчанию эта функция отключена.

Настройки Alias и ScriptAlias

Иногда перед разделом Directory идут параметры Alias и ScriptAlias.

Директива Alias позволяет добавлять к обслуживаемому контенту каталоги вне DocumentRoot.

ScriptAlias работает аналогичным образом, но содержит путь к каталогам с исполняемыми файлами.

К примеру, такая строка в виртуальном хосте для сайта example.com откроет доступ к контенту в каталоге /path/to/content/ при запросе example.com/content/.

Alias /content/ /path/to/content/

Помните, что открывая доступ к дополнительным каталогам, нужно устанавливать ограниченные привилегии на них.

Включение сайтов и модулей в Apache

Создав файл виртуального хоста, вы можете включить его. Для этого нужно создать символическую ссылку на файл в каталоге sites-enabled:

sudo a2ensite файл_виртуального_хоста

Включив сайт, перезапустите Apache, чтобы веб-сервер перечитал конфигурации:

sudo service apache2 reload

Чтобы отключить виртуальный хост, нужно удалить символьную ссылку из sites-enabled:

sudo a2dissite файл_виртуального_хоста

После этого нужно снова перезапустить веб-сервер:

sudo service apache2 reload

Включить и отключить модуль Apache можно с помощью следующих команд (соответственно):

a2enmod
a2dismod

Они работают так же, как и ранее упомянутые команды a2ensite иa2dissite. После включения или отключения модуля нужно перезапускать веб-сервер.

Заключение

Данная статья охватывает только базовые настройки файлы веб-сервера Apache. Набор функций Apache можно значительно расширить с помощью модулей.

Если вам нужна дополнительная информация о веб-сервере, обратитесь к

Конфигурирование Apache

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

C:\usr\local\apache\conf\

Это обычный текстовый файл, и для его редактирования подойдет любой текстовый редактор - тот же «Блокнот», к примеру. Я не буду подробно рассказывать о каждой строчке в этом файле, а лишь о самых необходимых и нужных нам директивах. Отметьте, что знак ‘#’ является комментарием, и если вы хорошо читаете по-английски, то без труда сможете их разобрать, что, правда, не очень поможет, если у вас нет хотя бы общего представления о принципах функционирования Web-серверов и об Интернете в целом. А потому позвольте мне предложить вам свою помощь в настройке Apache. Вместе у нас получится быстрее и, что самое важное - правильно.

Файл конфигурации Apache состоит из трех больших секций:

  • Global Environment - директивы, управляющие настройками Apache в целом;
  • Main server configuration - директивы, управляющие настройками главного сервера;
  • Virtual Hosts - директивы, управляющие виртуальными серверами.

Секция общих настроек нас не интересует, так как вам вряд ли когда-нибудь придется изменять указанные там значения, а вот два других раздела мы разберем подробнее. Точнее, один из них - я расскажу о полезных директивах, используемых при настройках параметров основного сервера, поскольку при конфигурировании виртуальных хостов используются те же самые команды. С той лишь разницей, что не определенные параметры наследуются из настроек главного сервера. Итак, начнем…

ServerName - имя запущенного Web-сервера. Оно возвращается клиенту в HTTP-заголовке и идентифицирует Web-сервер, выполнивший запрос. При реальной работе сервера в Интернете имя должно уже существовать и быть прописанным в DNS. При локальной установке Web-сервера для отладки и тестирования сайтов это не принципиально - имя может быть любым. Кстати, именно это имя запрашивал инсталлятор перед установкой, так что, если желаете, можете сейчас его отредактировать. Значение параметра должно быть определено как минимум для главного сервера. В противном случае Apache просто не запустится.

ServerAdmin [email protected] - электронный адрес администратора, используемый в некоторых автоматически генерируемых сообщениях об ошибках Web-сервера, таких как отсутствие странички, к примеру. Параметр должен быть определен как минимум для главного сервера, иначе Apache также откажется запускаться.

ServerRoot “c:/usr/local/apache” - каталог, в котором был размещен Apache при установке. Если вы пожелаете переместить его в другое место, то данную строчку нужно будет скорректировать, как, впрочем, и все остальные строчки в файле, указывающие на данный каталог. Если вы установили Apache так, как я описывал выше, то данная строчка уже будет сконфигурирована верно и станет указывать на c:/usr/local/apache.

Port 80 - порт, по которому Apache будет отслеживать HTTP-запросы. По умолчанию он равен стандартному значению для Web-серверов, и у вас вряд ли возникнет необходимость в его изменении.

DocumentRoot “с:/usr/local/apache/htdocs” - адрес каталога, используемого для хранения HTML-страничек. По умолчанию данный параметр указывает на документацию Apache, поставляемую в дистрибутиве и расположенную в вышеуказанном каталоге.

UserDir “c:/usr/local/apache/users/” - каталог, используемый для хранения страничек пользователей, доступ к которым будет возможен по адресу:

Http://www.domain.com/~user/

Поскольку мы ставим Web-сервер для локальной отладки сайтов, а не для реальной работы в Интернете, то данную строчку вам менять не нужно.

DirectoryIndex index.html index.htm - параметр, определяющий имя файла, который будет искать Apache, если указан не полный URL. То есть такой, который заканчивается именем каталога, а не адресом конкретной странички. В том числе это относится и к файлу, который открывается по умолчанию при наборе основного URL. Например, если вы набрали в адресной строке:

Http://www.domain.com/links/,

то на самом деле Apache откроет страничку:

Http://www.domain.com/links/index.htm

Полный список файлов, которые могут быть найдены в директории, как раз и определяется этим параметром. Имена файлов отделяются друг от друга пробелом. При этом имеет значение порядок, в котором перечислены альтернативные имена: если в каталоге есть файлы с именем и index.htm, и index.html, то Apache откроет именно вторую страничку, поскольку в списке index.html стоит раньше, чем index.htm.

Alias /icons/ “c:/usr/local/apache/icons/” - команда создания алиасов, то есть ссылок, для любых каталогов. Например, вышеприведенная команда делает доступным содержимое каталога “c:/usr/local/apache/icons/” по адресу:

Http://www.domain.com/icons/

При этом сам каталог может находиться в любом месте файловой структуры и не обязательно являться подкаталогом ранее определенного каталога для размещения HTML-документов.

ScriptAlias /cgi-bin/ “c:/usr/local/apache/cgi-bin/” - данная команда аналогична предыдущей с той лишь разницей, что определяет реальное местоположение каталога с выполняемыми CGI-скриптами.

AddType text/html .html .htm - команда, определяющая тип mime для файла с заданным расширением. В данном случае мы присваиваем расширениям.html и.htm тип обычного гипертекста, и Apache будет интерпретировать его как html-код. Точнее, интерпретировать-то придется браузеру - Web-сервер лишь выдаст ему указание о том, что это гипертекст. А вот если этой строчки не будет, то Apache выдаст странички с таким расширением за обычные текстовые файлы.

AddHandler server-parsed .shtml - команда, определяющая обработчик (автоматически запускаемую программу) для файла с указанным расширением. В данном случае мы связываем расширение.shtml со встроенным обработчиком SSI-директив. И следовательно, все файлы, имеющее данное расширение, перед тем, как выдать страничку пользователю, будут проходить предварительную обработку. Если говорить более конкретно, то Apache заменит все SSI-вставки на соответствующие им значения.

ErrorDocument 404 /error404.html - директива, определяющая страничку, которая будет отослана пользователю при возникновении ошибки. В данном случае была определена страничка для самой распространенной 404-й ошибки. Данная директива не обязательна, и в случае ее отсутствия Apache сгенерирует стандартную страничку. Но согласитесь, что определить свою собственную страничку ошибки и, кроме того, сделать ее в едином стиле сайта гораздо привлекательнее. Путь к страничке ошибки может быть указан либо локально (тогда он должен обязательно начинаться от корня сайта), либо с приведением полного URL-странички.

ErrorLog logs/error.log - команда, определяющая имя файла, куда будут записываться все ошибки, возникающие при загрузке страничек или выполнении CGI-скриптов. При локальной отладке Web-сайтов - вещь крайне полезная. Так что если что-либо не ладится - Apache не запускается, Perl-скрипты не работают, графика на страничках не грузится, - этот файл может помочь вам разобраться в проблеме.

CustomLog logs/access.log common - директива, аналогичная предыдущей, но с тем отличием, что используется для протоколирования всех запросов к Web-серверу. На основе его анализа можно получить полный отчет о посещаемости сайта и популярности отдельных разделов.

Теперь разберемся с настройками прав доступа к файлам и каталогам, входящим в структуру Web-сайта. Из соображений безопасности нам необходимо для любого файла или каталога, используемого для хранения страничек или CGI-программ, установить определенный набор прав. Но вначале рассмотрим, каким же образом нам задать папку или файл(ы), которым мы присваиваем права. Делается это при помощи одной из следующих конструкций:

Для каталога:

Здесь перечисляются все директивы, управляющие доступом и опциями каталога

Для файла(ов):

Здесь перечисляются все директивы, управляющие доступом к файлу(ам)

Вместо directory и filename подставляются нужные значения. Возможно использование регулярных выражений, что позволяет задавать права для целой группы файлов и/или каталогов.

Права, определенные для каталога, распространяются и на все подкаталоги, входящие в него, если только для какого-нибудь из подкаталогов права не были переопределены. Сейчас мы рассматриваем способ определения прав в основном конфигурационном файле, но для тех же целей можно использовать и локальные файлы.htaccess, которые размещаются в той папке, для которой требуется ограничить доступ. В ряде случаев это гораздо удобнее. Синтаксис написания команд в файле.htaccess полностью аналогичен синтаксису команд в файле httpd.conf.

Важно отметить, что конфигурирование поведения Web-сервера при помощи.htaccess возможно только в случае, если это разрешено в правах вышестоящего каталога. Но об этом я еще скажу, когда мы дойдем до соответствующей команды. А пока начнем разбирать по порядку все основные директивы, используемые для определения прав:

  • Options option_list - директива, определяющая дополнительные опции для конкретного каталога. Опции отделяются друг от друга пробелами. Основные из них следующие:
  • None - дополнительные опции для данного каталога не определены.
  • All - определены все возможные опции, за исключением MultiViews.
  • Indexes - опция, позволяющая использовать файлы по умолчанию - при неполном наборе адреса. Список файлов по умолчанию задается директивой DirectoryIndex, которая была описана в этой статье несколько выше. При отсутствии в данном каталоге файла по умолчанию Apache выдаст браузеру содержимое каталога.
  • Includes - опция, относящаяся к функционированию SSI и разрешающая использовать директиву Include. Для полноценного функционирования SSI опция должна быть включена.
  • IncludesNOEXEC - опция, подобная предыдущей, но запрещающая использовать во включениях SSI-команды запуска CGI-скрипта и .
  • ExecCGI - опция, разрешающая в данном каталоге запуск CGI-программ.
  • FollowSymLinks - опция, позволяющая Apache переходить по символьным ссылкам в системах UNIX. То есть страничка может находиться вне основного дерева, определенного для хранения html-документов.
  • AllowOverride - директива, разрешающая переопределять параметры доступа для нижележащих каталогов. То, о чем я говорил ранее. После данной команды должен быть указан список директив, разрешенных к переопределению. Например, AllowOverride All - разрешает переопределение любых прав, AllowOverride Options - разрешает переопределение опций для каталога, AllowOverride None - запрещает переопределение прав.
  • Order allow, deny - порядок наложения прав доступа к файлу или каталогу с определенных IP-адресов или доменных имен. Может использоваться маска для отсеивания целых сегментов сети. В данном случае вначале определяются сайты, доступ к которым разрешен, а потом те, к которым запрещен. В случае команды Order deny, allow - все наоборот.
  • Allow from - список IP-адресов или доменных имен, доступ с которых разрешен. Может быть использована маска - для разрешения доступа к сайту целой группе доменов. Например, Allow from .com - разрешает доступ со всех доменов, имеющих окончание.com. Allow from all - разрешает доступ к сайту из любой точки Интернета.
  • Deny from - список IP-адресов или доменных имен, доступ с которых запрещен. Так же, как и в предыдущем случае, может быть указана группа доменов или маска IP-адресов.

Вот, пожалуй, и все основные директивы, которые используются при конфигурировании Apache. Если вы хотите знать, что делают остальные, то все в вашей власти - конфигурационный файл прекрасно комментирован и при небольшом усердии вы разберетесь с ним.

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

AddType text/html .shtml AddHandler server-parsed .shtml

Добавьте в секцию Document type файла конфигурации две эти строчки (или просто раскомментируйте их) и скорректируйте список файлов по умолчанию, добавив туда имя index.shtml:

DirectoryIndex index.htm index.html index.shtml

Дополнительно нам нужно определить для каталога с документами права на использование SSI-включений в страничках. Для этого необходимо найти и скорректировать секцию, определяющую права для корневого каталога документов. Она должна выглядеть так:

Options Indexes Includes AllowOverride All

Больше для поддержки технологии SSI ничего не требуется, так что перейдем к конфигурированию виртуального сервера.

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

Но перед тем как конфигурировать виртуальный сервер, давайте создадим все необходимые каталоги. Я рекомендую для Интернет-проектов использовать структуру каталогов, представленную ниже. Вы можете в качестве основного выбрать любой другой диск, но я для объяснений по-прежнему буду использовать диск C.

  • c:\web\ - каталог, используемый для Интернет-проектов;
  • c:\web\project\ - каталог для нашего проекта, который мы так и назовем - project;
  • c:\web\project\website\ - здесь будут размещены странички сайта;
  • c:\web\project\cgi-bin\ - здесь могут размещаться CGI-скрипты на Perl;
  • c:\web\project\logs\ - этот каталог будет содержать лог-файлы Web-сервера.

Как уже было сказано выше, директивы, определенные в секции виртуального хоста, переопределяют глобальные значения. Но для начала нужно разобраться, каким образом определить сам виртуальный хост. Это делается при помощи одноименной директивы VirtualHost. Ниже приведен фрагмент, описывающий виртуальный сервер для нашего проекта. Добавьте его в самый конец конфигурационного файла - именно там находится секция для определения виртуальных хостов. А затем я дам подробные разъяснения по каждой строчке:

ServerAdmin [email protected] ServerName project DocumentRoot “c:/web/project/website” ScriptAlias /cgi-bin/ “c:/web/project/cgi-bin/” ErrorLog c:/web/project/logs/error.log CustomLog c:/web/project/logs/access.log common

Сделали? Прекрасно, переходим к комментариям! Итак, в первой строчке я определил IP-адрес, по которому будет осуществляться доступ к виртуальному хосту. Поскольку локальный Web-сервер привязан к IP-адресу 127.0.0.1, то логично для виртуальных хостов воспользоваться следующими по порядку IP-адресами: 127.0.0.2, 127.0.0.3, 127.0.0.4 и т.д.

Во второй и третьей строчках переопределены е-mail администратора и имя сервера. Эти директивы указывать не обязательно, но они позволяют нам более удобно организовать работу с Web-сервером, в частности сделать так, чтобы обращаться к серверу можно было не по IP-адресу, а по определенному в этой секции имени хоста, но об этом я расскажу чуть позже.

Далее следует важная строчка, определяющая местоположение документов для нашего сайта. Формат записи полностью аналогичен базовому серверу. Точно так же переопределены алиасы к CGI-скриптам и пути к лог-файлам. Заметьте, что в качестве значений мы использовали каталоги, которые создали несколькими абзацами выше.

После добавления виртуального хоста Apache необходимо перезапустить - чтобы изменения вступили в силу. Наш виртуальный хост теперь будет доступен по адресу 127.0.0.2. Если что-либо не получается и сервер отказывается запускаться, то посмотрите, что написано в файле error.log. Скорее всего, там будет указано на ошибку в синтаксисе конфигурационного файла.

Помните, я обещал рассказать о том, каким образом сделать так, чтобы можно было обращаться к серверу еще и по имени? Вот и настало время. В конфигурации Web-сервера нам уже ничего менять не нужно, а придется подправить внутренний файл Windows, определяющий соответствие локальных IP-адресов и доменных имен. В зависимости от того, в какой системе вы работаете, этот файл может находиться в разных местах или не существовать вовсе (в этом случае его нужно будет создать вручную). Файл называется hosts и расположен в каталоге:

C:\windows\ - для машин с сиcтемой Win9x/Mе

C:\windows\system32\driver\etc\ - для машин с системой WinNT/2000

В этом каталоге также может находиться файл hosts.sam (расширение от слова sample - «пример»), который можно переименовать в hosts, если последний отсутствует. Файл hosts является обычным текстовым файлом в формате ASCII и имеет очень простой формат: каждая строчка состоит из локального IP-адреса и соответствующего ему доменного имени. Для нашего случая данный файл должен выглядеть следующим образом:

127.0.0.1 localhost apache 127.0.0.2 project

Заметьте, что в первый строчке я определил два имени для одного IP-адреса. Обращение к такому серверу возможно по любому из этих имен. Альтернативные имена должны отделяться друг от друга пробелами.

Для тестирования нашего виртуального сервера и сконфигурированной технологии SSI нам необходимо написать тестовую страничку. Для этого в любом текстовом редакторе создайте файл следующего содержания:

Тестирование технологии SSI

и сохраните его под именем index.shtml. Также создайте файл test.inc со следующим содержимым:

Поздравляю, технология SSI работает!

Перепишите оба файла в каталог с:\web\project\website\, который сконфигурирован как каталог для документов нашего проекта, и наберите в адресной строке браузера:

Http://project/

Если вы увидели в браузере поздравление, то все в порядке: SSI работает, а кроме того, функционирует и новое расширение по умолчанию - index.shtml. Если у вас что-то работает некорректно, еще раз внимательно перечитайте последние несколько абзацев и убедитесь, что вы все сделали правильно.

Apache установлен и настроен - переходим к инсталляции и конфигурированию PHP.

Установка PHP4 под Windows

Устанавливать будем последнюю доступную на момент написания данной статьи версию PHP, а именно PHP4.0.4pl1. Адрес, по которому ее можно скачать, указан в конце данной статьи. Архив с данным дистрибутивом PHP также расположен на компакт-диске, прилагаемом к журналу.

Дистрибутив представляет собой обычный ZIP-архив, и его достаточно распаковать в нужную папку. Руководствуясь теми же соображениями, которые я приводил при создании каталога для установки Apache, распакуем дистрибутив PHP в папку:

C:\usr\local\php4\

Перейдите в указанный каталог, найдите там файл php.ini-dist и, переименовав его в php.ini, скопируйте в корневой каталог Windows (обычно это c:\windows). Данный файл содержит все настройки, управляющие поведением PHP, и представляет собой обычный текстовый файл. Поскольку конфигурация по умолчанию вполне нам подходит, то на данный момент в этом файле ничего исправлять не нужно.

Теперь необходимо настроить Apache и PHP для совместной работы. Есть два основных способа установки PHP - как обычной CGI-программы и как модуля Apache. Мы рассмотрим оба и начнем с конфигурирования PHP как обычной CGI-программы.

Установка PHP как CGI-программы

Основную работу по настройке придется провести над файлом конфигурации Apache. Если вы уже успели закрыть файл httpd.conf, то откройте его снова и добавьте туда несколько строчек, относящихся к функционированию PHP. Вначале нам необходимо определить новый тип файла и сопоставить его с расширениями, используемыми PHP. Для этого добавляем в секцию «Document types» следующую строчку:

Теперь необходимо назначить обработчик для данного типа файлов, поэтому добавьте сразу после определения типа следующий фрагмент:

Options ExecCGI

И наконец, мы добавим в список индексных файлов значение index.php. Для этого найдите и подкорректируйте следующую строчку:

Все нужные настройки PHP выполнены, и можно протестировать работоспособность PHP. Для этого создадим тестовый файл следующего содержания:

Тестирование технологии PHP

и сохраним его под именем test.php в каталоге с:\web\project\website\, который мы ранее определили для хранения HTML-файлов нашего проекта. Теперь, набрав в браузере строчку:

Http://project/test.php

Http://127.0.0.2/test.php,

мы должны увидеть текст поздравления. Если все в порядке, то с конфигурированием PHP можно закончить. В противном случае внимательно проверьте описанные выше директивы в файле httpd.conf. И еще не забудьте перезапустить Apache перед проверкой.

Установка PHP как обычной CGI-программы достаточно проста, но не позволяет нам использовать часть функций, связанных с авторизацией пользователей, постоянным подключением к базам данных, и рядом других возможностей. Поэтому сейчас мы разберем более предпочтительный способ установки - как модуля Apache. Этот способ обеспечивает заметно большее быстродействие ввиду отсутствия накладных расходов на запуск внешней CGI-программы. Впрочем, для нашего случая - использования локального Web-сервера для тестирования сайтов - скорость выполнения не критична.

Установка PHP как модуля Apache

Первым делом нам необходимо найти скомпилированный модуль PHP для подключения его к Apache. Если вы ставили PHP так, как я описывал ранее, то нужный нам файл расположен по адресу:

C:\usr\local\php4\sapi\php4apache.dll

Скопируйте этот файл уровнем выше - в основной каталог PHP:

C:\usr\local\php4\

Теперь нужно настроить некоторые переменные в конфигурационном файле Apache. Как и при установке PHP в виде CGI-программы, необходимо добавить в секцию Document types определение нового типа документа:

AddType application/x-httpd-php .phtml .php

А также подкорректировать строчку, содержащую список индексных файлов:

DirectoryIndex index.html index.htm index.shtml index.php

Теперь самое важное - конфигурируем загрузку модуля. Найдите в конфигурационном файле секцию “Dynamic Shared Object (DSO) Support” и добавьте в нее следующую строчку:

LoadModule php4_module “с:/usr/local/php4/php4apache.dll”

Конфигурирование можно считать оконченным. Осталось только протестировать работоспособность PHP. Не забудьте только сначала сохранить файл и перезапустить Apache. Для тестирования можно воспользоваться уже написанным ранее скриптом test.php. Наберите в браузере строчку:

Http://project/test.php

и убедитесь, что PHP функционирует успешно. Если что-то не в порядке, то внимательно проверьте точность указанных вами путей к модулю и действительное нахождение его в указанном каталоге.

И небольшое замечание для тех, кто уже конфигурировал PHP как CGI-программу, а теперь пробует установить его как модуль, не забудьте удалить из конфигурационного файла Apache секцию, связывающую обработчик типа файла с CGI-программой. Ведь в данном случае всей обработкой php-файлов занимается уже внешний модуль. Я имею в виду вот этот фрагмент:

ScriptAlias “/__php_dir__/” “c:/usr/local/php4/” Action application/x-httpd-php “/__php_dir__/php.exe” Options ExecCGI

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

КомпьютерПресс 7"2001

Apache - это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.

После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* - настройки модулей
  • /etc/apache2/sites-available/* - настойки виртуальных хостов
  • /etc/apache2/ports.conf - порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

vi /eta/apache2/apache2.conf

Timeout - указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On - очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 - максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 - таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group - пользователь и группа, от имени которых будет работать программа.

HostnameLookups - записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel - уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include - все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:


Параметр значение

Здесь доступны такие основные опции:

AllowOverride - указывает нужно ли читать.htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All - разрешать все, None - не читать эти файлы.

DocumentRoot - устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options - указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All - разрешить все, FollowSymLinks - переходить по символическим ссылкам, Indexes - отображать содержимое каталога если нет файла индекса.

Require - устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied - всем запретить, Require all granted - всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order - позволяет управлять доступом к директории. Принимает два значения Allow,Deny - разрешить для всех, кроме указанных или Deny,Allow - запретить для всех, кроме указанных..ru.

Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах.htaccess они могут быть очень полезны.

У нас остался файл /etc/apache2/ports.conf:

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Настройка сервера Apache через htaccess

Файлы.htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег если бы находились в основном файле.

Важно заметить, что для того, чтобы сервер читал инструкции из.htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None , чтобы могли работать все настройки нужно AllowOverride All .

А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего.htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache - модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

sudo a2enmod имя_модуля

А отключить:

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

vi /etc/apache2/mods-available/deflate.load

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением.conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

vi /etc/apache2/mods-available/deflate.conf

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2enconf имя_модуля

a2disconf имя модуля

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

Было бы не совсем удобно, если на одной физической машине можно было размещать только один сайт. Apache может поддерживать сотни сайтов на одном компьютере и выдавать для каждого из них правильное содержимое. Для этого используются виртуальные хосты. Сервер определяет к какому домену приходит запрос и отдает нужное содержимое из папки этого домена.

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName - основное имя домена
  • ServerAlias - дополнительное имя, по которому будет доступен сайт
  • ServerAdmin - электронная почта администратора
  • DocumentRoot - папка с документами для этого домена

Например:

vi /etc/apache2/sites-available/test.site.conf



В продолжение темы:
Windows

Часть вторая : "Важнейшие характеристики каждого семейства процессоров Intel Core i3/i5/i7. Какие из этих чипов представляют особый интерес" Введение Сначала мы приведём...

Новые статьи
/
Популярные