Реферат: Работа с Web-сервером Russian Apache
Реферат: Работа с Web-сервером Russian Apache
Русский
Apache
Самый распространенный Web-сервер в мире - это Apache. По данным
компании Netcraft (http://www.netcraft.com/ Survey/) общее число Web-узлов,
работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего
числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft
приходится 25%, Netscape -7%. Будучи бесплатной открытой программой,
предназначенной для бесплатных же Unix-систем (FreeBSD, Linux и др.), Apache по
функциональным возможностям и надежности не уступает коммерческим серверам, а
широкие возможности конфигурирования позволяют настроить его для работы
практически с любой конкретной системой. Существуют локализации сервера для
различных языков, в том числе и для русского.
Исторически сложилось так, что русские тексты в Internet могут
быть представлены в разных кодировках, из которых наиболее распространены
koi8-r (или просто koi8) и Windows-1251: с первой работает большинство серверов
и рабочих станций под управлением Unix, вторая является стандартной для всех
версий Windows. Поскольку кодировка Windows-1251, естественно, применяется на
подавляющем большинстве клиентских машин, доля тех, кто путешествует по русской
части WWW, используя koi8, не превышает сейчас 5%. Однако в этой кодировке
хранятся документы на многих Unix-серверах, в ней чаще всего передаются почтовые
сообщения и практически всегда - письма в телеконференции, с ней же работают
многие русскоязычные каналы IRC (кстати, аббревиатура КОИ расшифровывается как
"код обмена информацией"). Чтобы решить проблемы, возникающие при
несовпадении кодировок текста на сервере и клиентской машине, и был создан
русский модуль Apache-RUS для Web-сервера Apache.
В статье мы рассмотрим процесс установки и настройки как самого
сервера, так и механизма перекодирования документов "на лету".
Установка
Свежую версию Apache-RUS можно получить по адресу
ftp://apache.lexa.ru/pub/apache-rus/ ("старшая" часть номера версии,
например 1.3.3, соответствует версии оригинального Apache, "младшая",
например PL27.3, - так называемому patch level, т. е. версии русского модуля).
Рекомендуется устанавливать те версии, которые зарекомендовали себя как
"стабильные". Здесь настройка сервера описывается на примере
Apache_1.3.3rusPL27.3.
Итак, первым делом мы переписываем на свою машину архив (менее 1,5
Мбайт) и распаковываем его:
# ftp ftp://apache.lexa.ru/pub/apache-rus/
apache_1.3.3rusPL27.3.tar.gz
# tar xvzf apache_1.3.3rusPL27.3.tar.gz
После этого входим в созданный при распаковке каталог
apache_1.3.3rusPL27.3 и запускаем сценарий configure:
# cd apache_1.3.3rusPL27.3
# ./configure
При необходимости сценарию можно в явной форме указать аргументы
(их список выдается по команде configure -help). Так, если требуется установить
сервер в иной каталог, нежели стандартный, нужно выполнить "configure
-prefix=<path-to-apache>".
Когда configure отработает, следует, как обычно, дать команды make
и make install (эти действия выполняются пользователем root).
# make
# make install
Теперь сервер установлен в каталоге /usr/local/apache, но
запускать его пока нельзя - сначала мы должны отредактировать файлы настройки
httpd.conf, access.conf и srm.conf в каталоге /usr/local/apache/etc/ (начиная с
версии 27.4 - /usr/local/apache/conf).
Настройка
Настройка конфигурационных файлов Web-сервера - самый
ответственный шаг при его установке. Здесь мы рассмотрим только наиболее
распространенные директивы и их параметры, поскольку полный перечень с
описанием займет не один десяток страниц. Сервер перечитывает конфигурационные
файлы при запуске, а также при получении сигнала -HUP (жесткий рестарт) или
-uSR1 (мягкий рестарт). Если сервер находится в рабочем состоянии, то при
изменении конфигурации его рекомендуется перезапустить командой
# kill -USR1 `cat /usr/local/apache/logs/httpd.pid`
В этом случае имеющиеся соединения не закрываются принудительно и
завершаются обычным образом, а следующие клиенты работают уже с новыми
конфигурационными файлами.
Файл
access.conf
В access.conf содержатся директивы, описывающие права доступа к
каталогам и файлам Web-сервера. Прежде всего решите, в каком каталоге будут
храниться документы. По умолчанию это /usr/local/apache/share/htdocs, однако
многие администраторы предпочитают размещать документы начиная с каталога
/www/<имя_сервера>/, поскольку при такой организации проще
ориентироваться в структуре файлов. Пусть, например, мы создали каталоги:
/www/rmt.ru/
/www/radio-msu.net/
/www/people.radio-msu.net/
Они будут корневыми для соответствующих виртуальных серверов.
Файл access.conf может содержать секции Directory, Location и
Files, которые ограничены одноименными директивами. В параметрах этих директив
могут использоваться символы "?" и "*" , а также регулярные
выражения, предваряемые тильдой, например <Directory
~"^/www.+/a?server">. В секции Directory помещаются инструкции,
относящиеся к определенному каталогу на диске, в секции Location - относящиеся
к виртуальному пути, в секции Files - относящиеся к файлу или группе файлов.
<Directory /www/rmt.ru>
# директивы, относящиеся ко всем документам, хранящимся в
каталоге /www/rmt.ru и вложенных в него
</Directory>
<Location /cgi-bin>
# директивы, относящиеся ко всем документам, доступным по
адресу http://<имя_сервера>/cgi-bin/ <путь_к_файлу>
</Location>
<Files /www/rmt.ru/form.html>
# директивы, относящиеся к файлу form.html из каталога
/www/rmt.ru
</Files>
Различие между секциями Directory и Location состоит в том, что
первая относится к каталогам на диске, вторая - к виртуальному пути (URL),
который браузер запрашивает у Web-сервера. И в той, и в другой могут
присутствовать директивы order, allow и deny, которые позволяют ограничить
доступ к каталогу или URL с различных машин.
Следующие две директивы относятся к секции <Directory>.
Options [options ...]
Возможные значения параметров:
ExecCGI - разрешить выполнение CGI-сценариев в данном каталоге и
его поддереве;
FollowSymLinks - разрешить переходы по символическим ссылкам
(создаваемым командой ln);
Includes - разрешить SSI (Server Side Includes);
Indexes - разрешить выдачу листинга каталога, если в нем нет файла
index.html (или файла индекса, заданного директивой DirectoryIndex);
MultiViews - разрешить поддержку многих языков; по умолчанию она
отключена, и включать ее, как правило, не нужно; поддержка перекодирования
"на лету" для русского языка устанавливается с помощью других
директив, которые мы рассмотрим позже;
All - установить сразу все перечисленные режимы кроме MultiViews.
При отсутствии специальных требований к безопасности вполне
допустимо указать "Options All" в секции <Directory /www>; в
противном случае нужно описать параметры каждого каталога отдельно.
AllowOverride [options ...]
Большинство директив могут задаваться не только в конфигурационных
файлах сервера, но и в файлах .htaccess в каталогах сервера. Директива
AllowOverride определяет набор директив, допустимых в файлах .htaccess.
Параметры могут быть указаны следующие:
AuthConfig - разрешить установку авторизации по имени пользователя
и паролю;
FileInfo - разрешить директивы, отвечающие за типы документов;
Indexes - разрешить директивы, связанные с листингом каталогов;
Limit - разрешить команды allow и deny, которые ограничивают
доступ к файлам в зависимости от адреса клиентского компьютера;
Options - разрешить описанную выше директиву Options.
Учтите, что при включении последнего режима пользователи получают
возможность создавать собственные файлы .htaccess и разрешать в них выполнение
CGI-сценариев. Поэтому если нужно контролировать CGI-сценарии пользователей, не
следует распространять на пользовательские каталоги действие директивы
AllowOverride Options.
Однако во многих случаях (в частности, когда права на изменение содержимого
сервера есть только у администратора) файл access.conf может выглядеть так, как
в листинге 1.
Файл srm.conf
Файл srm.conf содержит директивы, связанные с общими настройками
структуры каталогов сервера. Как правило, в нем достаточно изменить лишь несколько
строк.
DocumentRoot <первый каталог сервера>
Путь к каталогу по умолчанию, индексный файл которого пользователь
получит при обращении к серверу (http://<имя_сервера>/). Эту директиву
следует задать и для каждого из виртуальных серверов (в секции <VirtualHost>
файла httpd.conf).
UserDir <имя пользовательского каталога>
Каталог, в котором пользователи должны размещать свои файлы, чтобы
они были доступны по адресу
http://<имя_сервера>/~<имя_пользователя>/. Стандартно public_html.
Иногда, чтобы облегчить жизнь пользователям, администраторы дают директиву
"UserDir www".
DirectoryIndex <список файлов индекса>
Файл индекса - это тот файл, который будет передан клиенту при
обращении к каталогу. Если указать несколько имен, сервер будет искать
подходящий файл "слева направо". По умолчанию список содержит всего
одно имя - index.html, но принято добавлять в него и другие распространенные
имена индексных файлов. Например, директива может иметь вид: DirectoryIndex
.index.html index.html index.htm index.cgi index.shtml home.html home.htm
default htm default html
Чтобы включить на сервере поддержку CGI-сценариев, следует убрать
знак комментария перед директивами ScriptAlias и AddHandler cgi-script .cgi.
Первая задает каталог на диске, в котором будут храниться исполняемые
программы, а вторая определяет, что все файлы с расширением .cgi должны
обрабатываться как сценарии.
Страницы: 1, 2, 3 |