admin / 30.07.2018

Apache для windows

Downloading the Apache HTTP Server¶

Use the links below to download the Apache HTTP Server from one of our mirrors. You mustverify the integrity of the downloaded files using signatures downloaded from our main distribution directory.

Only current recommended releases are available on the main distribution site and its mirrors. Historical releases, including the 1.3, 2.0 and 2.2 families of releases, are available from the archive download site.

Apache httpd for Microsoft Windows is available from a number of third party vendors.

Stable Release — Latest Version:

If you are downloading the Win32 distribution, please read these important notes.

Mirror¶

[if-any logo] [end] The currently selected mirror is [preferred]. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available.

You may also consult the complete list of mirrors.

Apache HTTP Server 2.4.33 (httpd): 2.4.33 is the latest available version 2018-03-17¶

The Apache HTTP Server Project is pleased to announce the release of version 2.4.33 of the Apache HTTP Server («Apache» and «httpd»). This version of Apache is our latest GA release of the new generation 2.4.x branch of Apache HTTPD and represents fifteen years of innovation by the project, and is recommended over all previous releases!

For details, see the Official Announcement and the CHANGES_2.4 and CHANGES_2.4.33 lists.

Apache mod_fcgid FastCGI module for Apache HTTP Server released as 2.3.9 2013-10-08¶

The Apache Software Foundation and the Apache HTTP Server Project are pleased to announce the release of version 2.3.9 of mod_fcgid, a FastCGI implementation for Apache HTTP Server versions 2.2 and 2.4. This version of mod_fcgid is a security release.

For information about this module subproject, see the mod_fcgid module project page.

Apache FTP module for Apache HTTP Server released as 0.9.6-beta 2008-10-08¶

The Apache HTTP Server Project is pleased to announce the release of Apache FTP module for Apache HTTP Server, version 0.9.6 as beta.

Users are encouraged to test and provide feedback on this beta release. For information about this module subproject, see the mod_ftp module project page.

Verify the integrity of the files¶

It is essential that you verify the integrity of the downloaded files using the PGP or MD5 signatures. Please read Verifying Apache HTTP Server Releases for more information on why you should verify our releases.

The PGP signatures can be verified using PGP or GPG. First download the KEYS as well as the signature file for the relevant distribution. Make sure you get these files from the main distribution directory , rather than from a mirror. Then verify the signatures using

or

or

  • httpd-2.4.33.tar.* are signed by Daniel Ruggeri

  • httpd_2.4.16-netware-*.zip signed by Guenter Knauf

  • mod_fcgid-2.3.9.tar.* and mod_fcgid-2.3.9-crlf.zip are signed by Jeff Trawick

  • mod_ftp-0.9.6-beta* are signed by William A Rowe Jr

Alternatively, you can verify the MD5 signature on the files. A unix program called or is included in many unix distributions. It is also available as part of GNU Textutils. Windows users can get binary md5 programs from here , here , or here. An MD5 signature consists of 32 hex characters, and a SHA1 signature consists of 40 hex characters. Ensure your generated signature string matches the signature string published in the files above.

Установка веб-сервера Apache

Последнее обновление: 20.10.2017

Загрузим пакет веб-сервера Apache с сайта http://www.apachelounge.com/. Выберем последнюю версию сервера. На странице загрузок мы можем найти две версии пакета Apache — для 64-битных систем и для 32-битных.

Перед установкой Apache следует отметить, что если наша ОС Windows, то в системе должны быть установлен пакет для C++, который можно найти по адресу для 64-битной и для 32-битной.

После загрузки пакета с Apache распакуем загруженный архив. В нем найдем папку непосредственно с файлами веб-сервера — каталог Apache24. Переместим данный каталог на диск C, чтобы полный путь к каталогу составлял C:/Apache24.

Теперь нам надо установить Apache в качестве службы Windows. Для этого запустим командную строку Windows от имени администратора и перейдем в каталог веб-сервера с помощью команды

Далее установим Apache в качестве службы с помощью команды:

Если установка завершится удачно, то в командная строка отобразит сообщение «The Apache2.4 service is successfully installed». Также будет проведено тестирование сервера:

В моем случае, как отображено выше на картинке, Apache не смог подключиться к порту 80, который стоит по умолчанию в конфигурации, так как у меня порт 80 прослушивается другим веб-сервером — IIS. Это одна из распространенных проблем при запуске Apache. Чтобы ее решить, нам надо либо отключить службу IIS, либо указать для Apache новый порт. Я выберу второй путь.

После установки проведем конфигурацию сервера, чтобы связать его с ранее установленным интерпретатором PHP. Для этого в папке C:\Apache24\conf найдем файл httpd.conf и откроем его в текстовом редакторе.

Файл httpd.conf настраивает поведение веб-сервера. Мы не будем подобно затрагивать его описания, а только лишь произведем небольшие изменения, которые потребуются нам для работы с PHP.

Во-первых, найдем строку

Listen 80

Это строка указывает на прослушиваемый порт.

Сам себе хостмастер или установка Apache на платформе Windows

По умолчанию 80-й порт. Если конфликтов с портами не возникает можно оставить так, как есть. Я же изменю на 8080 порт.

Listen 8080

Далее найдем строчку

#ServerName www.example.com:80

и изменим на

ServerName localhost:8080

Теперь подключим PHP. Для этого найдем в файле httpd.conf конец блока загрузки модулей LoadModule

//…………………. #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule xml2enc_module modules/mod_xml2enc.so

И в конце этого блока добавим строчки

LoadModule php7_module «C:/php/php7apache2_4.dll» PHPIniDir «C:/php»

Далее укажем место, где у нас будут храниться сайты. Для этого создадим, например, на диске С каталог localhost. Затем найдем в файле httpd.conf строку

DocumentRoot «c:/Apache24/htdocs» <Directory «c:/Apache24/htdocs»>

По умолчанию в качестве хранилища документов используется каталог «c:/Apache24/htdocs». Заменим эту строку на следующую:

DocumentRoot «c:/localhost» <Directory «c:/localhost»>

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

ErrorLog «logs/error.log»

И заменим ее на

ErrorLog «c:/localhost/error.log»

Далее найдем строку

CustomLog «logs/access.log» common

И заменим ее на

CustomLog «c:/localhost/access.log» common

И также найдем блок и добавим в него две строчки:

AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

И в конце найдем блок :

<IfModule dir_module> DirectoryIndex index.html </IfModule>

И заменим его на следующий:

<IfModule dir_module> DirectoryIndex index.html index.htm index.shtml index.php </IfModule>

Это минимально необходимая конфигурация, которая нужна для работы с PHP. Чтобы управлять сервером (запускать, останавливать, перезапускать), мы можем использовать утилиту, которая идет в комплекте — ApacheMonitor.exe. Данную утилиту можно найти в каталоге C:\Apache24\bin

Запустим утилиту. В трее появится значок ApacheMonitor. Нажмем на него и в появившемся контекстном меню выберем пункт Start.

Если у нас все настроено правильно, то должен запустить веб-сервер.

Теперь наша задача — убедиться, что php подключен и работает правильно. Для этого перейдем в папку c:/localhost, которую мы создали для хранения документов, и добавим в нее обычный текстовый файл. Переименуем его в index.php и внесем в него следующее содержание:

<?php phpinfo(); ?>

В данном случае мы создали простейший скрипт, который выводит общую информацию о PHP. Теперь обратимся к этому скрипту, набрав в строке браузера адрес http://localhost:8080/index.php

Что тут произошло? При обращении к сайту на локальной машине в качестве адреса указывается http://localhost. Так как мы указали в качестве порта 8080, то также в адресе указывается через двоеточие порт. Если бы мы использовали 80-й порт, который используется по умолчанию, то его не надо было указывать.

Затем указывается имя ресурса, к которому идет обращение. В данном случае в качестве ресурса используется файл index.php. И так как в файле httpd.conf в качестве хранилища документов веб-сервера указан каталог C:\localhost, то именно в этом каталоге и будет веб-сервер будет производить поиск нужных файлов.

И поскольку выше при конфигурировании мы указали, что в качестве главной страницы может использоваться файл index.php, то мы можем также обратиться к этому ресурсу просто http://localhost:8080/

На этом установка и настройка веб-сервера Apache завершена, и мы можем создавать свои сайты.

НазадСодержаниеВперед

Веб сервер Apache 2.4 и Windows 7 x64

12.02.2017

Веб сервер Apache достаточно популярен. Это бесплатное программное обеспечение с открытым исходным кодом. Устанавливается как правило на компьютеры с операционной системой UNIX семейства, но есть возможность установить на операционную систему семейства Windows.

Я нашел версию Apache 2.4.25, и устанавливал именно её на windows 7 x64 httpd-2.4.25-win64-VC11.zip. Там есть 32-х разрядная версия и 64-версия.

Установка сервера Apache на Windows 7

На Windows 7 x64 можно установить обе версии, на 32-х разрядном Windows 7 будет работать только 32-х разрядная версия. Так что выбирайте в соответствии с вашими возможностями. Так же замечу, что исполняемые файлы скомпилированы в Microsoft Visual Studio 2012, я для их работы требуется установить распространяемый пакет Visual C++. Скачать его можно на сайте Microsoft vcredist_x64.exe. И выбирайте пакет соответствующей разрядности

Приступим к установке. Если не установлен пакет Microsoft, то устанавливаем. Это несложно, всё делается автоматически. Затем из zip архива извлекаем папку Apache24 и перемещаем в «C:\Program Files». Если у вас Windows x64, а сервер x86, то в папку «C:\Program Files (x86)».

Я видел в интернете советы что нужно создать папку в корне диска C: , и распаковать в неё содержимое архива, но я придерживаюсь иного мнения. Для программ есть папка «C:\Program Files». Для тех кто возражает, дескать конфигурационные файлы глубоко закопаны и для их редактирования потребуются права администратора, отвечаю: проблемы не существует. Создаете ярлык для блокнота («C:\Windows\notepad.exe»), в свойствах ярлыка после пути блокнота дописываете в двойных кавычках полный путь к файлу конфигурации («C:\Program Files\Apache24\conf\httpd.conf»), и в дополнительных свойствах ставите галку «запуск от имени администратора». Ярлык помещаете в удобное для вас место, по клику будет запущен блокнот с правами администратора, и он откроет конфигурационный файл сервера. Открыв его нужно немного поправить настройки сервера.

После правки httpd.conf нужно создать командный файл, записать в него

и запустить его от имени администратора. Эта команда серверу зарегистрировать себя как службу windows, которая будет автоматически запускаться при старте системы. Так же можете в автозагрузку поместить маленькую программу помощник «C:\Program Files\Apache24\bin\ApacheMonitor.exe». Она находится в трее, показывает состояние службы, и позволяет запускать, останавливать, перезапускать службу apache. Перезапускать службу apache нужно после каждого редактирования конфигурационных файлов чтобы изменения вступили в силу.

Если командный файл выполнен успешно и служба apache заработала, то можно в браузере набрать http://127.0.0.1 или http://localhost, браузер откроет файл «C:\Program Files\Apache24\htdocs\index.html», в котором единственная строка «It works!«. Если браузер смог это отобразить, значит сервер работает.

Конечно место по умолчанию для htlm документов, которые будут обрабатывать веб сервер не очень удобное, но это не имеет значения. Дело в том что apache умеет содержать множество виртуальных хостов, каждый из которых может быть индивидуально настроен. Сторонники денвера ставят в заслугу способность денвера содержать несколько разных сайтов, но это заслуга именно сервера apahce, который встроен в денвер. У нас же полноценный сервер, работающий как служба windows. И теперь самое заняться созданием виртуальных хостов.

После создания виртуального хоста можно приступить к его настройке с помощью файла .htaccess и созданию HTML страниц сайта.

Для того чтобы устанавливать сложные системы управления сайтом (например MODx) придется установить PHP и сервер базу данных MySQL. Но это тоже не очень сложно, про это написано в следующих разделах.

Установка Apache на Windows 7

.

Конфигурация Apache 2.4

По умолчанию конфигурация Apache 2.4 разбита на пачку файлов. Тут я рассмотрю стандартный конфиг и снабжу его русскими комментариями.

Базовый конфиг

Максимально упростим и по-русски откомментируем основной файл конфига /etc/httpd/conf/httpd.conf

#Корневая директория Apache ServerRoot «/etc/httpd» #Порт который будет «слушать» сервер. В случае использования Apache «за nginx» нужно указать отличное от «80» значение Listen 8080 #Подключаем все .conf-файлы из поддиректории conf.modules.d Include conf.modules.d/*.conf #Пользователь и группа с которыми запускается сервер User apache Group apache #Дефолтный конфиг под все директории AllowOverride none #Указание дефолтной директории при доступе с «внешки» (можно переопределять на конфигах виртуальных серверов) DocumentRoot «/var/www/empty» #Порядок поиска индексных файлов DirectoryIndex index.html index.php #Путь к error_log ErrorLog «logs/error_log» #Уровень логгирования LogLevel warn LogFormat «%h %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»» combined LogFormat «%h %l %u %t \»%r\» %>s %b» common CustomLog «logs/access_log» combined AddDefaultCharset UTF-8 EnableSendfile on TypesConfig /etc/mime.types #Дополнительные файлы конфигурации IncludeOptional conf.d/*.conf

Дополнительно подгружаемые модули Apache

Разберемся с подгружаемыми модулями.

Листинг /etc/httpd/conf.modules.d/00-base.conf с русскими комментариями выглядит так.

#Отвечает за возможность использования директив Allow и Deny в расширенном синтаксисе #Allow from all|host|env=[!]env-variable [host|env=[!]env-variable] #LoadModule access_compat_module modules/mod_access_compat.so #Позволяет связать запрошенный клиентом mime-тип c cgi-скриптом #Action action-type cgi-script [virtual] #LoadModule actions_module modules/mod_actions.so #Позволяет использовать синтаксис Alias #Alias URL-path file-path|directory-path LoadModule alias_module modules/mod_alias.so #Позволяет явно указать поддерживаемые сервером HTTP-методы #AllowMethods GET POST OPTIONS LoadModule allowmethods_module modules/mod_allowmethods.so #Модули авторизации #LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_core_module modules/mod_authn_core.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so #LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authn_socache_module modules/mod_authn_socache.so LoadModule authz_core_module modules/mod_authz_core.so #LoadModule authz_dbd_module modules/mod_authz_dbd.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so #LoadModule authz_groupfile_module modules/mod_authz_groupfile.so #LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_owner_module modules/mod_authz_owner.so #LoadModule authz_user_module modules/mod_authz_user.so #Позволяет использовать директивы индексации директорий #LoadModule autoindex_module modules/mod_autoindex.so #Позволяет управлять кешированием #LoadModule cache_module modules/mod_cache.so #LoadModule cache_disk_module modules/mod_cache_disk.so #Позволяет преобразовавать ответ сервера в RFC2397 data URL #LoadModule data_module modules/mod_data.so #Позволяет управлять подключениями к базам данных. Подбробнее можно найти по ключевому слову APR LoadModule dbd_module modules/mod_dbd.so #Управляет сжатием отправляемого контеннта LoadModule deflate_module modules/mod_deflate.so #Позволяет использовать директиву DirectoryIndex для автоматической подстановки файла «по умолчанию» на запросы без файла LoadModule dir_module modules/mod_dir.so #Позволяет логгировать io-дамп в error_log #LoadModule dumpio_module modules/mod_dumpio.so #Позволяет использовать Echo-протокол #ProtocolEcho On|Off #LoadModule echo_module modules/mod_echo.so #Позволяет устанавливаеть дополнительные переменные окружения в исполняемые скрипты #LoadModule env_module modules/mod_env.so #Позволяет управлять http-заголовками Expires и Cache-Control #LoadModule expires_module modules/mod_expires.so #Позволяет ответ сервера перенаправить через сторонние приложения #LoadModule ext_filter_module modules/mod_ext_filter.so #Позволяет управлять фильтрацией отправляемых данных #LoadModule filter_module modules/mod_filter.so #Позволяет отправлять кастомные заголовки клиенту #LoadModule headers_module modules/mod_headers.so #Позволяет настраивать server-side вставки сторонних файлов в отправялемые данные #LoadModule include_module modules/mod_include.so #Позволяет настроить генерацию server-info #LoadModule info_module modules/mod_info.so #Позволяет вести логгирование запросов и ошибок LoadModule log_config_module modules/mod_log_config.so #Позволяет логгировать так же информацию об объемах принятой/отправленной информации LoadModule logio_module modules/mod_logio.so #Позволяет использовать директиву MimeMagicFile LoadModule mime_magic_module modules/mod_mime_magic.so #Позволяет соотносить запрошенные типы файлов/контента с server-side хэндлерами, фильтрами, файлами и типами контента LoadModule mime_module modules/mod_mime.so #Позволяет управлять отображением различных видов одного файла в зависимости от входящего запроса (например, при реализации мультиязычности) #LoadModule negotiation_module modules/mod_negotiation.so #Предназначет для переопределения клиентского IP в случае если apache используется за другим front-сервером LoadModule remoteip_module modules/mod_remoteip.so #Позволяет установить таймауты для генерации ответов клиенту #RequestReadTimeout [header=timeout[-maxtimeout][,MinRate=rate] [body=timeout[-maxtimeout][,MinRate=rate] #LoadModule reqtimeout_module modules/mod_reqtimeout.so #Позволяет использвать Rewrite-движок. Необходим для большинства MVC-фреймворков LoadModule rewrite_module modules/mod_rewrite.so #Позволяет устанавливать переменные окружения в зависимости от характеристик запроса #LoadModule setenvif_module modules/mod_setenvif.so #Memory-провайдеры #LoadModule slotmem_plain_module modules/mod_slotmem_plain.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so #socache-провайдеры #LoadModule socache_dbm_module modules/mod_socache_dbm.so #LoadModule socache_memcache_module modules/mod_socache_memcache.so #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so #Позволяет настроить выдачу информации о статусе и текущей производительности сервера #LoadModule status_module modules/mod_status.so #Позволяет производить операции на отправляемых данных во время отправки #LoadModule substitute_module modules/mod_substitute.so #Позволяет выполнять CGI-скрипты от имени определенного пользователя #LoadModule suexec_module modules/mod_suexec.so #Позволяет задавать уникальный ID каждому реквесту #LoadModule unique_id_module modules/mod_unique_id.so #Позволяет управлять некоторыми вопросами в области unix-безопасности LoadModule unixd_module modules/mod_unixd.so #Позволяет задавать директории для работы определенных пользоваталей #LoadModule userdir_module modules/mod_userdir.so #Позволяет организовывать различные конфиги Apache в зависимости от версии Apache #LoadModule version_module modules/mod_version.so #Позволяет создавать динамически конфигурируемый виртуальный хостинг #LoadModule vhost_alias_module modules/mod_vhost_alias.so #Управляет буфферизацией ##LoadModule buffer_module modules/mod_buffer.so #Позволяет управлять периодической проверкой работы других модулей #LoadModule watchdog_module modules/mod_watchdog.so #Управляет автоматической отправкой отчетности о состоянии сервера #LoadModule heartbeat_module modules/mod_heartbeat.so #LoadModule heartmonitor_module modules/mod_heartmonitor.so #Позволяет настраивать мониторинг «сервинга» сайта пользователем с помощью кук #LoadModule usertrack_module modules/mod_usertrack.so #Позволяет настроить отдачу контента со скоростью различных старых стандартов модемов #LoadModule dialup_module modules/mod_dialup.so #Позволяет легко настроить трансляцию отправляемых данных в нужную кодировку #LoadModule charset_lite_module modules/mod_charset_lite.so #Позволяет сконфигурировать debug-log #LoadModule log_debug_module modules/mod_log_debug.so #Позволяет ограничить скорость отдачи данных для некоторых видов запросов #LoadModule ratelimit_module modules/mod_ratelimit.so #Позволяет настроить отдачу запроса обратно клиенту с использованием некоторых фильтров #LoadModule reflector_module modules/mod_reflector.so #Позволяет задавать максимальный размер тела запроса #LoadModule request_module modules/mod_request.so #Позволяет фильтровать входящие запросы и исходящие ответы с помощью sed-синтаксиса #LoadModule sed_module modules/mod_sed.so #Позволяет настраивать реакцию сервера на неверные адреса (например отключать case-sensitive) #LoadModule speling_module modules/mod_speling.so

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

Файл конфига 00-dav.conf отвечает за модули авторизации. Еслми пользуетесь php-методами авторизации — можно смело все комментировать или удалить файл.

Файл 00-lua.conf содержит модули отвечающие за работу lua-скриптов в конфигах. Если не используете — можно комментировать или удалить файл целиком.

00-mpm.conf содержит подгрузку модулей, отвечающих за процессинг запросов.

00-systemmd.conf подгружает модуль для правильной работы с systemctl операционной системы.

00-proxy.conf содержит модули про проксирование.

Если вы не используете apache-проксиование (например, у вас для фронт используется nginx) — то так же можно комментировать/удалять этот файл.

01-cgi.conf подгружает модули обработки cgi-скриптов. Если вы их не используете — и этот файл можно закомментировать/удалить.

Дополнительные подгружаемые Apache файлы:

  • /etc/httpd/conf.d/autoindex.conf — используется для настройки автоиндесиования. Можно удалить если вы не используете мод mod_autoindex
  • /etc/httpd/conf.d/userdir.conf — используется для конфигурация дсотупа в зависимости от пользователя. Можно удалить если вы не используеете модуль mod_userdir.
  • /etc/httpd/conf.d/welcome.conf — конфигурирует отображение welcome-страницы Apache. Можно удалить.

Виртуальные хосты

Теперь, наконец, можно настроить виртуальные хосты.

Создадим папку куда будем складывать конфиги виртуальных хостов.

mkdir /etc/httpd/conf.vhosts.d

Создадим там файл domain.com.conf и внесем в него такую заготовку.

Ваш сайт должен лежать в директории /var/www/sites/domain.com.

Осталось добавить строчку Include conf.vhosts.d/*.conf в файл /etc/httpd/conf/httpd.conf и перезапустить httpd.

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

Apache готов к работе.

19.12.2003

Знакомство с веб-сервером Apache

веб-сервер Apache

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

Для того чтобы в Интернете появился сайт, он должен быть размещен на сервере хостера или вашем собственном, подключенном к Сети и имеющем выделенный IP-адрес. Сервер представляет собой компьютер, на котором установлено специальное программное обеспечение, которое тоже называют «веб-сервером».

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

В 1994 году сотрудник Национального центра приложений для суперкомпьютеров в Университете Иллинойса США (NCSA) Роб Маккул выложил в общее пользование первый веб-сервер, который так и назывался — NCSA HTTP daemon. Сервер получил популярность в узких кругах, но в середине 1994 года Маккул покинул университет, и разработки прекратились.

Небольшая группа заинтересованных веб-мастеров начала совместную работу над продуктом. Общаясь в дискуссионном листе по электронной почте, они разрабатывали «заплатки» и нововведения для сервера. Именно они и создали Apache Group, разработавшую первую версию Apache-сервера. Произошло это в апреле 1995 года, когда на основу (NCSA Server 1.3) были наложены все существующие «заплатки». Так появился первый официальный публичный релиз Apache 0.6.2.

Первая публичная версия Apache появилась в апреле 1995 года, а в декабре вышел релиз 1.0

Работа над сервером не прекращалась ни на день, и очень скоро он стал одним из самых популярных. После многочисленных испытаний 1 декабря 1995 года появилась версия 1.0, устойчивая и надежная. На протяжении всех этих лет и по сей день Apache остается совершенно бесплатным. Возможно, это тоже определило успех сервера, ведь, по данным NetCraft, Apache в данный момент установлен на 67% всех серверов в мире.

Сервер Apache сейчас установлен на 67% серверов по всему миру. В данный момент развивается сразу две ветки

В данный момент параллельно развиваются две ветки Apache – версии 2.0 и 1.3. Вторая версия претерпела значительное количество изменений, которые в первую очередь коснулись ядра программы и некоторых важных модулей. Так как модули, написанные сторонними разработчиками для версии 1.3, не будут работать в версии 2.0, «старый» Apache также поддерживается. Однако если вы собираетесь впервые установить Apache, то стоит присмотреться к новой версии.

Apache — полнофункциональный, расширяемый веб-сервер с открытым кодом

Итак, что же такое Apache? Это полнофункциональный, расширяемый веб-сервер, полностью поддерживающий протокол HTTP/1.1 и распространяющийся с открытым исходным кодом.

Сервер может работать практически на всемх распространенных платформах. Существуют готовые исполняемые файлы сервера для Windows NT, Windows 9x, OS/2, Netware 5.x и нескольких UNIX-систем. При этом он очень прост в установке и конфигурации. В этом вы сможете убедиться несколько позднее.

Apache настраивается с помощью текстовых конфигурационных файлов. Основные параметры уже настроены «по умолчанию» и будут работать в большинстве случаев. Если вам не хватает функциональности штатного «Апача», то стоит присмотреться к распространяемым модулям, написанным Apache Group и сторонними разработчиками. Немаловажным преимуществом является то, что создатели активно общаются с пользователями и реагируют на все сообщения об ошибках.

Самая простая функция, которую может выполнять Apache – стоять на сервере и обслуживать обычный HTML-сайт. При получении запроса на определенную страницу сервер отправляет в ее ответ браузеру. Набираете адрес, открывается страница — все просто.

С помощью сервера Apache можно производить простую аутентификацию

Функция посложнее, которая заложена в протоколе HTTP/1.1 – аутентификация пользователей. С помощью штатных средств сервера Apache вы можете разграничить доступ к определенным страницам сайта для разных пользователей. Это нужно, например, для того чтобы сделать администраторский интерфейс к сайту. Для этого используются файлы .htaccess и .htpasswd, а также модули mod_auth и mod_access. Пользователи могут быть разбиты на группы, и для каждой из них можно назначить свои права доступа.

Сервер Apache поддерживает работу с технологией SSI

Для разделения дизайна и функциональной части сайта, а также для упрощения изменения статических объектов существует технология SSI*. Она позволяет вам поместить всю повторяющуюся информацию в один файл (например, top.inc), а затем вставлять в страницы ссылку на нее. Затем, если понадобится изменить несколько строк в этой информации, то придется поменять их только в одном файле. Сервер Apache поддерживает эту технологию и позволяет использовать серверные включения в полном объеме.

На сервере Apache можно создавать пользовательские директории для веб-сайтов

Если на одном сервере с установленной операционной системой семейства Unix и сервером Apache заведено несколько пользователей, то каждому из них можно создать отдельную директорию. Точнее, она будет создаваться автоматически вместе с псевдонимом. Это делается с помощью модуля mod_userdir и директивы UserDir. Так, например, можно папке public_html в домашней папке пользователя сопоставить адрес www.site.ru/~user. В общем-то, так и делается на серверах большинства сайтов, предоставляющих бесплатный хостинг. Администратор сервера может разрешить или запретить определенным пользователям создавать домашние страницы, использовать SSI и другие функции сервера. Полноценный же хостинг обычно предусматривает создание отдельного виртуального сервера для каждого пользователя.

Вы можете настроить виртуальные хосты. Благодаря им на одном физическом сервере можно содержать несколько виртуальных

Сервер Apache был одним из первых серверов, которые начали поддерживать виртуальные сервера (хосты). Эта возможность позволяет размещать на одном физическом сервере несколько полноценных сайтов. У каждого из них может быть свой домен, администратор, IP-адрес и так далее.

Если вам нужно разместить на вашем сервере домены domain.ru и domain.com, то для начала надо сделать так, чтобы в системе DNS им был сопоставлен ваш IP-адрес. После этого в конфигурационном файле Apache создаете две директивы <VirtualHost>, где описываете каждый виртуальный хост. Таким образом, сервер будет знать, на какую папку «отправлять» пришедший запрос.

Apaсhe поддерживает работу со скриптами PHP, CGI и другими

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

Модуль mod_cgi позволяет вам размещать на сервере CGI-скрипты. Вообще, это всего-навсего исполняемые файлы, написанные на одном из допустимых языков программирования. Они могут содержаться как в откомпилированном виде (например, так делают, если пишут CGI на языке C++), так и в виде исходного текста (если на сервере установлен Perl, то программист может помещать и такие файлы. Иногда они имеют расширение .pl).

Что касается PHP, то возможность интеграции его в Apache предусмотрена разработчиками самого PHP. Apache же выполняет только функции посредника между скриптом и компилятором. Существует два способа интеграции PHP в Apache. Первый – установка специального модуля, расширяющего возможности сервера, и тогда он сам становится способным «компилировать» скрипты. И второй – установка в конфигурационных файлах связей между php-файлами и самим компилятором (он находится на диске в виде файлов .cgi или .exe).

В последней версии Apache существует модуль для работы с сильной криптозащитой SSL/TSL

На основе сервера Apache можно создавать не только простые любительские сайты, но и ресурсы, требующие серьезной криптографической защиты передаваемых данных. Специально для этого был разработан протокол SSL/TLS, а его поддержка была встроена в Apache 2.0. С помощью специального модуля можно осуществлять аутентификацию на основе именных сертификатов, что позволяет практически наверняка гарантировать подлинность пользователя.

Apache ведет подробные протоколы всего происходящего на сервере

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

Словом, полный набор для тщательного анализа появляющихся ошибок.

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

Все статьи

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*