Чтение онлайн

на главную - закладки

Жанры

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

# разрушить вашу конфигурацию.

<IfDefine PERLPROXIED>

ProxyPass /perl/

ProxyPassReverse /perl/

</IfDefine>

# Файл, в котором находятся директивы конфигурирования

# виртуальных узлов.

Include conf/vhosts/Vhosts.conf

#

#

# Для поддержки динамических виртуальных хостов и виртуальных

# домашних каталогов, раскомментируйте следующие строки:

# LoadModule vhost_alias_module modules/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

12.7. Перекодирование русскоязычных документов «на лету»

С тех пор, когда в русском языке появилось слово кодировка, появилась и проблема перекодировки. Стандартной кодировкой русского языка для большинства Unix-серверов является КОИ-8. Аббревиатура КОИ расшифровывается как «Код для Обмена Информацией». Все бы было хорошо, если бы существовала одна-единственная кодировка KOI8-r. Но, как всегда, найдутся добрые люди, которые захотят помочь нам кодировать наш русский язык. И таких нашлось немало. Например, всем известная Microsoft сначала использовала кодировку СР-866 (еще известную как альтернативная кодировка — ALT) в своей операционной системе DOS. ОС DOS тогда была установлена на большинстве домашних и офисных компьютеров, поэтому особой разницы, что использовать: KOI8-r или СР-866, для пользователей не было по одной простой причине: у меня отображается так же, как и у соседа. Потом та же Microsoft разработала кодировку Windows-1251 (ANSI) для своей новой операционной системы Windows. Стараясь нам «помочь», она создала проблемы с перекодировкой уже на локальном уровне: файлы, созданные в ОС DOS, без предварительного перекодирования нельзя было прочитать в Windows, и наоборот. Заметьте, об Интернет и Apache я еще не сказал ни слова.

Кроме Microsoft, «облегчили» нам жизнь также компании Apple и Sun, разработав соответственно кодировки Apple и ISO8859-5. Компания IBM также не отстала от них, разработав собственную кодировку русского языка. В общем, развитие таблиц перекодирования русского языка происходило по принципу: а мы новый дом построим…

А теперь представьте: все эти кодировки смешались в Интернет. Я работаю под Unix и использую KOI8, а вы под Windows и мы не можем прочитать файлы друг друга из-за проблем с кодировкой. Это довольно неудачный пример, так как средств для перекодирования из KOI8 в Windows-1251 разработано довольно много. А вот с кодировкой Apple могут возникнуть проблемы. Мне встречались браузеры, некорректно отображающие русские символы в этой кодировке.

Возникает задача: настроить автоматическое перекодирование документов из одной кодировки в другую. Для начала необходимо настроить хотя бы перекодирование «на лету» из KOI8 в Windows-1251, так как большинство клиентов в Сети используют именно эту кодировку (от Windows, как от смерти, не уйдешь).

Обыкновенный англоязычный Apache, входящий в состав большинства дистрибутивов, не сможет вам в этом помочь. Для корректных операций по перекодированию нужно загрузить и установить сервер Russian Apache. Или же просто установить модуль Apache-RUS. Скачать данный модуль (как и полностью Russian Apache) можно по адресу: ftp://apache.Iexa.ru/pub/apache-ras/. При этом старшая часть версии соответствует оригинальному серверу Apache, младшая — версии модуля Apache-Rus.

Рассматривать процесс установки и настройки я буду на примере не очень новой версии сервера — 1.3.3/PL27.3, это не принципиально. Загрузив файл, распакуйте его:

tar xvzf apache_1.3.3rusPL27.3.tar.gz

После этого перейдите в каталог apache_1.3.3rusPL27.3 и запустите сценарий configure:

# cd apache_1.3.3rusPL27.3

# ./configure

Можно также указать некоторые параметры сценария, например, параметр –prefix=path следует использовать при необходимости установить сервер в другой каталог. Далее введите ставшие уже привычными вам команды:

# make

# make install

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

Директивы перекодирования можно разделить на три группы. Первые указывают в какой кодировке хранятся файлы на диске, вторые — определяют названия кодировок, их псевдонимов, таблиц символов. Третья группа определяет порядок перекодирования документов. Приведу небольшой пример использования первой группы кодировок:

CharsetSourceEnc koi8-r

CharsetByExtension windows-1251.txt

Эти директивы находятся в файле httpd.conf. Первая указывает на то, что все файлы на диске, кроме файлов с расширением .txt, хранятся в кодировке koi8-r. Для последних указывается кодировка — windows-1251.

Данные директивы можно включать в блок Location или в файлы .htaccess.

Ко второй группе относятся директивы CharsetDecl, CharsetAlias, CharsetRecodeTable и CharsetWideRecodeTable. Они находятся в блоке <IfModule mod_charset.c> — </IfModule> и не нуждаются в изменении. Необходимо только отметить (это нужно для понимания дальнейшего материала), что директива CharsetDecl используется для объявления кодировки, а CharsetAlias — для объявления псевдонима кодировки, например:

CharsetDecl windows-1251 ru

CharsetAlias windows-1251 win x-cp1251 cp1251 cp-1251

Название языка (ru) должно быть определено в файле conf/srm.conf в директивах Add Language и LanguagePriority.

С помощью третьей, самой многочисленной, группы вы можете настроить сервер для автоматической перекодировки символов на основании информации о клиенте. Например, определив, что клиент работает в операционной системе Windows и кодировкой браузера по умолчанию является Windows-1251, сервер самостоятельно перекодирует файлы в нужную кодировку. Если сервер сделает выбор неправильно, пользователь всегда сможет сам изменить кодировку вручную. Существует три способа выбора кодировки: По каталогу, например:

http://www.server.ru/koi/file.html

http://www.server.ru/win/file.html

По имени сервера, например:

http://koi.www.server.ru/file.html

http://win.www.server.ru/file.html

По порту, например:

http://www.server.ru:8000/file.html

http://www.server.ru:8001/file.html

Теперь рассмотрим каждый из этих способов.

Для перекодирования по каталогу (точнее, по его префиксу) нужно добавить в блоке VirtualHost псевдоним, например:

Поделиться:
Популярные книги

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7

Мажор. Дилогия.

Соколов Вячеслав Иванович
Фантастика:
боевая фантастика
8.05
рейтинг книги
Мажор. Дилогия.

Кодекс Крови. Книга VI

Борзых М.
6. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VI

Сборник коротких эротических рассказов

Коллектив авторов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Сборник коротких эротических рассказов

Искатель 2

Шиленко Сергей
2. Валинор
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Искатель 2

Бандит

Щепетнов Евгений Владимирович
1. Петр Синельников
Фантастика:
фэнтези
7.92
рейтинг книги
Бандит

Законы Рода. Том 3

Мельник Андрей
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Как прорастают зерна

Волкова Дарья
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Как прорастают зерна

Ефрейтор. Назад в СССР. Книга 2

Гаусс Максим
2. Второй шанс
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Ефрейтор. Назад в СССР. Книга 2

Шиари выбирает первой

Чернованова Валерия Михайловна
1. Шиари
Фантастика:
юмористическая фантастика
5.25
рейтинг книги
Шиари выбирает первой

Адепт. Том второй. Каникулы

Бубела Олег Николаевич
7. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.05
рейтинг книги
Адепт. Том второй. Каникулы

На границе империй. Том 10. Часть 8

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 8

Тыл-фронт

Головин Андрей
Проза:
военная проза
проза прочее
5.00
рейтинг книги
Тыл-фронт

Изгой Проклятого Клана. Том 5

Пламенев Владимир
5. Изгой
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Изгой Проклятого Клана. Том 5