Функции, специфичные для apache


Содержание

Функции, специфичные для apache

class apache_lookup_uri (string filename);

Выполняет подробный запрос для указанного URI. Получает всю важную информацию о заданном ресурсе и возвращает эту информацию по классам. Описание возвращаемых классов:

status
the_request
status_line
method
content_type
handler
uri
filename
path_info
args
boundary
no_cache
no_local_copy
allowed
send_bodyct
bytes_sent
byterange
clength
unparsed_uri
mtime
request_time

apache_note

Описание

string apache_note (string note_name, string [ note_value ]);

apache_note() это специальная функция Apache которая получает и устанавливает значения в таблице нотаций(примечаний) запроса. При вызове с одним аргументом она возвращает текущее значение note_name . При вызове с двумя аргументами она устанавливает значение нотации(примечания) note_name в note_value и возвращает предыдущее значение нотации(примечания) note_name .

getallheaders

Описание

array getallheaders (void);

Эта функция возвращает ассоциативный массив из всех HTTP заголовков в текущем запросе.

Пример 1. GetAllHeaders()

Этот пример покажет все заголовки текущего запроса

Примечание: GetAllHeaders() на данный момент это поддерживается только если PHP запущен как модуль Apache .

virtual

Описание

int virtual (string filename);

virtual() является спец.функцией Apache, которая эквивалентна в mod_include. Она выполняет подзапрос Apache. Применима для включения CGI скриптов или .shtml файлов, или чего-нибудь еще, на чем вы должны выполнить парсинг(анализ текста) через Apache. Помните, что для CGI скриптов, скрипт должен выдавать правильнывые заголовки. Т.е. должне быть как минимуцм Content-type заголовок. Для PHP файлов, вы должны использовать include() или require() .

Хостинг в Европе для новичков (от 25 руб/мес) и VIP-хостинг для профессионалов (от 1000 руб/мес)

Скидка 25% на все тарифы хостинга по промокоду STDCITF

Функции, специфичные для apache

Итак, описание основных конструкций языка (за исключением классов — о них позже) сделано! Теперь следует попрактиковаться на реальном проекте. Но прежде все же надлежит уделить внимание некоторой рутине — хотя бы бегло рассмотреть основной набор функций языка. Большая часть этих функций находится в подключаемых модулях, которые собираются во время линковки интерпретатора (под win32 наборы функций выполнены как dll -и). Исключения составляют некоторые особо популярные группы функций, встроенные в ядро интерпретатора (встраиваемость зависит от версии PHP ). Например, в PHP версии 4 функции доступа к MySQL встроены в интерпретатор.

Под рассмотрение (причем весьма беглое) подпадет некоторое подмножество функций. Я исключу из рассмотрения функции, специфичные для SQL -серверов (кроме, MySQL — именно его мы будем использовать в наших проектах, а работа с остальными SQL -серверами выполняется аналогичным образом), и некоторые другие из числа редкоиспользуемых (мною не используемых? ;).

Кроме того, я еще раз подчеркну — обзор будет весьма беглым. Подробнее разбирательством с возможностями PHP мы займемся по ходу работы над проектами.

Однако, приступим.

  1. Функции, специфичные для Apache -сервера я пока опускаю, т.к. под win32 они не идут (если я правильно понял readme.txt из дистрибутива PHP , то и не должны идти — под win32 PHP живет в CGI -выполняемом режиме, а не как модуль apache ). Под *nix -ом я пока проверить не имею возможности. Подождем до лучших времен.
  2. Функции работы с массивами. Эта группа одна из самых многочисленных (если не самая многочисленная). Причем под PHP версии 4 она раза в два больше, чем под 3-й версией. Базовыми для обеих версий можно считать функцию конструирования массива array() , функции сортировки (штук 9), функции навигации по массиву (перемещение внутреннего указателя — подробности в следующих шагах), информационные функции (количество элементов массива и некоторые другие), выборка данных. Как я уже сказал, в 4-й версии добавлена большая группа функций array_xxxxx() , где xxxxx — предназначение. Например, array_push() добавляет элемент в конец массива. Эта группа отвечает за сравнения массивов, множественные операции (объединение, пересечение, разность и пр.), добавление/удаление элемент и некоторые другие операции.
  3. 4 функции работы со словарем.
  4. Математические функции над числами произвольной точности.
  5. Функции работы с календарями.
  6. Поддержка COM -объектов на win32 -платформе.
  7. В 4-й версии добавлены функции получения информации о классах в PHP

В следующем шаге мы продолжим беглый обзор функций PHP . А сейчас в качестве постскриптума хотелось бы сказать вот о чем:

В фидошной конференции по PHP на днях пробегала такая ссылка: http://it.sinor.ru/?isnum=4. Автор в этой статье описывает метод установки PHP как модуль Apache под win32 . К сожалению мой апач обиделся до глубины души от предложения загрузить в качестве модуля php4apache.dll . А жаль. Прийдется ставить линукс. В прочем, может, у меня просто руки ни к тому месту прикручены? ;)

Далее. Опять же на днях (вот везет!) попался мне один чудный сайт «Опыты» (http://exper.ural.ru/). С огромным удовольствием прочитав его содержимое, я наткнулся на статью «Использование транслятора XML в PHP.», которая сильно повлияла на мои планы по дальнейшим шагам. Дело в том, что, используя функции XML -парсинга можно разрабатывать сайт на XML , а на выходе получить обычный HTML -файл. Что это дает? Самодокументируемый код, возможность генерить браузерозависимый код на сервере (а не тащить кучу кода на клиентскую машину и делать JavaScript -овые проверки версии браузера — на этом сайте, кстати, много материала посвящено различиям в интерпретации HTML — и JavaScript -кода браузерами IE и NN ) и другие приятности. Мы в дальнейшем еще вернемся к теме XML .

Еще одна новость — издательство «Символ» решило учинить и на нашей улице праздник! (Не ищите на их сайте информацию об этих новинках — ее там нет! Я ничего не понимаю в их маркетинге.) На днях (опять же!) к нам пришла по почте книга, к которой прилагался рекламный буклет с планами издательства «Символ». Вот что я там узрел из их планов на конец этого — начало будущего года. Во-первых, Хариш Рават и др. Профессиональное программирование на PHP (!). 1100 страниц (!!). Я плакал ! ;)

От O’Reilly : Стивен Спейнауэр. Справочник вебмастера. 2-е издание. Брэт МакЛафлин и др. Java и XML.

Ну наконец-то! Вот ОНА: Ларри УОЛЛ. Программирование на Perl. 3-е издание. 1200 страниц (. )

Да-да. Та самая кэмэлбука! Далее. Аллигатор (классное имя ;) Декарт (и фамилия ;) и др. Программирование на Perl DBI. Дэвид Бланк-Эдельман и др. Perl для системного администрирования. Скотт Гуэлич. CGI-программирование на Perl.

Специфическая ошибка службы: 1, при попытке запустить Apache

16.04.2013, 17:35

Специфическая ошибка службы 1
Здравствуйте, целый день пытаюсь настроить apache, но он постоянно выбивает такую ошибку (см.

При попытке запуска WCF службы на другой машине возникает ошибка TCP 10013
Добрый день. Написал WCF-службу. Хостом является Windows-служба. На одной из машин работает.

Ошибка при попытке запустить программу
Доброго времени суток, друзья. Дело в том, что я пытаюсь самостоятельно освоить руби, но при.

При попытке запустить моделирование выводится ошибка.
Текст ошибки: «Warning: Using a default value of 0.2 for maximum step size. The simulation step.

Ошибка при попытке запустить модель в режиме виртуального времени
Здравствуйте. Подскажите пожалуйста, в чем может быть проблема. Я построил дискретно-событийную.

Функции Apache

Содержание

  • apache_child_terminate — Завершить процесс Apache по окончании текущего запроса
  • apache_get_modules — Возвращает список загруженных модулей сервера Apache
  • apache_get_version — Возвращает версию Apache
  • apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache
  • apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения
  • apache_note — Возвращает и устанавливает уведомления к запросу Apache
  • apache_request_headers — Получает список всех заголовков HTTP-запроса
  • apache_reset_timeout — Сбрасывает таймер сервера Apache
  • apache_response_headers — Возвращает список всех HTTP-заголовков ответа Apache
  • apache_setenv — Устанавливает переменную subprocess_env Apache
  • getallheaders — Возвращает все заголовки HTTP-запроса
  • virtual — Выполняет подзапрос Apache

User Contributed Notes 5 notes

If you are trying to find a Handler to use with apache’s mod_mime functions (e.g. SetHandler). Use the MIME type associated with php.

e.g. SetHandler application/x-httpd-php

Important info for Apache2 users that have several virtual hosts.

It seems php_flag directive has a different behaviour under Apache 2 (from what it is under 1.3) when used inside block.

If you override global php.ini settings with php_flag for one of your virtual host — then your other non-customized virtual hosts may use this overrided settings as well. php_flag records are messed up among different virtual hosts under single Apache 2 server. It may result from Apache 2 multi-thread nature.

Here is an example:

Suppose you have two Virtual hosts: V1 and V2.
For V1 in Apache configuration you use
php_flag magic_quotes_gpc 1
V2 is supposed to use global php.ini settings, so you didn’t put any php_flag records into Apache conf for V2 (this worked under Apache 1.3).
And your default php.ini settings are:
php_flag magic_quotes_gpc 0

When you run your server you’ll notice that magic quotes is (sometimes) set to On at V2!
The value turns On at V2 when there have been a previous request to V1.

To solve the problem either move php_flag into .htaccess located inside customized virtual host directory OR put php_flag with default settings into all your blocks that are not customized. So for V2 put:
php_flag magic_quotes_gpc 0

It is critical to be very carefull with php_flag engine 0.

My configuration is:
PHP 4.3.4, Apache 2.0.50, Linux RedHat 9

My Apache server has a problem when someone enters a URI like: «http://my_server.nl/index.php/». (Note the extra slash.) The server executes the index.php script anyway, which causes the browser directory and the current directory used in the script to be different. And therefore my relative links don’t work, and my stylesheet is not loaded. A quick test («http://www.php.net/manual/en/index.php/») reveals that also this site has this glitch.

When a client requests a directory without the last slash («http://www.php.net/manual») the server sends a HTTP 301 (Moved Permanently) response with a redirect to the correct URI («http://www.php.net/manual/»), and my idea was to do the same when the user adds a slash too much:

= $_SERVER [ ‘REQUEST_URI’ ];
// Remove rubbish.
$newReq = ereg_replace ( ‘index.php[^?]*’ , ‘index.php’ , $req );
if ( strlen ( $newReq ) strlen ( $req )) <
header ( ‘Location: ‘ . $newReq );
header ( ‘HTTP/1.0 301 Moved Permanently’ );
die; // Don’t send any more output.
>
unset( $req ); unset( $newReq );

. ( rest of the script ) .
?>

Replace every occurence of ‘index.php’ with your filename and you’re done. Hope it helps. :-)

(Note: I’m not using fragments in my URI’s (like ‘index.php#bottom’), and this code may not do what you want if you are using them.)

here is a dynamic version of henk_nicolai at REMOVE-THIS at hotmail dot com’s code

$req = $_SERVER[‘REQUEST_URI’];
// Remove rubbish.
$newReq = ereg_replace ( $_SERVER[‘SCRIPT_NAME’] . ‘[^?]*’, $_SERVER[‘SCRIPT_NAME’], $req);
if (strlen($newReq)

the behaviour you describe is not a «glitch» of apache :-). an url like
«http://my_server.nl/index.php/foo». should return the resource http://my_server.nl/index.php and pass «/foo» as PATH_INFO in the environment.

which is extremely usefull if you use it wisely.

Apache 1. Часть 5: Особенности архитектуры

Серия контента:

Этот контент является частью # из серии # статей:

Этот контент является частью серии:

Следите за выходом новых статей этой серии.

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

1. Архитектура Apache 1.x

Клиентский запрос проходит в Apache несколько фаз:

  1. Запрашиваемый URL переводится в имя локального файла.
  2. Проверяется аутентификация пользователя.
  3. Проверяются права доступа.
  4. Определяется тип запрашиваемого документа: это может быть текст, картинка, звук, видео.
  5. Отсылается документ клиенту.
  6. Логирование.

Каждая фаза управляется собственным модулем Apache.

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

На следующем рисунке архитектура Apache представлена более детально. Есть небольшие функциональные модули — ap, regex, которые используются как ядром, так и другими базовыми модулями. Отдельный модуль OS реализует кроссплатформенность Apache.

При ближайшем рассмотрении дерева исходников выясняется:

  1. Все заголовки сгруппированы в каталоге include.
  2. Ядро лежит в каталоге main (libmain.a).
  3. Базовые модули лежат в каталоге modules (libstandard.a).
  4. Реализация кроссплатформенности находится в каталоге os, который включает в себя соответствующие подкаталоги, в каждом из которых лежит свой соответствующий заголовок os.h. (libos.a).
  5. Отдельный библиотечный компонент для работы с регулярными выражениями лежит в каталоге regex (libregex.a).
  6. Отдельный компонент лежит в каталоге ap и включает набор различных функций (libap.a).
  7. Отдельный компонент лежит в каталоге support и включает в себя скрипты и код для вспомогательных утилит Apache, таких как ротация лог файлов, манипуляция с файлами паролей и т.д.
  8. Каталог helpers включает скрипты, используемые при компиляции самого Apache.

Практически все функции имеют префикс ap_, это было введено в версии 1.3 для избежания конфликта имен при переходе с версии 1.2.

2. Архитектура ядра Apache 1

Код ядра лежит в каталоге main. Ядро было разработано с учетом того, что любой, кто хочет расширять функционал Apache, по возможности не трогал код ядра, который уже включает все возможности для такого расширения. Единственный внутренний компонент ядра, который может подвергаться изменению — это реализация HTTP протокола.


  • http_main.c включает основной серверный цикл, управление таймаутами и дочерними процессами. В цикле устанавливается TCP/IP соединение, выделяется память под клиентский запрос, читается запрос и вызывается функция из http_request.c для управления этим запросом, после чего соединение закрывается и память освобождается.
  • http_core.h описывает наиболее важные функции, обрабатывающие запрос.
  • mod_core.c определяет структуру каждого модуля.
  • http_core.c определяет таблицу стандартных конфигурационных команд, инициализацию самого ядра и управление фазами обработки запроса.
  • http_request.c инициализирует модули и другие компоненты ядра. В нем реализовано чтение конфигурационных файлов и вызов соответствующих табличных конфигурационных команд. Хэндлеры всех модулей по обработке запроса находятся в связном списке, и из него происходит выбор нужного хэндлера для обработки соответствующей фазы запроса.
  • http_protocol.c реализует HTTP протокол, управляет соединением с клиентом, закрывает коннект в случае ошибки. Для хранения информации о запросе есть текстовый заголовок и бинарный контент. Этот компонент ядра вызывается после установки коннекта, после его закрытия, а также в случае, когда документ готов для отправки клиенту.
  • Файлы buff.c, alloc.c управляют ресурсами, буферизуют ввод/вывод. Пул ресурсов — это кусок памяти, необходимый для управления запросом, включает в себя файловые дескрипторы. Каждый запрос имеет свой собственный пул, который может быть освобожден после обработки запроса.
  • http_log.c — управляет логированием, приоритетом сообщений, очередью сообщений.
  • http_chost.c — один сервер может работать с нескольких адресов в соответствии с прописанными в конфиге правами для каждого из них.

3. Модули Apache

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

Каждый модуль должен быть проинициализирован ядром. По идее, любой модуль может использовать команды, которые пользователь прописывает в конфигурационном файле. Чтением файла занимается ядро, которое затем сопоставляет их с таблицей команд, полученных от модуля в структуре module. Каждая строка в этой таблице состоит из пары: тип контента — указатель на обработчик, где тип контента — это MIME type.

Обработчики, которые занимаются непосредственной отсылкой данных клиенту, называются content handlers или response handlers. Для каждого типа объекта имеется свой собственный обработчик.

В Apache все модули сгруппированы в каталоге modules. Стандартные модули сгруппированы в подкаталоге standard. реализация прокси лежит в каталоге proxy. Демонстрационный модуль, имеющий всего один обработчик, лежит в каталоге examples.

Все стандартные модули загружаются статично, хотя возможна динамическая загрузка: их можно слинковать с ядром и так, и так. При инсталляции Apache, когда вы запускаете конфигурацию, создается файл modules.c, в котором определяются 2 массива указателей на модульные структуры:

При этом все перечисленные модули можно разбить на следующие группы:

  1. Трансляция URL
    • mod_userdir — перевод домашнего каталога в урл;
    • mod_rewrite — переписывает урл на базе регулярных выражений.
  2. Аутентификация / авторизация
    • mod_auth, mod_auth_anon,mod_auth_db, mod_auth_dbm — аутентификация пользователей на основе парольных файлов;
    • mod_access — контроль доступа.
  3. MIME
    • mod_mime — определение типа документа на основе файлового расширения;
    • mod_mime_magic — определение типа документа по его заголовку;
    • mod_negotiation.
  4. fix-ups
    • mod_alias — алиасы;
    • mod_env — переменные среды на основе конфигов;
    • mod_speling — исправление ошибок в урлах;
    • mod_expires, mod_headers.
  5. Отсылка данных клиенту
    • mod_actions, mod_asis, mod_autoindex, mod_cgi, mod_dir, mod_imap, mod_include, mod_info, mod_negotiation, mod_status, mod_core.
  6. Логирование
    • mod_log_
  7. Proxy
    • mod_proxy, proxy_cache, proxy_connect, proxy_ftp, proxy_http, proxy_util.

4. Параллелизм

При старте Apache создает (fork) по умолчанию 5 главных процессов, это минимальное возможное число процессов. Каждый процесс в свою очередь может поддерживать как минимум 50 потоков (thread — если многопоточность поддерживается операционной системой). На каждый клиентский запрос отводится один процесс. Существует специальная структура — scoreboard — которая хранит состояние всех процессов. Число одновременных возможных процессов по умолчанию — от 5 до 10. Максимальное число таких процессов — 256. Есть также специальная очередь для запросов на ожидание, которым пока нет места в scoreboard. Максимальная длина такой очереди — 511.

Максимально возможное число одновременных клиентских коннектов — 100.

5. Структуры данных

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

При вызове обработчика каждому модулю передается в качестве параметра одна и та же публичная структура — request_rec. При этом может происходить изменение состояния различных полей этой структуры. Responce handlers возвращают контент клиенту. Обработчик также может выполнять другой под-запрос. Структура request_rec может включать указатель на другую структуру request_rec в том случае, когда происходит редирект, а в случае под-запроса указатель может указывать на самое себя. Редирект означает вызов обработчика картинки внутри документа или вызов CGI-скрипта. При этом вызывается обработчик ap_internal_redirect, который создает новый объект request_rec. Такой объект может быть помещен в связный список request_recs.

Структура request_rec содержит в себе следующие поля:

  • указатели на другие request_rec;
  • указатель на пул ресурсов;
  • обьекты запроса:
    • URI
    • filename
    • path
  • информация о контенте:
    • тип контента
    • кодировка
  • MIME headers;
  • информация о запросе:
    • протокол
    • метод

Ниже дано выборочное представление структуры request_rec с наиболее часто используемыми полями:

Apache использует пул ресурсов — pool — структуру данных, в которой хранится список всех выделенных ресурсов для запроса. Когда обработка запроса заканчивается, все ресурсы, затраченные на этот запрос, освобождаются. У модулей могут быть свои собственные пулы на свои нужды.

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

  • имя команды;
  • указатель на функцию-обработчик;
  • передаваемый аргумент;
  • условия инициализации;
  • тип и число аргументов;
  • описание аргументов;

Структура scoreboard хранит список обрабатываемых запросов. Хранится статус запроса и его id. Для каждого создаваемого процесса в scoreboard добавляется запись, которая после обработки запроса удаляется. Статус процесса в этой структуре изменяется самим процессом. Статус запроса может приобретать следующие значения:

6. Обработчик response

Результат работы большинства обработчиков сводится к банальному изменению значения полей структуры request_rec, либо к возврату специальных кодов. Данный же обработчик отсылает реальные данные клиенту. Вначале клиенту отсылается HTTP-заголовок с помощью функции send_http_header. Если у запроса есть метка header_only, то клиенту более ничего не высылается. В противном случае, клиенту высылается само сообщение, для этого используются специальные примитивы rputc, rprintf, send_fd. Следующий код показывает обработку GET-запроса и отсылку данных клиенту:

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

7. Пул

Основная проблема, решаемая с помощью пула — pool — это предотвращение утечек памяти.

Пул в Apache разработан таким образом, что освобождение всех ресурсов — памяти, дескрипторов и т.д. — происходит автоматически, после завершения обработки клиентского запроса. Каждому такому запросу выделяется свой собственный пул, представленный структурой pool. После обработки этот пул удаляется.

При старте Apache выделятся специальный пул — конфигурационный. При перезапуске сервера этот пул также очищается.

Память выделяется с помощью palloc, что быстрее, чем malloc. Эта функция имеет 2 аргумента — указатель на пул и количество выделяемой памяти:

Функция pfree отсутствует, поскольку освобождение памяти идет автоматически тогда, когда освобождается пул. Есть специальные прикладные функции, выделяющие память : например, в следующем примере функция pstrcat выделяет память под 8 байтовый строковый модуль:

Аналогично происходит открытие файлов:

В отличие от работы с памятью, здесь есть соответствующая закрывающая функция pfclose.

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

Пул также можно освободить в любой момент с помощью clear_pool или destroy_pool.

В случае подзапросов для надежного очищения памяти используется destroy_sub_request.

8. Конфигурация

Первый Apache разрабатывался с прицелом на максимальную совместимость со своим предшественником — вебсервером NCSA 1.3 — в плане чтения конфигурационных файлов. Была поставлена задача вынести максимально весь функционал из ядра в модули. Для этого в ядре была создана специальная таблица команд. Определения типа файла по суффиксу делается на основе конфигурационных директив AddType и DefaultType.

Работа с файловой системой выполняется с помощью директив Aliases и Redirect.

Работа с вложенными конфигурационными файлами выполняется на базе файлов .htaccess.

Когда сервер читает в файле директиву , он создает структуру mime_dir_config:

Команды AddType и AddEncoding обычно присутствуют в .htaccess.

Для создания такой структуры нужны 2 параметра — пул и имя каталога:

Если в нашем серверном каталоге, который мы только что прочитали, есть вложенный каталог, и там есть свой собственный .htaccess, нам придется объединять две структуры:

Заключение

Архитектура первого Apache имеет свои особенности — все функции имеют префикс ap_, реализация кроссплатформенности сделана на основе отдельных модулей, модули не могут общаться друг с другом, а только с ядром, все модули можно разбить на 7 основных групп: трансляция, аутентификация, MIME, fix-ups, генераторы контента, логирование, прокси. Управление памятью реализовано на основе пулов. Система конфигурация имеет широкие возможности для предварительной настройки сервера.

I. Функции, специфичные для Apache

Эти функции доступны только при запуске РНР как Apache-модуля.

Содержание apache_child_terminate — прерывает процесс Аpache после данного запроса apache_lookup_uri — выполняет частичный запрос по специфицированному URI и возвращает всю информацию о нём apache_note — получает и устанавливает примечания Аpache-запроса/request notes apache_setenv — устанавливает переменную Apache subprocess_env ascii2ebcdic — транслирует строку из ASCII в EBCDIC ebcdic2ascii — транслирует строку из EBCDIC в ASCII getallheaders — извлекает все шапки/headers HTTP-запроса virtual — выполняет подзапрос Apache


Назад Оглавление Вперёд
Функции. Справочник. Вверх apache_child_terminate

Материалы, которые находятся на этой страничке, любезно предоставлены Игорем Ивановым

Apache: установка и настройка веб-сервера

Веб-сервер – программа, которая запущена на локальной или удаленной машине, и главное её предназначение – позволять пользователю просматривать веб-документы. Когда в адресной строке вводится адрес сайта, при нажатии клавиши Enter браузер формирует некий запрос, направленный удаленному компьютеру — веб-серверу.

Apache HTTP-сервер (сокращение от англ. a patchy server ) – одна из наиболее популярных и распространенных программ, созданных для веб-разработчиков и администраторов интернет-ресурсов. По данным независимых исследователей, Apache установлен на 50% компьютеров всех пользователей HTTP-серверов.

Главными преимуществами Apache являются стабильность, быстродействие и гибкость, и обусловлены они модульной организацией, а также тем, что разработку ведёт открытая группа программистов, хоть и под официальным названием Apache Software Foundation .

Apache поддерживает огромное количество операционных систем и аппаратных платформ, и довольно часто его используют под управлением операционной системы Windows. Немаловажно и то, что данный web-сервер распространяется совершенно бесплатно.

О том, как установить сервер Apache для операционной системы Windows 7, пойдет речь в данной статье.

Установка Apache

В первую очередь необходимо скачать последнюю версию дистрибутива Apache без поддержки SSL и запустить установку. В приветственном окне нужно кликнуть на « Next », прочесть лицензионное соглашение разработчика и подтвердить свое согласие с ним.

Затем, в окне установки необходимо заполнить поля так, как показано на картинке ниже, а в поле « Administrator’s Email Address » указать адрес своей электронной почты, кликнуть « Next » и установить переключатель в положение « Custom ».

Далее, переходим к следующему шагу процесса « установка Apache ». По умолчанию веб-сервер производит инсталляцию в папку C:Program FilesApache Software FoundationApache 2.2 .

Далее необходимо создать директорию www на диске C и указать её в качестве установочной папки для Apache, кликнуть « Next » в этом и « Install » в следующем окне. Когда установка закончится, нажмите на « Finish ».

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

Кликнув по тому же значку правой кнопкой мыши, можно перейти к различным системным службам операционной системы или открыть монитор Apache.

Для того чтобы проверить работает ли установленный сервер Apache, наберите в адресной строке вашего браузера http://localhost

Если появилась страница с воодушевляющей надписью « It works! », значит, установка Apache прошла успешно, и он функционирует правильно.

Базовая настройка веб-сервера

Хоть Apache и является весьма удобным и исключительно надёжным, не все готовы его использовать как локальный сервер по ряду причин, и основная — отсутствие даже в среде Microsoft Windows какого-либо графического конфигуратора, что довольно непривычно для большинства пользователей.

Настройка сервера производится с помощью ручного редактирования конфигурационного файла httpd.conf . Однако, вопреки представлениям о непонятности и сложности данного процесса, ничего сложного в данной операции нет по двум причинам: во-первых , для того, чтобы сделать из только что установленного Apache сервер, который настроен для приемлемой и комфортной работы, в файле конфигурации нужно поменять совсем немного данных, а во-вторых — комментарии httpd.conf содержат немало полезной информации, необходимой для того, чтобы разобраться с настройкой.

  • Запустить Apache под платформой Windows 7;
  • Хранить в удобной для пользователя директории файлы будущего сайта (например, C:www);
  • Не испытывать проблем с кодировкой, а в частности — с отображением кириллицы;
  • Возможность работать с несколькими сайтами одновременно.

Чтобы успешно решить эти проблемы, зайдите в папку с установленным Apache, найдите и откройте в подпапке conf файл httpd.conf . Обратите внимание, что строки, начинающиеся с « решётки », являются текстовыми комментариями, а в качестве настроек веб-сервера использованы строки, в начале которых значок « решётки » отсутствует.

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

Исправьте её на DocumentRoot “ C:/www ”. Следует уточнить, что слэши в этом файле должны быть наклонены вправо, а не влево, как, вероятно, уже привыкли пользователи Windows. После вышеуказанных манипуляций, проблема с месторасположением вашего сайта решена.

Далее необходимо установить для директории правила безопасности. В Apache для этой цели используется директива Directory :

Список используемых параметров:

Options. Возможны следующие варианты:

  • Includes – использование SSI разрешено;
  • IncludesNOEXEC – использование SSI разрешено с ограничениями (не допускаются #include и #exec );
  • Indexes – разрешено использование индексных файлов, и если URL-адрес указывает на директорию сайта (например, www.domain.ru/dir/ ), в которой не существует индексного файла, будет показано содержимое данной директории, а если этой опции нет – выдается оповещение о том, что доступ запрещён;
  • ExecCGI – выполнение скриптов CGI разрешено;
  • FollowSymLinks – сервер следует по имеющимся символическим ссылкам директории (используется в Unix-системах);
  • SymLinksIfOwnerMatch – сервер следует по имеющимся символическим ссылкам директории лишь в том случае, если целевой файл имеет одного владельца со ссылкой;
  • All – все вышеописанное вместе разрешено;
  • None – все вышеописанное вместе запрещено;
  • MultiViews – возможность подбора определенного контента и его выдачи в зависимости от предпочтений браузера (даже если включено все (Options All). Указывается отдельно).


  • AuthConfig – позволяет использовать директивы для авторизации;
  • FileInfo – разрешает использование директив для работы с различными типами документов;
  • Indexes – разрешает использование директив для работы с файлами индексации;
  • Limit – разрешает использование директив для определения доступа к хосту;
  • Options – разрешает использование директив для работы с определенными специфическими функциями директорий;
  • All – все вышеуказанное вместе;
  • None – ничего из вышеуказанного вместе.
  • Deny, Allow – Deny определяется перед директивой Allow, доступ разрешен по умолчанию, кроме хостов, которые указаны в следующей после Deny from строке;
  • Allow,Deny – Allow определяется перед директивой Deny, доступ запрещен по умолчанию, кроме хостов, которые указаны в следующей после Allow from строке;
  • Mutual-failure – разрешен доступ только таких хостов, которые отсутствуют в Deny и присутствуют в Allow.

На основе всего вышесказанного, попробуйте настроить ваш сервер. В файле httpd.conf директива Directory по умолчанию существует сразу в двух экземплярах — и . Первый вариант трогать не следует, поэтому во втором установите параметры следующим образом:

Говоря другими словами, для папки C:/www и всех её подпапок выбраны следующие параметры:

  • Из возможной функциональности имеющегося сервера разрешены индексы в директориях и переходы по символическим ссылкам;
  • Возможность параметрического переопределения с помощью файлов .htaccess полностью отсутствует, однако учитывая то, что вы имеете полный доступ к серверу, она не является актуальной – все можно настроить через httpd.conf;
  • Доступ к веб-серверу разрешен со всех хостов.

Теперь, сохраните файл httpd.conf и перезапустите Apache с помощью Apache Monitor либо командой apache –k restart в командной строке. Настройка корневой папки сайта закончена.

Следует проверить, правильно ли вы всё сделали. Создайте простейшую веб-страницу в папке C:www, откройте ваш браузер и введите http://127.0.0.1/ваша_созданная_страница . Страницы должна открыться. В ином случае необходимо тщательно проверить все изменения в файле httpd.conf на правильность.

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

Если пресловутый Internet Explorer в подобных случаях определяет кодировку из самой страницы, то, к примеру, Mozilla Firefox и Opera к подобным действиям склонности совершенно не имеют, и способ выставления кодировки в браузере вручную едва ли можно назвать удобным. Следовательно, необходимо настроить Apache на выдачу по умолчанию необходимой кодировки.

Найдите в файле httpd.conf строку, которая начинается на AddDefaultCharset . Скорее всего, там указана кодировка ISO-8859-1, в которой отсутствуют кириллические символы. Поменяйте ISO-8859-1 на windows-1251 , сохраните файл и перезапустите Apache. Теперь корректное отображение русского языка на вашем сайте будет работать в любом браузере.

В сервере Apache достаточно просто настроить работу с несколькими сайтами. Адреса, которые можно использовать для них — 127.0.0.2, 127.0.0.3 и т.д. При этом по сети виден будет только тот, который является сайтом по умолчанию (127.0.0.1), однако для локальной работы это не является критичным. Раздел файла httpd.conf , в котором производится настройка всего необходимого для этого, находится в самом конце и именуется VirtualHosts .

Для того чтобы добавить дополнительный сайт, создайте директорию, использующуюся в качестве его корневой, к примеру, C:www2 . Предположив, что сайт будет откликаться на адрес 127.0.0.2 , дайте ему имя site911 и в самом конце раздела VirtualHosts добавьте следующие строки:

Перезапустите сервер Apache. Набрав в адресной строке браузера 127.0.0.1 , вы попадёте на ваш первый локальный сайт, а набрав 127.0.0.2 – на второй локальный сайт. Следует иметь в виду, что внутри каждого контейнера VirtualHosts могут использоваться абсолютно любые директивы веб-сервера Apache, благодаря чему можно каждый сайт настраивать наидетальнейшим образом.

Установка и настройка завершена, и теперь вы можете полноценно приступить к изучению работы сервера Apache на практике.

Если же вы решили вплотную заняться администрированием веб-сайтов, следующим вашим шагом должно стать изучение связки Apache PHP MySQL, ведь без системы управления базами данных, а также без поддержки одного из самых распространенных языков веб-программирования и веб-инструмента для администрирования системы MySQL не обходится ни один сервер на просторах всемирной сети. Как говорится, « тяжело в учении, но легко в бою ».

Желаем удачи в изучении этого нелёгкого, но интересного дела!

Что Такое Apache? Подробный Обзор Веб-Сервера Apache

Что такое Apache? Э то программное обеспечение с открытым исходным кодом, веб-сервер, который обеспечивает работу около 46% сайтов по всему миру. Официальное название – Apache HTTP Сервер, поддерживается и развивается компанией Apache Software Foundation.

Веб-сервер позволяет владельцам сайтов обслуживать их контент в интернете, о чём понятно с самого название “веб-сервер”. Apache один из самый старых и надёжный веб-серверов с первой версией выпуска более 20 лет назад в 1995 году.

Когда кто-либо хочет посетить сайт, он вводит доменное имя в адресную строку своего браузера. Затем веб-сервер доставляет запрашиваемые файлы как виртуальный посыльный.

В Hostinger в нашей инфраструктуре веб хостинга использует Apache в параллели с NGINX, другим популярным веб-сервером. Эта связка позволяет нам взять все преимущества от обоих. Это очень улучшает производительность путём компенсации слабых сторон одного сильными сторонами другого.

Что такое веб-сервер?

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

Работа веб-сервера – обслуживать сайт в интернете. Для этого он выполняет роль посредника между компьютером сервера и компьютером клиента. Он берёт контент с сервера на каждый запрос пользователя и доставляет его в сеть.

Самой большой задачей веб-сервера является одновременное обслуживание различных запросов от многих пользователей. Веб-сервер обрабатывает файлы написанные на разных языках программирования, таких как PHP, Python, Java и другие.

Он превращает их в статический файл HTML и отдаёт их на обслуживание в браузер пользователя. Когда вы слышите словосочетание веб-сервер, думайте о нём, как об инструменте для коммуникации между сервером и клиентом.

Как работает веб-сервер Apache?

Хоть Apache и называется веб-сервер, но в реальном положении вещей он является не сервером, а программой, которая запускается на сервере. Его задача установить соединение между сервером и браузером посетителей (Firefox, Google Chrome, Safari и др.) при доставке файлов туда и обратно между ними (клиент-серверная структура). Apache – это кроссплатформенное программное обеспечение, что значит оно хорошо работает как на Unix, так и на Windows серверах.

Когда посетитель хочет загрузить страницу вашего сайта, например, домашнюю страницу или страницу “О нас”, его браузер отправляет запрос на ваш сервер и Apache возвращает ответ со всеми запрошенными файлами (текст, изображение и так далее). Сервер и клиент взаимодействуют по протоколу HTTP и Apache ответственен за гладкое и безопасное соединение между двумя машинами.

Apache хорошо и удобно настраиваемый поскольку имеет модульную структуру. Модули позволяют администраторам сервера включать или выключать дополнительную функциональность. У Apache есть модули безопасности, кэширования, редактирования URL, аутентификации по средством пароля и другие. Вы можете установить свою собственную конфигурацию через файл .htaccess, который является файлом настроек для Apache и поддерживается всеми тарифными планами Hostinger.

Знаете ли вы, что в Hostinger есть специальные предложения? Посетите нашу страницу купонов и сэкономьте до 82%!

Apache и другие веб-сервера

Кроме Apache существует ещё довольно много веб-серверов. Каждое приложение веб-сервера создавалось для различных целей. Не смотря на то, что Apache является самый широко используемым, для него есть несколько альтернатив и конкурентов.

Apache или NGINX

Nginx произносится как Engine-X, это более новое веб-серверное программное обеспечение с первым релизом в 2004 году. Как на сегодня он добился большой популярности среди владельцев сайтов. Nginx был создан для решения так называемой проблемы c10k – проблемы 10 тысяч соединений, что означает, что веб-сервера, использующие потоки не могут обрабатывать запросы пользователей более, чем с 10 000 подключений одновременно.

  1. Так как Apache использует структуру основанную на потоках, владельцы сайтов с высоким трафиком могли столкнуться с проблемой производительности. Nginx один из веб-серверов, который был нацелен на решение проблемы c10k и возможно это одно из самых успешных решений.
  2. Nginx имеет событийно ориентированную архитектуру, которая не создаёт новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в едином потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют непосредственную обработку запросов. Модель Nginx, основанная на событиях распространяет запросы пользователей среди рабочих процессов эффективным путём, что приводит к лучшей масштабируемости.
  3. Если вам нужно обслуживание сайта с высокой посещаемостью, то Nginx – отличный выбор, поскольку он может сделать это, затратив минимальные ресурсы. И не случайно он используется сайтами с большим количеством показов, такими как: Netflix, Hulu, Pinterest и Airbnb.
  4. Однако для мелких и средних игроков, Apache имеет несколько преимуществ в сравнении с Nginx, среди которых: более простая настройка, множество модулей и среда дружественная для начинающих.

Apache или Tomcat

Tomcat – это веб-сервер также разработанных Apache Software Foundation, поэтому его официальное название Apache Tomcat. Это тоже HTTP-сервер, однако он обрабатывает приложения Java вместо статических сайтов. Tomcat может запускать несколько Java спецификаций, таких как: Java Servlet, Java Server Pages (JSP), Java EL и WebSocket.

  1. Tomcat был разработан специально для приложений на Java, в то время как Apache позиционируется как HTTP-сервер. Вы можете использовать Apache совместно с другими языками программирования (PHP, Python, Perl и т.д.) с помощью специального модуля Apache (mod_php, mod_python, mod_perl и др.).
  2. Хотя вы и можете использовать сервер Tomcat для статических веб-страниц, но это будет менее эффективно, чем использование Apache. Например, Tomcat заранее загружает виртуальную машину Java и другие Java-библиотеки, которые могут быть ненужными для работы вашего сайта.
  3. Tomcat также хуже настраиваемых в сравнении с другими веб-серверами. Например, для запуска WordPress, лучшим выбором будет стандартный HTTP-сервер, такой как Apache или NGINX.

Apache: преимущества и недостатки

Веб-сервер Apache может быть прекрасным выбором для запуска вашего сайта на стабильной и универсальной платформе. Но у него есть и свои недостатки, на которые стоит обратить внимание.

Преимущества:

  1. Бесплатный даже для использования в коммерческих целях.
  2. Надёжный, стабильное программное обеспечение.
  3. Часто обновляемый, регулярные патчи безопасности.
  4. Гибкий благодаря своей модульной структуре.
  5. Легко настраиваемый, дружелюбный для начинающих.
  6. Кроссплатформенный (работает одинаково хорошо на Unix и на Windows серверах).
  7. Работает для сайтов на WordPress сразу после установки без дополнительных настроек.
  8. Большое сообщество и легко доступная поддержка в случае любой проблемы.

Недостатки:

  1. Проблемы производительности на сайтах с большим трафиком.
  2. Слишком много параметров конфигруации могут привести к уязвимостям в безопасности.

Что ещё почитать?

Хотите узнать больше об основах хостинга сайтов и разработке? Познакомьтесь с нашими руководствами:

Итак, что такое Apache?

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

Вы можете установить сайт WordPress на веб-сервере Apache без каких-либо настроек. Кроме того, Apache прекрасно работает со многими другими системами управления контентом (Joomla, Drupal и др.), веб-фреймворками (Django, Laravel и др.) и языками программирования. Это делает его уверенным решением для всех типов хостинг платформ, таких как VPS или общий хостинг.

FPublisher

Web-технологии: База знаний

Документация PHP

virtual

virtual — Выполнить подзапрос Apache

Описание

bool virtual ( string $filename )

Функция virtual() специфична для сервера Apache и является эквивалентом конструкции , используемой в mod_include. Эта функция выполняет подзапрос Apache. Она бывает полезной в тех случаях, когда вам нужно включить в свой скрипт результат выполнения других CGI программ или скриптов, обработки сервером Apache .shtml файлов или чего-либо иного, что должно быть обработано Apache. Имейте в виду, что CGI скрипты должны создавать корректные CGI заголовки. Как минимум, CGI скрипт должен создавать заголовок Content-type.

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

This function is only supported when PHP is installed as an Apache module.

Список параметров

Имя файла, для которого будет выполнен подзапрос.

Возвращаемые значения

Результат выполнения подзапроса в случае успеха, или FALSE при неудаче.

Список изменений

Версия Описание
4.0.6 Эту функцию стало возможным использовать для файлов PHP. Тем не менее, чаще всего для файлов PHP лучше использовать функции include() или require().

Примечания

Строка запроса может быть передана вызываемому файлу, однако значение переменной $_GET будет скопирована из родительского скрипта. Лишь $_SERVER[‘QUERY_STRING’] будет содержать переданную строку запроса. Строка запроса может быть передана только при использовании Apache 2. Запрошенный файл не будет отражен в журнале доступа (access log) Apache.

Замечание: Переменные окружения, установленные в запрошенном файле, не видимы из вызвавшего его скрипта.

Замечание: Начиная с PHP 4.3.3 вы также можете использовать эти функции с модулем NSAPI в серверах Netscape/iPlanet/SunONE.

ИТ База знаний

ShareIT — поделись знаниями!

Полезно

Узнать IP — адрес компьютера в интернете

Онлайн генератор устойчивых паролей

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Похожие статьи

Установка и использование fping в Linux

Chef — управление сетью. Плюсы и минусы

Топ — 20 полезных команд CentOS

Решаем ошибку 18456 в SQL

Apache или IIS – сравнение и преимущества

Про веб — сервера

Если вы, или ваша организация намереваетесь создать Web – сервис, будь то сайт или приложение, то так или иначе вы обратите внимание на наиболее популярные на рынке платформы для создания web – серверов – Apache или Internet Information Services (IIS), которые занимают около 70% от всей доли интернета.

Многие сравнивают противостояние этих двух платформ как соперничество между Microsoft и Linux. В данной статье мы беспристрастно и объективно рассмотрим плюсы и минусы этих платформ.

Apache

Apache HTTP web – сервер – полное название платформы, распространяемой организацией Apache Software Foundation как открытое программное решение или проще говоря «open-source». Программное обеспечение сервера распространяется абсолютно бесплатно и его лицензия позволяет конечному пользователю редактировать исходный код, чтобы адаптировать Apache под свои нужды, а так же, внести вклад в будущее развитие серверной платформы.

Веб – сервер Apache может работать на всех популярных операционных системах, но чаще всего он используется в рамках Linux. Именно в паре с СУБД MySQL и PHP – скриптами образуется известный комплекс программного обеспечения LAMP Web – сервер (Linux, Apache, MySQL, PHP), который повсеместно используется в сети интернет.

В рамках исследования Netcraft, проводимого в феврале 2014 года, web – сервер Apache занимал 42% рынка. Однако стоит отметить, что в том же июне 2013 года этот показатель составлял 54% и 59% в 2010 году. Это связано с улучшением позиций основного конкурента IIS и ростом позиций Nginx.

С точки зрения функционала, Apache имеет впечатляющие характеристики. Многие функции реализуются как совместимые модули, расширяющие базовый функционал, диапазон которых варьируется от поддержки языков программирования до обеспечения различных схем аутентификации. Например, это могут быть языки Perl или Python. Модули аутентификации включают в себя элементы управления доступом к различным директориям сервера, пароль, установление подлинности и так далее. Многие другие функции, такие как Secure Sockets Layer (SSL) или TLS (Transport Layer Security) так же обеспечивается модульной системой. Помимо этого, Apache поддерживает возможность развернуть несколько web – сайтов, или графических интерфейсов приложений. Веб – сервер сжимает страницы, чтобы уменьшить их размер, что обеспечивает высокую скорость их загрузки. Наряду с высоким показателем безопасности, это является конкурентной чертой Apache.

Выделим два основных недостатка Apache HTTP web – сервера:

  • Перенасыщенность функционалом: Еще раз стоит подчеркнуть, что Apache действительно чрезвычайно богат на функции, возможности и инструментарий. Но, к сожалению, в рамках типовой инсталляции пользователь задействует только 10 % от этих функций.
  • С точки зрения архитектуры, Apache, работает по модели «процессов». Это означает, что для каждого соединения Apache выделяет отдельную «коннекцию», или другими словами поток данных, что вызывает значительную загрузку. Конкуренты, а именно асинхронные платформы и сервера работающие по модели «событий», имеют преимущество обработки нескольких процессов одновременно в рамках одной транзакции.

Internet Information Services (IIS) это веб – сервер разработки компании Microsoft и занимает второе место на рынке вслед за Apache. Платформа IIS будет работать только с Windows и поставляется в комплекте с этой операционной системы. В отличие от Apache, где основную поддержку продукта предоставляет сообщество разработчиков, IIS официально поддерживается компанией Microsoft. Разработка этого продукта не так стремительна по сравнению с Apache, но как было сказано выше, одним из главных конкурентных преимуществ IIS является официальная поддержка компании Microsoft, что очень важно для крупного бизнеса. Многие специалисты в области ИТ признают IIS одним из немногих коммерческих продуктов, который по настоящему может быть конкурентом «open-source» решению.

Постоянная доработка безопасности, производительности и удобства администрирования позволили увеличить долю присутствия на рынке IIS с 21% в 2010 году до 32% в феврале 2014 (ранее указанное исследование компании Netcraft). Самые большие продвижения были сделаны с точки зрения безопасности. Версия IIS 6.0 была уязвима к атакам: известный вирус Code Red, который заменял содержимое web – сайта на баннер об авторах вируса. Важно отметить, что многие уязвимости проявляются на уровне операционной системы.

Как и Apache, IIS использует различные расширения для внедрения дополнительного функционала. Например, работа с файлами по FTP, маршрутизация с помощью Application Request Routing (ARR), который позволяет вести балансировку нагрузки и повышать отказоустойчивость, различные медиа – компоненты, аудио, видео, динамическое изменение URL и прочие. Веб – сервер IIS предлагает более высокую совместимость с программной платформой .NET Framework и ASPX (Active Server Pages) чем Apache. Важно, что в IIS поддерживаются такие функции как мониторинг, отслеживание запросов в режиме реального времени. Конечно, IIS можно назвать «условно» бесплатным, так как распространяется он в комплекте с Microsoft Windows Server.

С точки зрения производительности, IIS уступает Apache, в виду архитектурной особенности и строгой работы на Windows.

Подведем итог

И IIS и Apache имеют свои плюсы и минусы. Определиться с web – сервером поможет учет следующих факторов: Сервер IIS должен быть приобретен в комплекте с Windows, Apache не имеет официальной технической поддержки, но имеет высокие показатели безопасности, IIS отлично совместим с .NET и так далее. В таблице ниже приведены некоторые сравнительные характеристики:

Опция Apache IIS
Поддерживаемая ОС Windows, Linux, Unix, Mac OS Windows
Техническая поддержка Сообщество Корпоративная
Стоимость Полностью бесплатно Покупается в комплекте с Windows
Разработка «open-source» Проприетарное решение
Безопасность Хорошо Отлично
Производительность Хорошо Хорошо
Рынок 42% 32%
  • WEB сервер Apache
  • IIS
  • 5895
  • 83

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас :( Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации :) Просто оставьте свои данные в форме ниже.

Илон Маск рекомендует:  Отступы и поля
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL