Рассматривать процесс установки и настройки я буду на примере не очень новой версии сервера — 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 хранятся в кодировке UTF-8
CharsetByExtension UTF-8 .txt
Вторые определяют названия (CharsetDecl) и псевдонимы (CharsetAlias) кодировок и таблиц символов (CharsetRecodeTable и CharsetWideRecodeTable). Они находятся в блоке … и не требуют изменений. Название языка (ru) должно быть определено в директивах AddLanguage и LanguagePriority.
CharsetDecl UTF-8 ru
CharsetAlias UTF-8 win x-cp1251 cp1251 cp-1251
С помощью третьей, самой многочисленной, группы вы можете настроить сервер для автоматической перекодировки символов на основании информации о клиенте. Например, определив, что клиент работает в операционной системе Windows и кодировкой браузера по умолчанию является UTF-8, сервер самостоятельно перекодирует файлы в нужную кодировку. Если сервер сделает выбор неправильно, пользователь всегда сможет сам изменить кодировку вручную.
Существует три способа выбора кодировки:
♦ по каталогу:
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псевдоним, например:
Alias /koi /www/docs
Или же просто создать в нужном каталоге ссылку на самого себя:
# cd /www/docs
# ln -s . koi
Несмотря на свою простоту, этот способ имеет множество недостатков. Если у вас небольшой сервер, вы можете использовать перекодировку по каталогу. В другом случае лучше используйте перекодировку по имени сервера или по порту.
При использовании перекодировки по имени сервера следует обратить внимание на то, чтобы указанный вами сервер был прописан на сервере DNS. После регистрации поддомена (в качестве имени которого нужно использовать один из псевдонимов кодировки, указанный с помощью директивы CharsetAlias, например, koi или win) внесите следующие строки в ваш файл httpd.conf
:
# Естественно, укажите здесь свой IP-адрес
ServerName www.server.ru
ServerAlias *.www.server.ru
# далее следует обычная конфигурация
# ...
Если сервер DNS администрируете не вы и возможности прописать новый поддомен у вас нет, то используйте перекодировку по порту. Для этого закомментируйте директиву Portв файле httpd.conf
и вместо нее добавьте следующие директивы:
Listen 80
Listen 8000
Listen 8001
Listen 8002
Listen 8003
CharsetByPort koi8-r 8000
CharsetByPort UTF-8 8001
CharsetByPort ibm866 8002
CharsetByPort iso-8859-5 8003
Номера портов при этом не очень важны. Правда, есть одна неприятность: если сеть клиента защищена брандмауэром, не позволяющим обращаться к выбранному вами порту, клиент не сможет установить соединение с вашим сервером.
Схема (порядок) выбора кодировки определяется директивой CharsetSelectionOrder:
♦ CharsetSelectionOrder Dirprefix Useragent Portnumber Hostname UriHostname — для выбора по каталогу;
♦ CharsetSelectionOrder Hostname UriHostname Useragent Portnumber Dirprefix — для выбора по имени домена;
♦ CharsetSelectionOrder Portnumber Useragent Hostname UriHostname Dirprefix — для выбора по порту.
16.13. Защита сервера Apache
По окончании настройки сервера запретим изменение и удаление файла конфигурации:
[root@webserver]# chattr +i /etc/httpd/conf/httpd.conf
После этого вы (и никто другой) не сможете изменить этот файл даже с помощью конфигуратора.
Желательно также установить права 511 для исполняемого файла сервера httpd:
Читать дальше
Конец ознакомительного отрывка
Купить книгу