Что нам надо?
Попробуем решить все эти проблемы. Заходим туда, где установлен Apache. Находим и открываем файл httpd.conf – он находится в поддиректории conf. Здесь необходимо напомнить, что все строки этого файла, начинающиеся с "решетки" (#), существуют только в качестве текстовых комментариев, в качестве настроек сервера же используются строки, "решетки" в начале не имеющие. Сначала выполняем настройку директории, которая будет выдаваться веб-сервером в качестве корневой директории сайта. Ищем в тексте директиву DocumentRoot – строку, начинающуюся на DocumentRoot. Эта директива определяет, какая директория будет сопоставляться с корневой директорией сайта. Исправляем ее на DocumentRoot "C:/www" (следует отметить – здесь и далее в пути используются слэши, наклоненные вправо, а не влево, как привыкли пользователи Windows). Проблема с расположением сайта в нужном месте решена.
Далее устанавливаем для нее правила безопасности. Для этого в Apache используется директива Directory. Используется она следующим образом:
Options функции сервера
AllowOverride варианты
Order варианты
Список используемых параметров следующий.
Options – определяет, какие функции сервера будут доступны. Возможны следующие варианты:
AllowOverride – определяет, какие директивы из файлов .htaccess могут преобладать над такими же, указанными в httpd.conf. Варианты:
Order – устанавливает правила доступа к серверу. Варианты:
Теперь на основе всего этого начинаем настраивать наш сервер. В httpd.conf по умолчанию директива Directory существует в двух экземплярах –
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
В переводе на русский язык – для директории C:/www, выбранной ранее в качестве корневой для нашего сайта, а также всех ее поддиректорий выбраны такие параметры:
Сохраняем httpd.conf и перезапускаем Apache – c помощью Apache Monitor или в командной строке командой apache -k restart. Все, настройка корневой директории сайта закончена.
Проверяем, правильно ли мы все сделали. Создаем в C:www простейшую веб-страничку, открываем браузер и в адресной строке вводим адрес: http://127.0.0.1/имя_созданной_страницы. Наша страница должна открыться. Если не открылась – самым внимательным образом надо проверить все внесенные в httpd.conf изменения – скорее всего, что-то было сделано неправильно.
Но и в том случае, если она будет открываться, вполне возможно, что вместо символов кириллицы мы увидим нечто нечитаемое. Происходит это потому, что, во-первых, Apache предоставляет браузеру, запросившему страницу, кодировку по умолчанию для этой страницы, а во-вторых – кодировка эта не кириллическая. И если Internet Explorer в большинстве таких ситуаций все равно определяет кодировку из самой страницы, то с Opera или Mozilla проблемы практически гарантированы. Конечно, можно выставлять используемый набор символов каждый раз вручную в браузере, но сколь-нибудь удобным это назвать невозможно.
Поэтому настраиваем Apache на выдачу нужной кодировки по умолчанию. Находим в httpd.conf строку, начинающуюся на AddDefaultCharset. Скорее всего, полностью она будет выглядеть как AddDefaultCharset ISO-8859-1, что соответствует кодировке ISO-8859-1, в которой символы кириллицы отсутствуют. Меняем ISO-8859-1 на windows-1251, если предполагается, что сайт будет содержать страницы в кодировке Windows, на KOI-8r, если используется KOI-8, или на ту, которая нужна. Сохраняем файл, перезапускаем Apache – и наблюдаем нормальный русский язык на нашей тестовой странице в любом браузере.
И еще. Apache достаточно легко настроить на работу с несколькими сайтами. Адреса, которые для них можно использовать, – 127.0.0.2, 127.0.0.3 и так далее. Правда, по сети виден будет только один (тот, который является сайтом по умолчанию, он же 127.0.0.1), но именно для локальной работы это не критично. Раздел httpd.conf, в котором настраивается все для этого необходимое, находится в самом конце файла и называется Virtual Hosts.
Чтобы добавить один дополнительный сайт, создадим директорию, которая будет использоваться как его корневая, например C:www2. Предположим, что сайт должен откликаться на адрес 127.0.0.2, и дадим ему имя site2. Затем в самый конец раздела Virtual Hosts добавим следующие строки:
ServerAdmin webmaster@site2
ServerName site2
DocumentRoot "C:/www2"
ScriptAlias /cgi/ "C:/www2/cgi/"
ErrorLog "C:/www2/error.log"
CustomLog "C:/www2/custom.log" common
Перезапускаем Apache. Теперь, набрав в строке браузера 127.0.0.1, мы попадаем на первый локальный сайт, набрав 127.0.0.2 – на второй. Остается сказать только, что внутри каждого контейнера VirtualHost можно использовать практически любые директивы Apache, что дает возможность настраивать каждый сайт самым детальным образом.
Автор: Алекс Звягин