Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

14 дней жизни одной операционной системы
или впечатления об установке и настройке Red Hat Linux 9 Cyrillic Edition

В.А.Костромин, 19 сентября 2003 г.

День двенадцатый. Samba и Apache.

Конфигурация сегодня та же самая - на компьютере old-lin работает сервер Samba под RedHat Linux 9.0, компьютер trend работает под Windows.

Для начала логируюсь под root-ом и добавляю в файл /etc/fstab строку

//trend/C /mnt/trend smb codepage=cp1251,iocharset=utf8

после чего выполняю команду mount /mnt/trend. По сравнению с тем, что вы видели на рисунке 27, изменений появилось не много: имя каталога "Мои документы" стало отображаться не знаками вопроса, а другими символами (см. рис.28), причем их число в точности равно числу символов в исходном названии, но все равно русским языком это не назовешь!


Рис. 28. Результат задания кодовой страницы cp1251 в файле fstab.


Но тут я припомнил, что где-то читал, что codepage надо устанавливать равной cp866. И вот, когда я изменил строку в fstab, придав ей следующий вид:

//trend/C /mnt/trend smb codepage=cp866,iocharset=utf8

все поправилось, и я смог нормально прочитать надпись "Мои документы", а также имена других файлов, заданные русскими буквами (см. рис.29).

Рис. 28. Результат задания кодовой страницы cp866 в файле fstab.

Так, в одну сторону наладили, теперь надо подойти со стороны Windows.

И тут я оказываюсь в тупике. Никаких способов настройки того, в какой кодировке отображаются имена файлов, я не знаю. Пытаюсь что-то найти, щелкнув правой кнопкой по букве сетевого диска в Проводнике и открыв пункт "Свойства", но там ничего не обнаруживается. Других идей в голову не приходит. Может что-то и можно сделать с помощью реестра Windows, но в реестре я не силен.

И все-же тупик не безысходный! Давайте посмотрим на это дело как-бы со стороны. У нас теперь Linux-машина уже может быть клиентом Windows-компьютера, то есть хранить на нем свои файлы, пусть даже их имена заданы русскими символами в кодировке UTF8. Может! Я этот факт специально проверил, скопировав (с помощью Midnight Commander под Линукс) ранее созданный файл "тест.utf" на примонтированный диск Windows-машины. При этом "читабельность" имени не пострадала (см.рис.28). Более того, и на стороне Windows имя этого файла отображается корректно, наравне с ранее созданными там файлами с русскими именами (см. рис.30).


Рис. 30. Файл с именем, заданным в кодировке Unicode, скопирован на примонтированный Windows-диск.

Либо при передаче файла по сети происходит автоматическая перекодировка, либо Проводник Windows 98 умеет работать с именами в Unicode.

С другой стороны, и Windows-компьютер может без проблем работать как клиент с Linux-сервером. В какой бы кодировке не сохранялись имена файлов на сервере, для клиента это не имеет значения, он будет нормально видеть имена тех файлов, которые он сам создал и сохранил на сетевом диске, предоставленном Linux-сервером.

Проблема остается только в том случае, если один пользователь работает с файлами прямо на Linux-сервере, а второй - на Windows-клиенте. Это хорошо видно на рисунках 31 и 32, показывающих один и тот же каталог на сетевом диске с двух разных "точек зрения".


Рис. 31. Каталог /home/kos/rus на Linux-сервере.


Рис. 32. Каталог /home/kos/rus со стороны Windows-клиента.

Если необходимо организовать такое взаимодействие, то выход я пока вижу только один: давать файлам имена, составленные из латинских символов.

На этом с Samba я заканчиваю и перехожу к http-серверу.

Apache.

Теперь мне Windows уже не нужен, так что на основном компьютере я тоже перегружаюсь под Linux. Там у меня стоит ASPLinux, версию которого я назвать затрудняюсь в силу того, что проводил несколько обновлений. Но ядро запускается 2.4.18, это я могу утверждать уверенно, потому при каждом запуске вижу меню GRUB, в котором это ядро стоит первым, а значит, загружается по умолчанию.

Если вы помните, http-сервер был у меня установлен при инсталляции системы, а при установке Samba я еще установил дополнительные модули. Так что осталось только запустить демон httpd, что я и делаю. И, введя в строке задания URL http://localhost, вижу в окне браузера тестовую страницу. На этой странице сказано, что конфигурационным файлом для сервера является файл /etc/httpd/conf/http.conf. Открываю этот файл и вижу в начале его предупреждение о том, что приведенные комментарии являются только подсказками и не стоит выполнять эти рекомендации, если вы не до конца понимаете, к чему это приведет. Но я уже несколько раз проделывал раньше настройки http-сервера, так что смело принимаюсь за редактирование. Я приведу вам только те строки получившегося у меня файла (снабжая своими комментариями), которые я как-то менял, и опущу те строки, которые остались такими, какими они были в исходном файле, сформированном из дистрибутивного пакета (включая, естественно, строки комментариев, начинающиеся символом #).

ServerName old-lin:80
Как сказано в комментарии, этот параметр часто определяется автоматически, но рекомендуется задать его явно. Причем указанное имя должно быть зарегистрированным DNS-именем.
DocumentRoot "/home/kos/ve"
Это тот каталог, в котором я держу контент своего сайта на локальном диске.
<Directory "/home/kos/ve">
В комментарии сказано, что этот параметр должен быть задан равным DocumentRoot.
LanguagePriority en ru da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
В этой строке я просто добавил "ru" на втором месте в списке (в исходном варианте "ru" по каким-то причинам вообще пропущен).
AddDefaultCharset KOI8-R
Здесь я заменил ISO-8859-1 на KOI8-R, поскольку все мои страницы создавались именно в этой кодировке.

После сохранения файла на диске я перезапустил демон httpd и попытался обратиться в браузере к сайту http://old-lin. Однако получил сообщение о том, что мне не разрешен доступ к каталогу / на этом сервере. После некоторых размышлений я понял причину: в конфигурационном файле имеется два параметра User и Group, задающие имена пользователя и группы, от имени которых сервер обращается к файлам на диске. А каталог /home/kos/ve, который задан как корневой каталог Web-сайта, принадлежит kos. После того, как я записал в этих строках:

User kos 
Group kos
и еще раз перезапустил сервер, я увидел в браузере картинку, изображенную на рис.33:


Рис. 33. Первый успешный запуск локального Web-сервера.

Правда, чтобы читать по-русски, пришлось сменить кодировку через меню "Вид/Кодировка" браузера. И повторять эту операцию (смену кодировки в браузере) после перехода на любую  другую страничку сайта. А, между прочим, у меня на каждой страничке в мета-тегах указано, какая кодировка используется.

Но разбираться с этим опять придется уже завтра, а сегодня ограничимся тем, что сервер запустился и работает!

Замечу, что на завтра остался и еще один вопрос: для организации сайта я использую PHP и не ожидал, что так легко увижу в браузере что-либо приемлемое. Думал, что вначале придется настроить модуль работы с PHP. А тут все работает по умолчанию, без дополнительной настройки. Этот момент еще тоже предстоит осмыслить.
Продолжение следует...

Список литературы и ссылки.

  1. Колисниченко Д.Н., "Linux-сервер своими руками", Издательство: Наука и техника, 576 стр.