HTTP сервер Apache Версия 2.4
Если вы абсолютный новичок в работе с HTTP-сервером Apache или в запуске веб-сайтов вообще, вы можете не знать с чего начать или какие вопросы задавать. Этот документ познакомит вас с основами.
Адреса в Интернете записываются с помощью URL — Uniform Resource
Locator (унифицированный указатель ресурса), который указывает на
используемый протокол (например, http
), имя сервера
(например, www.apache.org
), URL-путь (например,
/docs/current/getting-started.html
) и, возможно,
строку запроса (например, ?arg=value
), используемую для
передачи серверу дополнительных аргументов.
Клиент (например, веб-браузер) подключается к серверу (например, вашему HTTP-серверу Apache), используя определённый протокол, и отправляет запрос на ресурс, используя URL-путь.
URL-путь может обозначать множество вещей на сервере. Это может быть
файл (как getting-started.html
), обработчик
(как server-status) или файл какой-то
программы (как index.php
). Мы рассмотрим это подробней ниже,
в разделе Контент веб-сайта.
Сервер отправляет ответ, содержащий код состояния и, опционально, тело ответа. Код состояния указывает, был ли запрос успешно обработан, а если нет, то какая ошибка произошла. Это говорит клиенту, что он должен делать с ответом. Вы можете прочитать о возможных кодах ответа на Вики HTTP-сервера Apache.
Детали транзакции и условия возникновения ошибки записываются в файлы журналов. Это описывается более подробно ниже, в разделе Файлы журналов и устранение неполадок.
Для того чтобы соединиться с сервером, клиент сначала должен преобразовать имя сервера в IP-адрес — место в Интернете, где находится сервер. Таким образом, чтобы ваш веб-сервер был доступен, необходимо, чтобы имя сервера было в DNS.
Если вы не знаете как это сделать, вам нужно обратиться к сетевому администратору или поставщику услуг Интернета (провайдеру). Они могут сделать это для вас.
Несколько хостов могут указывать на один и тот же IP-адрес, а один физический сервер может иметь больше одного IP-адреса. Таким образом на одном физическом сервере вы можете запустить больше одного сайта с помощью особенности: виртуальные хосты.
Если вы тестируете сервер, не имеющий выхода в Интернет, можете поместить
имена хостов в файл hosts для того что бы имя разрешалось локально.
Например, вы можете добавить запись для отправки запросов к
www.example.com
на локальный компьютер, для тестирования.
Эта запись будет выглядеть так:
127.0.0.1 www.example.com
Файл hosts, скорее всего, расположен в /etc/hosts
или
C:\Windows\system32\drivers\etc\hosts
.
HTTP-сервер Apache настроен с помощью простых текстовых файлов.
Эти файлы могут располагаться в разных местах, в зависимости от того как вы
установили сервер. Общие места расположения файлов можно найти в
Вики
HTTP-сервера Apache. Если вы установили httpd из исходного кода,
то расположение файлов конфигурации по умолчанию следующее:
/usr/local/apache2/conf
.
По умолчанию файл конфигурации называется apache2.conf
.
Это тоже может варьироваться в сторонних дистрибутивах сервера.
Конфигурация часто разбивается на несколько небольших файлов, для
удобства управления. Эти файлы загружаются через директиву
Include
.
Имена или расположения этих файлов конфигурации
могут сильно отличаться от одной установки к другой.
Расположите и разделите эти файлы наиболее подходящим для
вас образом. Если расположение файлов по умолчанию,
не имеет смысла для вас, не стесняйтесь изменить его.
Сервер настраивается путём размещения директив конфигурации в этих файлах конфигурации. Директива — это ключевое слово с одним или несколькими аргументами, устанавливающими её значение.
На вопрос: «Где я должен прописать эту директиву?» – обычно
отвечают, там где ты хочешь использовать её. Если это глобальная настройка,
она должна располагаться в конфигурационном файле вне разделов
<Directory>
,
<Location>
,
<VirtualHost>
или других
разделов. Если настройка относится только к конкретному каталогу,
значит она должна быть внутри секции
<Directory>
,
которая описывает этот каталог, и так далее.
Смотри документ Разделы конфигурации
с подробным описанием вышеуказанных разделов.
В дополнение к основному файлу конфигурации, некоторые директивы могут
располагаться в файлах .htaccess
, расположенных в папках с
контентом. Файлы .htaccess
в первую очередь предназначены для
людей у которых нет доступа к главному конфигурационному файлу сервера.
Вы можете узнать больше о файлах .htaccess
в инструкции
.htaccess
.
Содержимое сайта может принимать различные формы, но в широком смысле разделяется на статический и динамический контент.
Статический контент — это, например, HTML-файлы, файлы изображений,
CSS-файлы и другие файлы, которые просто лежат на диске.
Директива DocumentRoot
указывает
где в вашей файловой системе, вы должны разместить эти файлы.
Эта директива устанавливается глобально или отдельно для каждого
виртуального хоста. Посмотрите в своём файле(ах) конфигурации,
чтобы узнать, как именно эта директива используется на вашем сервере.
Обычно, когда запрашивается каталог, без указания имени файла, то будет
отдан документ с именем index.html
. Например, если для директивы
DocumentRoot
установлено значение /var/www/html
и приходит запрос на адрес
http://www.example.com/work/
,
то файл расположенный по пути
/var/www/html/work/index.html
будет отдан клиенту.
Динамический контент — это всё что генерируется во время запроса и может изменяться от запроса к запросу. Существует множество способов создания динамического контента. Различные обработчики доступны для генерации содержимого. Могут быть написаны специальные CGI программы для генерации контента на сайте.
Для написания кода с разнообразным функционалом могут использоваться сторонние модули, такие как mod_php. Множество сторонних приложений, написанных на различных языках программирования, и утилит доступны для скачивания и установки на ваш HTTP-сервер Apache. Поддержка сторонних продуктов выходит за рамки этой документации. При необходимости вы должны самостоятельно найти их документацию или форумы поддержки, где вы сможете получить ответы на свои вопросы.
Для вас, как администратора HTTP-сервера Apache, самые ценные активы — это файлы журналов (лог-файлы), в частности, журнал ошибок. Исправление любой проблемы без журнала ошибок можно сравнить с вождением автомобиля с закрытыми глазами.
Расположение журнала ошибок задаётся директивой
ErrorLog
,
которая может быть установлена глобально или для каждого виртуального хоста.
Записи в журнале ошибок расскажут вам, что и когда пошло не так.
Зачастую они также смогут подсказать, как что-то исправить.
Каждая запись в журнале ошибок содержит код ошибки,
по которому вы можете поискать в Интернете более подробное
описание того, как решить проблему.
Вы также можете настроить журнал ошибок так, чтобы в него записывался
идентификатор журнала, который можно сопоставить с записями в журнале
доступа — это поможет определить, какой запрос какую ошибку вызвал.
Больше о логирование вы можете узнать в документации о журналах.
Теперь, когда вы знакомы с основами, пора двигаться дальше.
Этот документ содержит только базовую информацию. Мы надеемся, что она поможет вам начать работу, но есть множество других вещей, о которых вам, возможно, нужно узнать.