Конфигурация Apache
1.1Виртуальные хосты
Виртуальные хосты1 – очень удобный механизм. Благодаря ему можно на одной физической машине с одним IP-адресом содержать сразу несколько сайтов, соответствующих разным доменным именам. Несмотря на то, что запросы физически шлются на один и тот же сервер, Apache, анализируя заголовок запроса (а именно поле Host), понимает, какой именно из серверов нужен пользователю. Денвер позволяет добавить или удалить новый виртуальный хост за два шага. Чтобы добавить новый хост, нужно создать в каталоге \home подкаталог с именем создаваемого хоста (например, microsoft.com), затем внутри него сделать каталог www. В этот каталог нужно помещать файлы, которые должны быть доступны по запросу к хосту www.microsoft.com.
1.2Конфигурация с помощью текстовых файлов
Сервер Apache конфигурируется с помощью текстовых конфигурационных файлов. Для конфигурирования сервера используется файл настройки httpd.conf.
Для конфигурирования виртуального хоста используется файл настройки httpd.conf.
Для конфигурирования уровня директории используется файл настройки .htaccess.
1.3httpd.conf
Это обычный текстовый файл. Знак '#' является комментарием. Файл конфигурации Apache состоит из 3-х больших секций:
Global Environment - директивы, управляющие настройками Apache в целом;
Main server configuration - директивы, управляющие настройками главного сервера;
Virtual Hosts - директивы, управляющие виртуальными серверами.
Рассмотрим полезные директивы, используемые при настройках параметров основного сервера, поскольку при конфигурировании виртуальных хостов используются те же самые команды. С той лишь разницей, что не определенные параметры наследуется из настроек главного сервера.
ServerName mydomain.ru- имя запущенного web-сервера. Оно возвращается клиенту в HTTP-заголовке и идентифицирует web-сервер, выполнивший запрос. При реальной работе сервера в интернете имя должно уже существовать и быть прописанным в DNS. При локальной установке web-сервера для отладки и тестирования сайтов это не принципиально - имя может быть любым.
В старых версиях Apache директива Port 80 - порт2, по которому Apache будет отслеживать HTTP-запросы. По умолчанию он равен стандартному значению для web-серверов. В версии Denwer, начиная со второй версии Apache, необходимо изменение директив без раскомментирования
#Listen $&{ip:-127.0.0.1}:$&{port:-8081}
#NameVirtualHost $&{ip:-127.0.0.1}:$&{port:-8081}
#<VirtualHost $&{ip:-127.0.0.1}:$&{port:-8081}>
обычно находящихся на строках 689-691 конфигурационного файла.
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/ "<путь к каталогу денвера>/home/localhost/www/icons" - команда создания алиасов, то есть ссылок, для любых каталогов. Например, вышеприведенная команда делает доступным содержимое каталога icons по адресу:
http://www.domain.com/icons/
При этом сам каталог может находиться в любом месте файловой структуры и не обязательно являться подкаталогом ранее определенного каталога для размещения HTML-документов.
AddType text/html .html .htm - команда, определяющая тип mime для файла с заданным расширением. В данном случае мы присваиваем расширениям .html и .htm тип обычного гипертекста, и Apache будет интерпретировать его как html-код. Точнее, интерпретировать придется броузеру - web-сервер лишь выдаст ему указание о том, что это гипертекст. Если этой строчки не будет, то Apache выдаст странички с таким расширением за обычные текстовые файлы.
ErrorDocument 404 /error404.html - директива, определяющая страничку, которая будет отослана пользователю при возникновении ошибки. В данном случае была определена страничка для самой распространенной 404-ой ошибки. Данная директива не обязательна, и в случае ее отсутствия Apache сгенерирует стандартную страничку. Путь к страничке ошибки может быть указан либо локально (тогда он должен обязательно начинаться от корня сайта), либо указанием полного URL-странички.
ErrorLog logs/error.log - команда, определяющая имя файла, куда будут записываться все ошибки, возникающие при загрузке страничек или выполнении CGI-скриптов. Так что если что-либо не ладится - Apache не запускается, Perl-скрипты не работают, графика на страничках не грузится, - этот файл может помочь вам разобраться в проблеме.
CustomLog logs/access.log common - директива, аналогичная предыдущей, но с тем отличием, что используется для протоколирования всех запросов к web-серверу. На основе его анализа можно получить полный отчет по посещаемости сайта и популярности отдельных разделов.
