# Если вы хотите настроить процессы-потомки, пожалуйста,
# прочитайте документацию на вашем сервере
# http://localhost/manual/misc/perf-mja.html.
# Эта страница объясняет, как привязать определенный
# IP-адрес или порт к другому процессору.
#SingleListen On
###############################
# Виртуальные серверы #
###############################
#
# Поддержка модуля perl
# Замечание: не удаляйте расположенные далее строки,
# иначе это может разрушить вашу конфигурацию.
<IfDefine PERLPROXIED>
ProxyPass /perl/ http://127.0.0.1:8200/
ProxyPassReverse /perl/ http://127.0.0.1:8200/
</IfDefine>
# Файл, в котором находятся директивы конфигурирования
# виртуальных узлов.
Include conf/vhosts/Vhosts.conf
#
# Для поддержки динамических виртуальных узлов и
# виртуальных домашних каталогов, раскомментируйте
# следующие строки:
#LoadModule vhost_аlias_modulеmodulеs/mod_vhost_alias.so
#AddModule mod_vhost_alias.c
#Include conf/vhosts/DynamicVhosts.conf
#Include conf/vhosts/VirtualHomePages.conf
# Директивы конфигурирования PHP
Include conf/addon-modules/php.conf
16.12. Перекодирование русскоязычных документов «на лету»
С тех пор, когда в русском языке появилось слово «кодировка», появилась и проблема перекодировки. Стандартной кодировкой русского языка для большинства UNIX-серверов является КОИ8-R. Для применения в DOS компания Microsoft разработала альтернативную кодировку (ALT), известную также под названием CP-866.
Потом та же Microsoft создала кодировку Windows-1251 (ANSI), чем обеспечила проблемы с перекодировкой уже на локальном уровне: файлы, созданные в DOS, без предварительного перекодирования нельзя было прочитать в Windows, и наоборот. Заметьте, об Интернете и Apache я еще не сказал ни слова.
Кроме Microsoft, «облегчили» нам жизнь также компании Apple и Sun, разработав соответственно кодировки Apple и ISO8859-5. Компания IBM не отстала от них, разработав собственную кодировку русского языка.
В Интернете все эти кодировки смешались. Возникает задача: настроить автоматическое перекодирование документов из одной кодировки в другую. Для начала необходимо настроить хотя бы перекодирование «на лету» из KOI8 в Windows-1251, так как большинство клиентов в Сети используют именно эту кодировку (от Windows, как от смерти, не уйдешь).
16.12.1. Russian Apache: установка, настройка, использование
Обыкновенный англоязычный Apache, входящий в состав большинства дистрибутивов, не поможет вам решить эту проблему. Для корректных операций по перекодированию нужно загрузить и установить сервер Russian Apache или модуль Apache-RUS. Скачать как модуль, так и готовый сервер можно по адресу: ftp://apache.lexa.ru/pub/apache-rus. При этом старшая часть версии соответствует оригинальному серверу Apache, младшая — версии модуля Apache- Rus.
Рассматривать процесс установки и настройки я буду на примере не очень новой версии сервера — 1.3.3/PL27.3, это не принципиально. Последовательность действий для сборки сервера из исходных кодов стандартная:
# tar xvzf apache_l.3.3rusPL27.3.tar.gz
# cd apache_1.3.3rusPL27.3
# ./configure
# make
# make install
Настройка Russian Apache не отличается от настройки оригинального Apache за исключением настройки модуля перекодирования.
16.12.2. Настройка перекодировки русскоязычных документов
Директивы перекодирования (они находятся в файле httpd.conf) можно разделить на три группы.
Первые указывают, в какой кодировке хранятся файлы на диске. Их можно включать в блок Location или в файлы .htaccess:
# все файлы, кроме .txt, хранятся в кодировке koi8-r
CharsetSourceEnc koi8-r
# все файлы .txt хранятся в кодировке windows-1251
CharsetByExtension windows-1251 .txt
Вторые определяют названия (CharsetDecl) и псевдонимы (CharsetAlias) кодировок и таблиц символов (CharsetRecodeTable и CharsetWideRecodeTable). Они находятся в блоке <IfModule mod_charset.c> … </IfModule> и не требуют изменений. Название языка (ru) должно быть определено в директивах AddLanguage и LanguagePriority.
CharsetDecl windows-1251 ru
CharsetAlias windows-1251 win x-cp1251 cp1251 cp-1251
С помощью третьей, самой многочисленной, группы вы можете настроить сервер для автоматической перекодировки символов на основании информации о клиенте. Например, определив, что клиент работает в операционной системе Windows и кодировкой браузера по умолчанию является Windows-1251, сервер самостоятельно перекодирует файлы в нужную кодировку. Если сервер сделает выбор
