Как работает apache windows

Как запустить Apache на Windows

Веб-сервер Apache – это служба, которая работает в фоне и у которой нет графического интерфейса. Эта служба устанавливается и запускается в командной строке.

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

Настройка Apache на Windows

На самом деле, базовая настройка веб-сервера крайне проста – необходимо только правильно указать путь до папки, в которой помещены веб-сайты – этого будет достаточно для запуска веб-сервера.

Кстати, в конфигурационном файле уже прописаны значения многих параметров по умолчанию. К примеру, по умолчанию корневой директорией является c:/Apache24. Поэтому если папку Apache24 из скаченного архива вы разархивируете в корень диска C, то вы можете вообще без настройки запустить веб-сервер следующей командой:

И по адресу http://localhost увидите стандартную страницу веб-сервера, которая сообщает, что он работает:

Кстати, для открытия командной строки в Windows используйте сочетание клавиш Win+x и в открывшемся окне выберите Windows PowerShell (администратор).

Настройка веб-сервера выполняется посредством редактирования текстового файла, который размещён в папке Apache24\conf\ и называется httpd.conf.

Этот файл состоит из директив с определёнными значениями. Эти директивы регулируют поведение веб-сервера. Но больше чем директив в этом файле комментариев – они начинаются с решётки (#) – комментарии нужны для человека, который настраивает веб-сервер. Сам сервер строки начинающиеся с # просто игнорирует. Т.е. вы можете просто удалить их.

Этот файл содержит не все возможные директивы – многие из них здесь отсутствуют, поскольку не требуются для большинства задач. Даже в этой заметки мы рассмотрим не все доступные в файле настройки – если описание чего-то пропущено, значит просто не нужно это трогать.

Как уже было сказано, важно установить путь до папки с веб-сайтами. Если она установлена неправильно (например, отсутствует на компьютере), то веб-сервер не запуститься.

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

  • используйте абсолютные пути до файла (которые начинаются с буквы диска, затем следуют все вложенные папки), а не относительные – у сервера свои правила интерпретации относительных путей, поэтому вы можете не понять друг друга;
  • всегда используйте прямые слеши, а не обратные (т.е., «c:/apache» вместо «c:\apache»).

Итак, откройте файл Apache24\conf\httpd.conf любым текстовым редактором (хоть Блокнотом) и вот мы уже готовы к настройке веб-сервера.

Первой идёт директива ServerRoot – это верхняя директория дерева, в которой хранятся файлы конфигурации сервера и журналов. Не добавляйте слэш на конец пути папки.

Значение по умолчанию устанавливается двумя директивами:

Первая директива присваивает значение переменной SRVROOT, которое по умолчанию «c:/Apache24». Вторая директива присваивает значение переменной $ настройке ServerRoot.

ServerRoot — это та папка, в которой находятся все файлы веб-сервера – поменяйте значение на то, куда вы распаковали файлы веб-сервера. Это можно сделать используя конструкцию из двух переменных:

Либо если вы не планируете снова использовать переменную $ (а она по умолчанию используется далее!), то можно сократить запись из двух строк до одной строки:

Директива Listen позволяет вам привязать Apache к определённому IP адресу и/или порту. Значение по умолчанию:

Оно означает, прослушивать 80 порт на любом IP адресе (т.е. любом сетевом интерфейсе), доступном в вашей системе. Вы можете указать конкретный IP адрес, который нужно прослушивать и, следовательно, на запросы с которого отвечать:

Можно указать несколько портов:

Или несколько IP и портов:

Вы можете использовать любые сочетания, главное правило – порт на указанном интерфейсе (IP) не должен быть занят другой программой.

Значение по умолчанию вполне подходит для локального веб-сервера – т.е. здесь можно просто ничего не менять.

Далее идёт большой список модулей. Некоторые их них отключены (строки закомментированы, т.е. начинаются с #), а некоторые включены.

На самом деле, всё действительно необходимое уже включено – и для работы большинства веб-сайтов менять ничего не нужно – особенно на локальном веб-сервере. Но есть одно исключение – модуль mod_rewrite по умолчанию отключён. Это очень популярный модуль, например, все ЧПУ (понятные для человека адреса страниц) делаются с помощью него. Вы можете его включить, для этого достаточно найти строку:

и раскомментировать её, т.е. заменить на:

Директива ServerAdmin содержит e-mail администратора, этот адрес электронной почты пишется на некоторых страницах веб-сервера, которые автоматически генерируются в случае возникновения ошибок. Подразумеваются, что по этому адресу можно связаться с администратором.

Директива ServerName – это то, как сервер сам себя идентифицирует (называет). Для локального веб-сервера поменяйте строку

запрещает доступ к файловой системе веб-сервера (пока это не разрешено явно) и запрещает использовать файлы .htaccess (пока это не разрешено явно).

Читайте также:  Windows post install wizard что это

Далее идёт довольно объёмная конструкция, но если удалить из неё комментарии, то получается следующее:

DocumentRoot – это директория, где по умолчанию находятся сайты. По умолчанию именно там ищутся все пришедшие на веб-сервер запросы. Укажите здесь путь до корневой папки в веб-документами. Конечный слэш писать не нужно.

Конструкция нам уже встречалась. Но здесь указывается конкретная папка, для который делаются настройки. Эти настройки перезаписывают общие, которые указаны ранее.

Пути до папок в DocumentRoot и Directory не забудьте поменять на свои!

Обратите внимание, что для установки настроек вновь используется переменная $ , значение которой было присвоено в самом начале. Если использовать синтаксис с $ , то корневая папка документов должна обязательно находится в корневой папке сервера. Я настраиваю сервер по-другому — у меня исполнимые файлы отделены от файлов сайтов, поэтому вместо переменной, можно просто прописать пути до нужной папки с сайтами:

Директива Options включает разные опции. По умолчанию указаны опции Indexes и FollowSymLinks. Первая (Indexes) означает показывать индексные файлы, если запрос не содержит имени файла. Допустим, пользователь открывает адрес http://localhost/site/, то если в этой папке есть индексный файл (например, index.html или index.php), то будет показан этот файл. Понятно, что если сделан запрос на определённый файл, например, http://localhost/site/page.html, то будет показана запрошенная страница.

Вторая опция (FollowSymLinks) означает следовать символьным ссылкам. Это что-то вроде ярлыков в Windows. В Linux с помощью таких ссылок можно собрать в одном сайте файлы, размещённые в различных папках файловой системы. На самом деле, для начинающих администраторов сервера это не очень нужно.

Директива AllowOverride установлена на None, это означает запрет использовать файлы .htaccess. На своём сервере я разрешаю файлы .htaccess (нужны для mod_rewrite, ограничения доступа), поэтому я заменяю её значение на All, получается так:

А директива Require all granted открывает посетителям доступ для веб-документов.

Я уже упомянул индексные файлы, перечень индексных файлов устанавливается конструкцией:

Там всего один файл — index.html. Можно дописать любое количество своих собственных. Я меняю:

Другие настройки обычно не требуется менять для локального веб-сервера.

Введение в Apache

Если Apache всегда казался вам черным ящиком? Пришло время узнать, что происходит за кулисами!

Apache — самый популярный веб-сервер.

Задача веб-сервера заключается в том, чтобы принимать запросы от клиентов и отправлять ответы на эти запросы. Веб-сервер получает URL-ссылку, переводит его в имя файла (для статических запросов) и отправляет этот файл через Интернет с локального диска или, на пример, переводит его на имя программы (для динамических запросов), выполняет ее, а затем отправляет выходные данные этой программы обратно через Интернет запрашивающей стороне. Если по какой-либо причине веб-сервер не смог обработать и завершить запрос, вместо этого он отправит сообщение об ошибке. Слово, веб-сервер, может ссылаться на сам компьютер (компьютер / оборудование) или на программное обеспечение, которое получает запросы и отправляет ответы.

Apache является самым популярным веб-сервером (после него идет Microsoft IIS). Можно назвать несколько причин его популярности:

  1. Его можно бесплатно скачать и установить.
  2. У него открытый исходный код: он доступен всем и каждому, что в принципе позволяет любому человеку (кому это по силам) настроить код, оптимизировать его и исправить ошибки и недочеты в безопасности. Пользователи могут добавлять новые функции и писать новые модули.
  3. Он подходит для любых потребностей: Apache можно использовать для небольших сайтов с одной или двумя страницами или для больших веб-сайтов с сотнями и тысячами страниц, который каждый месяц обслуживает миллионы постоянных посетителей. Он может обслуживать как статический, так и динамический контент.

Что такое Apache?

Функциональность, которая вам не нужна или важна, может быть легко удалена.

HTTP-сервер Apache — это программное обеспечение (или программа), которое работает в фоновом режиме в соответствующей операционной системе, поддерживает многозадачность и предоставляет услуги для других приложений, которые к ней подключаются, например, клиентские веб-браузеры. Apache был впервые разработан для работы с операционными системами Linux / Unix, но позже был адаптирован для работы в других системах, включая Windows и Mac. Бинарный файл Apache, работающий под UNIX, называется HTTPd (сокращенно для HTTP-daemon), а под win32 называется Apache.exe.

Установка Apache на Linux не требует много навыков программирования (хотя это не слишком легко). Его установка на платформе Windows прямолинейна, так как вы можете запускать ее через графический интерфейс пользователя.

Оригинальное ядро ​​Apache является довольно простым и содержит ограниченное количество функций. Его сила скорее связана с дополнительной функциональностью, внедренной во многие модули, которые написаны программистами и могут быть установлены для расширения возможностей сервера. Чтобы добавить новый модуль, все, что вам нужно сделать, это установить его и перезапустить сервер Apache. Функциональность, в которой вы не нуждаетесь или хотите, может быть легко удалена, что на самом деле считается хорошим моментом, так как она делает сервер маленьким и легким, он начинает работать быстрее, потребляет меньше системных ресурсов и памяти и делает сервер менее подверженным уязвимостям в плане безопасности. Сервер Apache также поддерживает сторонние модули, некоторые из которых были добавлены в Apache 2 как постоянные функции. Сервер Apache очень легко интегрируется с другими приложениями с открытым исходным кодом, такими как PHP и MySQL, что делает его еще более мощным, чем он есть.

Веб-сервер в его простейшей форме — это компьютер со специальным программным обеспечением и подключением к Интернету, которое позволяет ему взаимодействовать с другими устройствами.

Каждое устройство, подключенное к сети, имеет IP-адрес, через который другие подключаются к нему и общаются с ним. Этот IP-адрес похож на обычный адрес, который вам нужен в реальной жизни, чтобы позвонить или посетить кого-то. Если у них нет адреса, вы не знаете, как позвонить или связаться с ними. IP-адреса служат точно для такой же цели. Если у устройства не было такого устройства, другие компьютеры в той же сети не знали бы, как его достичь.

Читайте также:  Low level hook windows

Сервер Apache предлагает ряд услуг, которые клиенты могут использовать. Эти службы предлагаются с использованием различных протоколов через разные порты и включают в себя: протокол передачи гипертекста (HTTP), обычно через порт 80, простой протокол передачи почты (SMTP), обычно через порт 25, службу доменных имен (DNS) для сопоставления доменных имен их соответствующие IP-адреса, обычно через порт 53 и протокол передачи файлов (FTP) для загрузки и скачивания файлов, обычно через порт 21.

Как работает Apache

Основная роль Apache связана с коммуникацией по сетям и использует протокол TCP / IP (протокол управления передачей / интернет-протокол, который позволяет устройствам с IP-адресами в одной сети взаимодействовать друг с другом).

Протокол TCP / IP представляет собой набор правил, которые определяют, как клиенты обрабатывают запросы и как реагируют серверы, и определяют, как данные передаются, доставляются, принимаются и подтверждаются.

Сервер Apache настроен для работы через файлы конфигурации, в которые добавляются директивы для управления его поведением. В своем состоянии ожидания Apache прослушивает IP-адреса, указанные в его файле конфигурации (HTTPd.conf). Всякий раз, когда он получает запрос, он анализирует заголовки, применяет правила, указанные для него в файле Config, и принимает меры.

Но на одном сервере может размещаться множество веб-сайтов, а не только один, но для внешнего мира они кажутся отделенными друг от друга. Чтобы достичь этого, каждому из этих сайтов должно быть присвоено другое имя, даже если все они будут отображаться в конечном итоге на одном и том же компьютере. Это достигается за счет использования так называемых виртуальных хостов.

Поскольку IP-адреса трудно запомнить, мы, как посетители определенных сайтов, обычно вводим соответствующие им имена доменов в поле URL-адреса в наших браузерах. Затем браузер подключается к DNS-серверу, который переводит имена доменов на их IP-адреса. Затем браузер берет возвращаемый IP-адрес и подключается к нему. Браузер также отправляет Host header с запросом, чтобы, если сервер размещает несколько сайтов, он будет знать, какой из них должен обслуживать.

Например, ввод текста на www.google.com в поле адреса вашего браузера может отправить следующий запрос на сервер по этому IP-адресу:

Первая строка содержит несколько фрагментов информации. Во-первых, существует метод (в данном случае это GET), URI, который указывает, какую страницу нужно извлечь или какую программу нужно запустить (в этом случае это корневой каталог, обозначенный /), и, наконец, есть HTTP-версия (которая в данном случае является HTTP 1.1).

HTTP — это протокол без ответа.

HTTP — это протокол без ответа. Это набор правил, регулирующих связь между клиентом и сервером. Клиент (обычно, но не обязательно веб-браузер) делает запрос, сервер отправляет ответ, а связь прекращается. Сервер не ожидает дополнительной связи, как в случае с другими протоколами, которые остаются в состоянии ожидания после завершения запроса.

Если запрос выполнен успешно, сервер возвращает код состояния 200 (что означает, что страница найдена), заголовки ответов вместе с запрошенными данными. . Заголовок ответа сервера Apache может выглядеть примерно так:

Первая строка в заголовке ответа — это строка состояния. Он содержит версию HTTP и код состояния. Далее следует дата, а затем некоторая информация о хост-сервере и извлеченных данных. Заголовок Content-Type позволяет клиенту узнать тип извлеченных данных, чтобы он знал, как его обрабатывать. Content-Lengthlets клиент знает размер тела ответа. Если запрос не пошел, клиент получит код ошибки и сообщение, например, следующий заголовок ответа в случае ошибки страницы, не найденной:

Протокол TCP / IP

TCP / IP — это фактически два протокола, построенные один поверх другого.

TCP / IP — это фактически два протокола, построенные один поверх другого. IP-протокол отвечает за передачу переданных данных из одной точки в другую. Он переносит данные между двумя точками, разбивает их на меньшие пакеты, присоединяет исходный и целевой адреса к каждому пакету и передает данные.

TCP обрабатывает часть, которая включает установление соединения между двумя сторонами, следя за тем, чтобы данные доходили до места назначения, заботясь о любой потере данных и управлении восстановлением данных.

Читайте также:  Windows zoom out window

После получения сообщения сторона-получатель отправляет сообщение с подтверждением (ACK) отправителю, если все идет хорошо, сообщая ему о прибытии данных. Если что-то пойдет не так, как, например, возникновение ситуации с потерей данных, адресат отправляет сообщение Not Acknowledged (NAK), сообщая об этом отправляющему узлу проблемы и информируя его о необходимости повторной передачи пакета данных.

Как обсуждалось ранее, Apache предлагает множество сервисов, с которыми клиенты могут захотеть подключиться, чтобы использовать или извлекать выгоду. TCP управляет каждой службой, так что к ней осуществляется доступ через определенный порт для различения различных служб. Таким образом, он гарантирует, что любой данный интерфейс (или хост) может предлагать несколько сервисов. . Поэтому, когда клиент подключается к хосту, он передает номер порта вместе с IP-адресом. Браузеры используют протокол HTTP, который по умолчанию использует порт 80, поэтому нет необходимости в дальнейшей спецификации.

Следующее изображение представляет собой быстрый снимок моего FTP-программного обеспечения (WinScp). Как вы видите, для FTP-сервера мне не только нужно указать IP-адрес (или ввести имя домена), но мне также необходимо указать номер порта, через который мой сервер предоставляет услугу. В случае FTP номер порта равен 21. В случае SFTP (защищенный FTP) номер порта равен 22.

В UNIX список сервисов, предлагаемых вместе со своими номерами портов, можно найти в файле / etc / services. Следующая команда отобразит содержимое файла:

Ниже приведен снимок экрана с частью файла. Как вы можете видеть, сервисы перечислены в первом столбце, за которым следует номер порта, к которому нужно получить доступ, и имя протокола, используемого службой.

Под окнами файл называется Services, и его можно найти в папке C: \ WINNT \ system32 \ drivers \ etc \

Inetd

Чтобы сохранить системные ресурсы, UNIX обрабатывает многие свои службы через internet daemon.

Чтобы сохранить системные ресурсы, UNIX обрабатывает многие свои службы через internet-daemon (inetd), отличие от постоянно работающего daemon. Inetd — суперсервер, который слушает различные порты и обрабатывает запросы на соединение, получая их, инициируя новую копию соответствующего daemon (программы). Новая копия программы затем берет ее оттуда и работает с клиентом, а inted возвращается к прослушиванию портов сервера, ожидающих обработки новых клиентских запросов. После того, как запрос обработан и связь завершена, daemon завершает работу.

Общая структура

Как уже упоминалось ранее, Apache может быть установлен в различных операционных системах. Независимо от используемой платформы, размещенный веб-сайт, как правило, имеет четыре основных каталога: htdocs, conf, logs, cgi-bin.

htdocs является каталогом документов веб-сервера Apache по умолчанию, то есть это общедоступный каталог, содержимое которого обычно доступно для клиентов, подключающихся через Интернет. Он содержит все статические страницы и динамический контент, которые будут обслуживаться после получения HTTP-запроса для них. Поскольку файлы и подкаталоги в htdocs доступны для общественности, правильная обработка разрешений на файлы имеет большое значение, чтобы не поставить под угрозу безопасность и безопасность сервера.

conf — это каталог, в котором расположены все файлы конфигурации сервера. Файлы конфигурации в основном представляют собой текстовые файлы, в которых добавляются директивы для управления поведением и функциональностью веб-сервера. Каждая директива обычно помещается в отдельную строку, а хеш (#) указывает комментарий, поэтому строка, пройденная им, игнорируется.

logs — это каталог, в котором хранятся журналы сервера, журналы доступа Apache и журналы ошибок. HTTP-сервер Apache предоставляет множество различных механизмов для регистрации всего, что происходит на нем, от первоначального запроса через процесс сопоставления URL-адресов до окончательного разрешения соединения, включая любые ошибки, которые могли произойти в процессе. В дополнение к этому сторонние модули могут предоставлять возможности ведения журнала или вводить записи в существующие файлы журналов, а приложения, такие как скрипты PHP или другие обработчики, могут отправлять сообщения в журнал ошибок сервера.

cgi-bin — это каталог, в котором хранятся скрипты CGI. CGI (Common Gateway Interface) определяет способ взаимодействия веб-сервера с внешними программами создания контента, которые часто называются CGI-программами или CGI-скриптами. Это программы или сценарии оболочки, которые написаны для выполнения Apache от имени своих клиентов.

Важно отметить, что вышеупомянутые имена файлов и каталогов (а также местоположения) могут отличаться от одного сервера к другому в зависимости от установленного аромата Apache и операционной системы, в которой он работает. Роли, однако, остаются прежними.

Вывод

. с более чем половиной сайтов в Интернете, работающих на нем.

Apache был самым популярным веб-сервером в Интернете с 1996 года, связанный с более чем половиной сайтов в Интернете, работающих на нем. Он сыграл ключевую роль в формировании и создании World Wide Web, чем он и является до сегодняшнего дня. Причины его успеха очевидны и, как видно, он, вероятно, останется в лидерах, по крайней мере, в течение довольно долгого времени. Наш сегодняшний туториал должен стать вводной сессией для этого мощного программного обеспечения, и я надеюсь, что мы помогли понять, насколько Apache отличный инструмент и как он работает.

Оцените статью