Описание каталогов
Описание каталогов
В состав URL входит от двух до четырех компонентов.
• Протокол. Первый компонент URL (например, http:// или ftp://) определяет протокол, используемый для взаимодействия. В данной главе в основном обсуждаются серверы, поддерживающие протокол HTTP (в этом случае начинается с символов http://). Для обращения к защищенным узлам используются URL, начинающиеся с https://.
• Имя узла. Имя узла, входящее в состав URL, представляет собой доменное имя компьютера, на котором выполняется Web-сервер. Например, в URL http://www.threeroomco.com/thepage/index.html именем узла является www.threeroomco.com. (Одному компьютеру может соответствовать несколько доменных имен. Такая ситуация возникает в том случае, если в конфигурационном файле сервера DNS для этого компьютера задано несколько записей А или CNAME. (Настройка сервера DNS описывались в главе 18).
• Имя файла. В большинстве случаев HTTP-запрос предполагает передачу файла. В составе URL за именем узла следует имя файла (с указанием имени каталога). Например, в URL http://www.threeroomco.com/thepage/index.html ссылкой на файл является компонент thepage/index.html. Несмотря на то что имя файла отделяется от имени узла косой чертой, этот символ не является обозначением корневого каталога системы Linux. Путь к файлу начинается от корневого каталога документов, определенного для Web-узла. Если имя файла в составе URL не указано, сервер возвращает клиенту Web-страницу по умолчанию, заданную с помощью директивы DirectoryIndex.
• Дополнительная информация. Некоторые URL содержат дополнительную информацию. Например, позиции в составе Web-документа может быть присвоено имя. Это имя указывается в URL после имени файла и отделяется от него символом #. URL, в начале которого указан протокол FTP, может содержать пользовательское имя и пароль.
В конфигурационном файле Apache содержится несколько опций, которые позволяют указывать каталоги для хранения файлов, предназначенных для обработки Web-сервером. Если вы некорректно зададите значения этих опций, некоторые из Web-страниц станут не доступны. Директивы, описывающие каталоги, перечислены ниже.
• ServerRoot. С помощью этой директивы задается корень поддерева файловой системы, используемого для хранения двоичных файлов Apache. В большинстве случаев при инсталляции сервера устанавливается значение "/usr" этой опции. Изменять его не следует.
• DocumentRoot. В каталоге, указанном с помощью этой директивы, хранятся файлы, содержащие статические Web-страницы. По умолчанию для данной опции задается "/home/httpd/html" или другое подобное значение. (В файле httpd.conf имя каталога обычно помещается в кавычки.)
Внимание
Значение директивы DocumentRoot не следует завершать косой чертой. Несмотря на то что в системе Linux такая ссылка на каталог является корректной, для Apache она приведет к возникновению ошибки.
• UserDir. Если первый из каталогов, предшествующих имени файла в составе URL, начинается с символа ~, Apache интерпретирует его имя как имя пользователя и старается найти файл в рабочем каталоге соответствующего пользователя. Директива UserDir указывает имя подкаталога, в котором следует искать файл. Предположим, что для данной директивы задано значение public_html и удаленный пользователь ввел в поле адреса броузера URL http://www.threeroomco.compilation/~abrown/photos.html. Тогда Apache попытается вернуть пользователю файл photos.html, расположенный в подкаталоге public_html рабочего каталога пользователя abrown. Если задано значение disabled данной директивы, обращение к файлам, находящимся в рабочих каталогах пользователей, запрещено. Если вы хотите запретить доступ лишь к части пользовательских каталогов, вам надо после ключевого слова disabled указать имена пользователей, рабочие каталоги которых закрыты для обращения. Данная директива часто помещается в состав директивы <IfModule>, которая проверяет, загружен ли модуль Apache, предназначенный для поддержки пользовательских каталогов. (Модули Apache будут рассматриваться в следующем разделе.)
• DirectoryIndex. Некоторые URL не содержат имя файла; в них указано лишь имя каталога (в некоторых случаях оно завершается косой чертой). Когда сервер Apache получает подобный URL, он сначала старается найти файл индекса, имя которого задается с помощью директивы DirectoryIndex. В большинстве случаев по умолчанию принимается имя index.html, установленное в качестве значения данной опции при инсталляции сервера. При необходимости вы можете задать другое имя файла. Если пользователь введет URL http://www.threeroomco.com/public/, Apache вернет файл index.html, находящийся в подкаталоге public каталога, указанного с помощью директивы DocumentRoot. Если вы укажете несколько файлов индекса, Apache станет поочередно искать все файлы.
Во многих дистрибутивных пакетах при установке Apache задаются каталоги, которые вполне можно использовать в процессе работы сервера. Вам надо лишь просмотреть конфигурационный файл, выяснить имена этих каталогов и поместить в них файлы, которые Web-сервер должен предоставлять пользователям. Если вы предпочитаете размещать свои файлы в других каталогах, вам надо внести соответствующие изменения в состав конфигурационного файла. Возможно, вам потребуется изменить файл индекса. Необходимость в этом возникает в основном тогда, когда вы устанавливаете Apache взамен другого сервера, в котором использовалось другое имя файла индекса.