Серверы apache


Содержание

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

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

Полезно

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

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

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

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

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

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

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

Телефония

FreePBX и Asterisk

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

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

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

Как включить RDP на Windows

Как работать с регулярными выражениями

Система мониторинга Nagios

Разбираемся с Docker: установка и использование

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

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

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

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

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

Устанавливаем на Windows Apache, MySQL и PHP — Нехитрый домашний веб–сервер

Полезно запустить свой локальный веб-сервер хотя бы из любопытства. Понять устройство веба, сделать простенький сайт, втянуться и стать профессиональным разработчиком — проще, чем кажется. Совсем просто одним кликом установить готовый пакет WAMP (Windows: Apache HTTPD, MySQL, PHP), а ещё лучше — разобраться самому.

А чтобы лучше разобраться в веб-серверах давайте вместе установим, самостоятельно настроим и обновим все три компонента: Apache HTTPD 2.4, MySQL 8.0 и PHP 7.3. А заодно разберемся и с phpMyAdmin 4.8.

Если говорить совсем доступно, то заурядному веб-серверу нужны только три вещи: программа для ответа на запросы браузера, в нашем случае это Apache HTTPD, программа для управления базами данных, мы рассмотрим MySQL, и библиотеки для обработки кода на каком-то языке программирования, я поведу речь о PHP. Опционально, но совсем не обязательно, подобрать софт для ручных манипуляций с базами данных. Провайдеры дешевого интернет–хостинга чаще всего дают доступ к phpMyAdmin, а поэтому его используем и мы. Все эти программы совершенно бесплатны, а их код — открыт.

Конечно, базами данных можно управлять иначе, например, через PostgreSQL или SQLite, иначе можно отвечать и на запросы, допустим, через nginx или Microsoft IIS, да и языки можно использовать совершенно другие, скажем, Ruby или Python. Но к 2020 году, вот уже более десяти лет, связка Apache-MySQL-PHP всё ещё остается самой популярной.

Пройдем по чётким пунктам с краткими пояснениями для более глубокого понимания. Если вас интересует только результат — игнорируйте пояснения.

1. Подготовьтесь к установке сервера

1.1. Создайте папку web на диске D. Внутри нее создайте 5 подпапок: apache, php, tmp, www и log.

Сервер лучше устанавливать не на тот логический диск, где установлена Windows: чтобы избежать проблем с правами доступа к файлам и случайно не удалить сервер при переустановке системы. Для примера возьмём диск D.

1.2. Установите текстовый редактор кода. Хорошие варианты: Visual Studio Code, Brackets, Atom, Sublime Text и Notepad++.

Редактор не требуется, но с ним удобнее работать: как минимум, редактор нумерует строки и автоматически подсвечивает фрагменты кода разными цветами. Для таких редакторов как VS Code и Atom (и отдельный для Sublime) существуют пакетные менеджеры. Установив дополнительные пакеты, вы заставите редактор «подсвечивать» код ещё большего числа языков, а также научите автоматически указывать ошибки, дополнять выражения и делать многое другое. Но в конце–концов можно использовать и встроенный «Блокнот» Windows.

1.3. В каталоге D:\web\www создайте файл index.html с текстом Hello world и файл index.php с текстом .

HTML–файл необходим для проверки работы веб-сервера Apache HTTPD, который в среде разработчиков чаще называют просто Apache или «апач», хотя это и не совсем верно, ведь так называется группа проектов и стоящая за ними организация Apache Software Foundation, а не одна программа, но это простительная ошибка. Если Apache работает, то в браузере в ответ на обращение к серверу появятся слова Hello world. А вот PHP–файл необходим для проверки работы PHP, о котором ниже. Если PHP работает, то в браузере в ответ на обращение к серверу появятся сведения о конфигурации PHP.

2. Установите и настройте Apache HTTPD

2.1. Загрузите архив с последней версией Apache HTTPD для 64–разрядной Windows: httpd-2.4.38-win64-VC15.zip. На всякий случай, проверьте на официальном сайте Apache Lounge нет ли версии новее: apachelounge.com/download.

Официальная сборка Apache под Windows не выпускается, сборки готовят отдельные организации, самой активной из которых является Apache Lounge. Сам Apache работает по HTTP и в Windows трудится как фоновый процесс, а в Linux — как демон (англ. daemon), откуда и название HTTPD. Существует Apache и под 32-битные версии Windows, для них необходима версия Win32, а не Win64. Указанные в имени файла VC15, VC14 и VC11 говорят о версии Visual Studio, которой скомпилирован Apache. Выберете самую последнюю версию и установите свежие вспомогательные файлы Visual Studio с официального сайта Microsoft: VC_redist.x64.exe.

2.2. Распакуйте архив и перенесите содержимое папки Apache24 в папку D:\web\apache.

Важно ничего не перепутать и перенести не все содержимое архива, а лишь содержимое подпапки с именем Apache24. В архиве могут быть файлы readme и прочая информация, которая не нужна для работы сервера.

2.3. Откройте файл D:\web\apache\conf\httpd.conf. Поиском по файлу найдите и измените значение SRVROOT на D:/web/apache . Найдите и измените значения DocumentRoot и Directory на D:/web/www .

У Apache несколько файлов с настройками, все они находятся в папке conf (от слова configuration, «конфигурация» в переводе с английского). Основные настройки задаются в файле httpd.conf. Параметр ServerRoot задает корневую папку самой программы Apache, а DocumentRoot и Directory задают корневую папку хоста, то есть ту папку, в которой хранятся файлы сайта. Номера строк с параметрами могут меняться в новых версиях Apache, поэтому я их не привожу, поищите параметры по документам. Чтобы открыть окошко поиска в вашем текстовом редакторе, нажмите Ctrl + F.

2.4. В том же файле httpd.conf найдите, раскомментируйте и измените значение ServerName на localhost:80 .

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

2.5. В том же файле httpd.conf найдите и измените значение параметра ErrorLog на «D:/web/log/apache-error.log» , а также значение CustomLog на «D:/web/log/apache-access.log» common. Сохраните файл httpd.conf с перезаписью.

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

2.6. Установите Apache через командную строку. Откройте командную строку (или выполните команду cmd в PowerShell) от имени администратора и выполните команду D:\web\apache\bin\httpd.exe -k install .

Сервер установится тут же, прямо в режиме командной строки. Если вся подготовка прошла без ошибок — Apache установится, но ещё не запустится. Если захотите удалить Apache, то выполните в командной строке команду D:\web\apache\bin\httpd.exe -k uninstall .

2.7. Запустите «Диспетчер задач» Windows, перейдите на вкладку «Службы». Найдите Apache2.4 в списке служб, вызовите контекстное меню: так вы сможете запустить, остановить или перезапустить сервер. Запустите сервер.

В файлах сервера Apache для Windows также есть программа Apache Monitor, графический интерфейс, смысл которого ровно такой же: запускать, останавливать и перезапускать службу Apache2.4. Но в последней версии Windows 10 сильно проще попасть в список служб, поэтому смысла пользоваться Apache Monitor больше нет.

2.8. Откройте браузер и наберите адрес http://localhost/ или http://127.0.0.1/ — вы должны увидеть надпись Hello world.

Браузер обратится с запросом по 80 порту к тому же компьютеру, на который он установлен, и будет ждать ответа. Если установка Apache прошла без ошибок, но в ответе нет надписи Hello world — проверьте есть ли в каталоге D:/web/www файл index.html и еще раз пройдитесь по всем пунктам. Если все прошло успешно и в ответ вы получили файл index.html, то поздравляю, вы уже можете дополнять его кодом на HTML, CSS и JavaScript и обращаться к файлам по имени хоста.

2.0. Обновить Apache легко. Переименуйте папку D:\web\apache в apache_old, распакуйте новую версию Apache в D:\web\apache, перенесите httpd.conf из папки apache_old в папку apache. Если все работает — удалите apache_old.

3. Добавьте в Apache виртуальные хосты

3.1. Откройте файл C:\Windows\System32\drivers\etc\hosts от имени администратора. Добавьте в него строки 127.0.0.1 host1.localhost и 127.0.0.1 host2.localhost . Сохраните файл hosts.

Если текстовый редактор не может работать от имени администратора в защищенной папке Windows, то файл host можно скопировать в ничем не защищенную папку. Например, на Рабочий стол, где его можно отредактировать, сохранить, переместить обратно и подтвердить операцию с административными привилегиями, когда Windows их запросит. Редактор Visual Studio Code может запрашивать привилегии прямо во время сохранения защищенных файлов.

3.2. Создайте папки D:\web\www\host1.localhost и D:\web\www\host2.localhost для виртуальных хостов. Внутри каждой папки создайте по файлу index.html с текстом host1 и host2 соответственно, а также по файлу index.php с текстом .

HTML–файлы необходимы для проверки работы новых хостов Apache. Если хост работает, то в ответ на обращение к хосту в браузере появится соответствующий текст.

3.3. Создайте папки D:\web\log\host1.localhost и D:\web\log\host2.localhost для журналов ошибок виртуального хоста.

3.4. Откройте файл D:\web\apache\conf\httpd.conf. Раскомментируйте строку Include conf/extra/httpd-vhosts.conf . Сохраните файл httpd.conf.

Когда Apache увидит, что у него есть доступ к httpd-vhosts.conf, то он перестанет принимать во внимание указанные ранее параметры DocumentRoot, ServerName, ErrorLog и CustomLog в файле httpd.conf. Все эти параметры будут взяты из файла конфигурации виртуальных хостов, а самый первый указанный хост будет считаться за localhost.

3.5. Откройте файл D:\web\apache\conf\extra\httpd-vhosts.conf. Опишите виртуальные хосты в следующей нотации, после чего перезапустите Apache:

ServerAdmin webmaster@host1.localhost
DocumentRoot «D:/web/www/host1.localhost»
ServerName host1.localhost
ServerAlias www.host1.localhost
ErrorLog «D:/web/log/host1.localhost/error.log»
CustomLog «D:/web/log/host1.localhost/access.log» common

ServerAdmin webmaster@host2.localhost
DocumentRoot «D:/web/www/host2.localhost»
ServerName host2.localhost
ServerAlias www.host2.localhost
ErrorLog «D:/web/log/host2.localhost/error.log»
CustomLog «D:/web/log/host2.localhost/access.log» common

3.6. Откройте браузер и перейдите по адресам http://host1.localhost/ и http://host2.localhost/ — вы должны увидеть надписи host1 и host2 соответственно.

Если хочется поработать с двумя и более проектами на одном компьютере, то под каждый из них легко создать отдельные виртуальные хосты. Еще один хост легко создать, пройдя по инструкции сначала: создать папку хоста в D:\web\www, папку журналов ошибок в D:\web\log, строку с именем хоста в файле hosts и блок VirtualHost в файле httpd-vhosts.conf.

3.0. Сохранить виртуальные хосты при обновлении Apache также легко. Просто не забудьте перенести еще и D:\web\apache_old\conf\extra\httpd-vhosts.conf в новую папку apache.

4. Установите и настройте PHP

4.1. Загрузите архив с последней версией PHP для 64–разрядной Windows: php-7.3.2-Win32-VC15-x64.zip. На всякий случай, проверьте на официальном сайте PHP нет ли версии новее: https://windows.php.net/download/.

Обратите внимание, что вам нужна версия Thread Safe, то есть работающая в нескольких потоках, и она должна точно соответствовать версии Visual Studio, с помощью которой был скомпилирован Apache, например — VC15. Разрядность тоже должна быть как у Apache, 64-битные версии обозначаются x64, а 32-битные — x86.

4.2. Распакуйте архив и перенесите все его содержимое в папку D:\web\php.

4.3. Откройте файл D:\web\apache\conf\httpd.conf. Найдите секцию файла со множеством строк LoadModule и в самый ее конец добавьте две строки, первая — LoadModule php7_module «D:/web/php/php7apache2_4.dll» , и вторая — AddHandler application/x-httpd-php .php .

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

4.4. В том же файле httpd.conf сразу после секции LoadModule добавьте строку PHPIniDir «D:/web/php» .

Директивой PHPIniDir задается адрес файла php.ini. Этот файл содержит множество важных настроек самого PHP: допустимые размеры файлов для обработки, ограничения времени работы скриптов, параметры пользовательских сессий и многое другое.

4.5. В том же файле httpd.conf найдите и измените значение DirectoryIndex на index.php index.html . Сохраните файл httpd.conf с перезаписью.

4.6. Перезапустите Apache, откройте браузер и перейдите по адресу http://localhost/ или http://127.0.0.1/ — вы должны увидеть сведения о конфигурации PHP и Apache.

Это значит, что вы все сделали правильно.

4.7. Откройте файл D:\web\php\php.ini-development и сохраните его под именем D:\web\php\php.ini.

Изначально php.ini отсутствует из соображений безопасности, владелец сервера должен самостоятельно его создать и проверить.

4.8. В файле D:\web\php\php.ini найдите, раскомментируйте и отредактируйте следующие параметры: параметр extension_dir = «D:/web/php/ext» , параметр sys_temp_dir = «D:/web/tmp» , параметр extension=mysqli , параметр extension=mbstring , параметр date.timezone = Europe/Moscow (укажите свой часовой пояс в соответствии с документацией php.net/manual/ru/timezones.php). Сохраните php.ini и перезапустите Apache.

В то время как PHP работает как расширение Apache, у самого PHP также есть множество важных и полезных расширений в виде библиотек, многие из которых идут в комплекте с PHP; прежде чем подключать эти расширения необходимо указать их адрес в параметре extension_dir. По ходу работы большинства популярных скриптов создаются временные файлы, необходимо указать папку для этих файлов в параметре sys_temp_dir. Одно из самых востребованных расширений — mysqli, стандартная библиотека для PHP, которая позволяет подключаться к базам данных под управлением MySQL. При работе с базами нередко нужно разбивать или собирать строки из нескольких мегабайт, для чего будет полезна библиотека mbstring. Также не стоит забывать про свой часовой пояс — он указывается вручную. С этим минимальным набором вы можете выполнять скрипты на PHP, хотя локальной базы данных у вас ещё нет.

4.0. Обновить PHP легко. Переименуйте папку D:\web\php в php_old, распакуйте новую версию PHP в D:\web\php, перенесите php.ini из папки php_old в папку php. Если все работает — удалите php_old.

5. Установите и настройте MySQL

5.1. Загрузите последнюю версию MySQL Installer для Windows: mysql-installer-community-8.0.15.0.msi. На всякий случай, проверьте на официальном сайте MySQL нет ли версии новее: dev.mysql.com/downloads/windows/installer/.

Обратите внимание на то, что это только установщик, и он собран для 32–битных Windows. Уже в ходе установки вы выберете какая версия MySQL вам нужна: для 64– или 32–битных систем.

5.2. Установите MySQL Installer. Программа установится без лишних диалогов и сразу запустится с предложением принять лицензионное соглашение и установить уже сам MySQL. Примите лицензионное соглашение.

Установщик пригодится в будущем для обновления MySQL — сам MySQL обновляться не умеет. Если установщик мешает, то его можно удалить и установить снова, когда появится желание обновить MySQL. Программа без труда определит установленную версию MySQL и предложит ее обновить. Новые минорные версии MySQL выходят достаточно часто, не лишним будет периодически заглядывать в установщик. Правда, при выходе мажорного обновления могут потребоваться полное удаление и повторная установка как самой MySQL, так и MySQL Installer.

5.3. Выберете тип Custom (англ. Индивидуальный) на этапе Choosing a Setup Type (англ. Выбор типа установки) и нажмите Next.

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

5.4. Выберете MySQL 8.0.15 – X64 из древовидного списка MySQL Servers в поле Available Products (англ. Предлагаемые продукты), нажатием стрелки перенесите этот пункт в поле Products/Features to be Installed (англ. Продукты для установки), нажмите Next, подтвердите установку редистрибутива Visual Studio нажатием Execute, нажмите Next, снова нажмите Execute для установки сервера и переходите к конфигурации нажав Next ещё дважды.

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

5.5. Выберете Standalone MySQL Server (англ. Обособленный сервер MySQL) на первом шаге диалога о конфигурации установки.

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

5.6. Не меняйте настройки по умолчанию на втором шаге и нажмите Next.

Если у вас будет небольшая база данных, то лучше оставить Development Computer (англ. Компьютер для разработки) в поле Config Type (англ. Тип конфигурации). Если же база будет большой и потребует много оперативной памяти — взгляните на другие варианты. В форме Connectivity (англ. Соединение) всё же лучше ничего не менять.

5.7. Выберете Use Legacy Authentication Method (англ. Использовать устаревший метод проверки подлинности) на третьем шаге и нажмите Next.

Новый метод проверки подлинности логина и пароля доступа к серверу MySQL намного надежнее, но на 2020 год мало какие движки сайтов его поддерживают.

5.8. Придумайте пароль root–пользователя сервера на четвертом шаге, проще всего использовать такой же пароль — root, и нажмите Next.

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

5.9. Снимите галочку Start the MySQL Server at System Startup (англ. Запускать сервер MySQL при запуске системы) на пятом шаге, и нажмите Next.

Галочку имеет смысл снять, если вам не нужно чтобы MySQL со всеми базами висел в оперативной памяти с самого запуска Windows. Если памяти не жалко, и вы не будете забывать остановить службу MySQL80, когда она вам не нужна, — автозагрузку можно и оставить.

5.10. Нажмите Execute. MySQL сервер будет установлен и запущен. Нажмите Finish чтобы выйти из программы установки MySQL — вы вернетесь в MySQL Installer, нажмите Next и Finish уже в нем.

Запустите «Диспетчер задач» Windows и увидите mysqld.exe в фоновых процессах (d расшифровывается как daemon, англ. демон, аналог Windows–процессов в системах Linux). Откройте вкладку «Службы» и увидите службу по имени MySQL80, которую вы можете останавливать и запускать по правому клику мыши. Поздравляю, вы установили СУБД MySQL и настало самое время к ней подключиться.

5.0. Обновить MySQL ещё легче. Установите или запустите уже установленный MySQL Installer и проверьте в нём обновления. А если понадобится найти сами файлы баз данных под управлением MySQL, например, для переноса на новую мажорную версию, — вы их найдете по пути C:\ProgramData\MySQL\MySQL Server 8.0\Data.

6. Установите и настройте phpMyAdmin

6.1. Загрузите архив с последней версией phpMyAdmin: phpMyAdmin-4.8.5-all-languages.zip. На всякий случай, проверьте на официальном сайте phpMyAdmin нет ли версии новее: phpmyadmin.net/downloads/.

Обратите внимание на то, что phpMyAdmin (или просто PMA) работает на чистом PHP, это не программа для Windows. Для работы PMA должен быть запущен Apache с модулем PHP.

6.2. Распакуйте содержимое phpMyAdmin-4.8.5-all-languages (папка в архиве может быть вложена) в папку D:\web\www\pma.localhost, создайте отдельный виртуальный хост pma.localhost и не забудьте перезапустить Apache.

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

6.3. Откройте браузер и наберите адрес http://pma.localhost/ — вы должны увидеть окно phpMyAdmin для подключения к серверу MySQL. Введите логин root и пароль root — вы увидите графическое представление своих баз данных.

6.4. Опционально: в файле D:\web\www\pma.localhost\config.sample.inc.php найдите параметр $cfg[‘blowfish_secret’] = » , поставьте в одиночные кавычки строку из 32 произвольных символов, на основе которых будут сгенерированы куки–файлы и сохраните файл под именем D:\web\www\pma.localhost\config.inc.php.

Чтобы получить 32 символа на реальном сервере — можно упасть лицом на клавиатуру, а на локальной машине достаточно трижды набрать цифры от 0 до 9 и добавить 01: 01234567890123456789012345678901.

Изучаем веб-сервер Apache. Настройка и конфигурация HTTP сервера Apache на Windows. Основы работы веб-сервера.

Что такое HTTP сервер Apache? Установка веб-сервера Apache 2.4 на Windows. Где скачать Apache 2.4 для Windows?

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Сервера и протоколы. И этой записью открываем новый раздел Сервер Apache. В данном разделе мы с вами будем разбираться с тем, как работает HTTP сервер Apache. Начнем мы, конечно, с установки Apache на Windows. Нужно отметить, что большинство хостингов в качестве веб-сервера используют Apache, поэтому любому веб-мастеру необходимо знать основы работы с этим сервером.

Что такое HTTP сервер Apache? Установка веб-сервера Apache 2.4 на Windows. Где скачать Apache 2.4 для Windows?

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

Что такое веб-сервер Apache и для чего он нужен?

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

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

  1. Он отправляет специальные HTTP сообщения (такие сообщения получили название HTTP запросы), с помощью которых он (браузер) сообщает серверу о том, что и в каком виде он хочет получить. В запросах браузера содержаться специальные поля HTTP заголовков, при помощи которых браузер сообщает различную служебную информацию, и есть HTTP методы, с помощью которых браузер сообщает о том, что серверу нужно сделать с сообщением.
  2. Второй важной функцией браузера является анализ HTML документов. Анализируя специальные HTML тэги и HTML атрибуты браузер создает страницу, которую мы видим на экране, эта страница состоит из специальных HTML элементов.

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

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

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

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

  1. Получает запрос от клиента.
  2. Обрабатывает клиентский запрос.
  3. Ищет ресурс, указанные в запросе клиента.
  4. Отправляет специальный HTTP ответ клиенту, снабженный кодом состояния, по которому клиент узнает, как его понял сервер и смог ли он выполнить указанное действие.

Заметим, что сверху описана очень упрощенная схема действий. Вообще, сервер Apache является кроссплатформенным приложением, реализующим взаимодействие по протоколу HTTP. Если глубоко не вдаваться в детали, то можно сказать, что Apache работает одинаково на любой операционной системе (хотя это не совсем так). Поэтому вы можете установить Apache к себе на компьютер под управлением Windows, разработать и настроить сайт на локальной машине, а затем перенести его на хостинг и с вероятностью 95% ваш сайт будет работать на хостинге так же, как и на локальном компьютере.

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

Где скачать Apache? Как установить HTTP сервер Apache на Windows

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

Мы собрались устанавливать Apache на Windows 10, но здесь у нас есть небольшая загвоздка. Всё дело в том, что на данный момент, если вы скачаете Apache с официального сайта, затем установите его на Windows, то, скорее всего, PHP интерпретатор откажется работать c версией, скачанной с официального сайта. Поэтому пользователям Windows рекомендуется скачивать Apache из другого источника, ну, если только вы не хотите сами компилировать Apache и производить его первичную конфигурацию.

Также отметим, что вам необходимо удалить все ранее установленные версии сервера Apache перед установкой. Стоит еще сказать, что данная инструкция не поможет установить сервер Apache на Windows XP, так как Apache 2.4 будет работать только на Windows 7 и выше. Перед установкой не забудьте выключить Скайп или отключите в его настройках использование TCP порта 80.

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

Страница загрузки веб-сервера Apache

Раньше у веб-сервера Apache был инсталлер, теперь, к сожалению, установка Apache полностью ручная. Если вы хотите установить дополнительные модули Apache, то скачивать их нужно с этого же сайта. Надеемся, что трудностей со скачиванием Apache не возникнет. Теперь нам необходимо подготовить место на жестком диске, чтобы установить Apache. Так же нам потребуется удобный и профессиональный текстовый редактор, например: Brackets, Sublime Text 3, Notepad++ или IDE NetBeans.

Мы это сделали следующим образом: в корне диска С создали папку Server, внутри которой создали еще четыре папки: apache, tmp, www, log, php. Не все папки мы будем использовать в данной инструкции. Всё это отображено на рисунке ниже.

Структура папок для установки сервера Apache

Установка и настройка сервера Apache 2.4

Установка Apache 2.4

Шаг 1. На сайте apache.org нет версии Apache 2.4 для Windows. Поэтому дистрибутив возьмем на apachelounge.com. В момент написания статьи последний релиз – Apache 2.4.25 win64

В дистрибутиве Apache нет файла инсталляции. Поэтому установка будет выполняться вручную.

Шаг 4 . Скачиваем apache 2/4/25 win64 и компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe.

Шаг 5 Создаем папку и распаковываем архив httpd-2.4.25-win64-VC14.zip временную папку. Скопируйте папку Apache24 на диск С. Не меняйте путь. Пусть будет C:\Apache24 . Правок в файле конфигурации будет гораздо меньше, если маршрут будет такой C:\Apache24

Шаг 6 С помощью блокнота редактируем файл конфигурации httpd.conf , установленный по маршруту C:\Apache2\conf :

Строка 46 Устанавливаем значение параметра ServerName.
ServerName localhost:80

Строка 116 Снимаем комментарий (#) и делаем доступно загрузку модуля

LoadModule foo_module modules/mod_foo.so

Строка 172 . Устанавливаем значение параметра ServerName и ServerAdmin
ServerName localhost:80

Я создал специальную учетную запись электронной почти на yandex для параметра ServerAdmin

Строка 179 Устанавливаем значение параметра DocumentRoot (расположение документов сайта). Я оставил такой мршрут по умолчанию

Шаг 7 Исполняемые файлы Apache находятся в папке C:\Apache24\bin. Добавляем это значение в переменную среды PATH Windows.

Шаг 8 Перед установкой Apache как службу нужно запустить компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe.

Шаг 9 Устанавливаем Apache как службу.

Исполняемые файлы Apache находятся в папке C:\Apache24\bin. Для этом открываем командную панель (Start > Run > cmd) с правами администратора и командой cd меняем директорию, чтобы было C:\Apache24\bin > и запускаем
httpd.exe -k install

Отметим, что я забыл выполнить шаг 8 перед запуском службы Apache. В результате без компоненты C++ Redistributable Visual Studio 2015 не запускается Apache из-за того , что нужна библиотека vcruntime140.dll в папке C:\Windows\SysWOW64 ( а для 32 бит в папку C:\Windows\System32).

Аналогичное сообщение дает параметр тестирования службы httpd.exe -t

Можно попробовать скачать компоненту vcruntime140.dll от сюда http://www.dll.ru/files/vcruntime140-dll.html и скопировать файл в папку C:\Windows\SysWOW64 ( для 32 бит нужно скопировал файл в папку C:\Windows\System32). Однако после этого нужно перезагружать компьютер. Поэтому я рекомендую установить компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe. Установка этой компоненты не требует перезагрузки компьютера.

Шаг 10 После запуска службы apache httpd.exe -k start , открываем список запущенным служб в управлении компьютера и находим службу apache 2.4

убедимся, что служба запущена и тип запуска – “автоматически”

Шаг 10 Проверяем работоспособность сервера. В командной строке браузера набираем адрес: http://localhost. Если установка Apache прошла успешно – на экране отобразится текст It works ! . В противном случае мы увидим пустой экран.

В случае если сервер не запустился, следует проверить, не занят ли порт 80, который использует Apache по умолчанию. Делается это с помощью команды
netstat –anb

Чаще всего этот порт используют Skype или Firefox. В этом случае следует либо освободить порт, либо перевести Apache на порт 8080 .

Для этого в файле httpd . conf изменяем значений параметров ServerName и Listen . ServerName localhost:8080

Что такое Apache? Свободный веб-сервер Apache HTTP Server

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

С 1996 года — это самый популярный сервер в мире благодаря его стабильности и безопасности. «Апач» разрабатывается сообществом пользователей-разработчиков, которое работает под руководством Apache Software Foundation.

История Apache

В марте 1989 года Тим Бернерс Ли, английский ученый, работающий в CERN (Швейцария), предложил новый способ управления огромным количеством информации в проектах CERN. В то время никто не знал, что такое Apache. Первичная разработка сети документов с гиперссылками, как их назвал Тед Нельсон в 1965 году, привела к созданию WWW — первого программного обеспечения, которое вышло в ноябре 1990 года под названием World Wide Web, с веб-браузером, графическим интерфейсом и редактором WYSIWYG. Два года спустя в списке WWW-серверов было всего около тридцати записей, среди которых был HTTPs NCSA.

Настоящая история «Апач» начинается в марте 1995 года с выпуском Apache 0.2 на основе сервера NCSA HTTPD 1.3. Многим пользователям интересно знать, что такое Apache сегодня и что программа представляла из себя в первые месяцы своего существования. Это был всего лишь набор правок, применяемых к серверу NCSA. Далее Роберт Тау выпустил Shambhala 0.1 с API для модулей, которые оказались очень успешными.

Крупнейшими вехами проекта было полное соответствие стандарту HTTP 1.1, включенному в апреле 1997 года в версию 1.2. В эту версию уже была включена платформа Windows NT, которая стартовала в июле 1997 года. Объединение файлов конфигурации было реализовано в выпуске 1.3.3.

Apache Group отвечает за эволюцию веб-сервера и конкретные решения по разработке. Эту группу следует отличать от разработчиков ядра — Core group. Добровольный характер большинства разработчиков делает маловероятным то, что все они одновременно активны в «Апач», поэтому ядро отвечает за постоянную работоспособность. В общем, решения, которые должны принимать разработчики, принадлежат ядру и ограничиваются голосованием за включение кода. С другой стороны, они обычно имеют право на запись в репозиторий CVS, поэтому служат воротами для кода, обеспечивая его правильность и качество.

Минимальные требования и преимущества

Apache получил широкое признание в сети, с 1996 года он является наиболее часто используемым HTTP-сервером. Достигнул своей максимальной доли рынка в 2005 году, когда сервер использовался на 70 % сайтов во всем мире. В последние годы его доля на рынке сократилась. Примечательно то, что для Apache такой спад не свидетельствует о непопулярности и деградации технологии.

Минимальные требования для эксплуатации:

  1. Процессор – Pentium.
  2. Оперативная память — 64 Мб.
  3. ОС-Microsoft Windows, GNU/Linux.
  4. Размер установки- 50 Мб.
  1. Модульная конструкция.
  2. Открытый исходный код.
  3. Мультиплатформенная конструкция.
  4. Растяжимость.
  5. Популярность — легко получить помощь и поддержку.

Архитектура сервера

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

  1. mod_ssl — безопасная связь через TLS;
  2. mod_rewrite — перезапись адреса, обычно используется для преобразования динамических страниц, таких как php, в статические, чтобы обмануть поисковые системы относительно того, где они были разработаны;
  3. mod_dav — поддержка протокола WebDAV (RFC 2518) ;
  4. mod_deflate — алгоритм сжатия прозрачен, когда содержимое отправляется клиенту;
  5. mod_auth_ldap — позволяет пользователям проходить аутентификацию на сервере LDAP;
  6. mod_proxy_ajp — соединитель для связи с Jakarta Tomcat динамических страниц в Java (сервлеты и JSP).

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

  • mod_cband — управление трафиком и ограничение полосы пропускания;
  • mod_perl — динамические в Perl;
  • mod_php — динамические в PHP;
  • mod_python — динамические в Python;
  • mod_rexx — динамические в REXX и объект REXX;
  • mod_ruby — динамические в Ruby;
  • mod asp dot net — динамические в Microsoft.NET;
  • mod_mono — динамические в моно;
  • mod_security — фильтрация на уровне приложения для безопасности.

Конфигурация и безопасность

Для того чтобы понять, что такое Apache в свете безопасности, нужно рассмотреть его конфигурацию. Большая часть конфигурации выполняется в файле apache2.conf и httpd.conf, в зависимости от системы, в которой ПО работает. Любое изменение этого файла требует перезапуска сервера или повторного принудительного чтения.

Лицензия на программное обеспечение, по которой распространяется базовое ПО «Апач», является отличительной частью истории Apache HTTP Server и сообщества открытого исходного кода. Лицензия позволяет распространять продукты с открытым и закрытым исходным кодом.

Фонд свободного ПО не считает таковым Apache License, совместимого с версией 2 GNU General Public License (GPL), в которой программное обеспечение лицензируется и не интегрировано с ПО. Это нужно учитывать, перед тем как настроить веб-сервер Apache, распространяемого под лицензией GPL. Тем не менее версия 3 GPL включает в себя положение, которое позволяет ему быть совместимым с лицензиями, имеющими оговорки о патентном возмещении.

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

Проверка функционирования Апач

Чтобы убедиться, что «Апач» работает правильно, открывают веб-браузер и прописывают следующий адрес: http: // localhost. Затем нажимают Enter, появляется белая страница с сообщением «Это работает», что является доказательством того, что веб-сервер работает отлично.

«Апач» позволяет создавать специальные конфигурации для настройки и адаптации к потребностям. Для этого находят файл http.conf в C: appserv Apache2.2 conf. Создается его резервная копия, чтобы избежать ошибок выполнения, затем его открывают посредством любого редактора и изменяют нужные строки.

Чтобы правильно выполнить эти действия, нужно хорошо знать Apache worker, поскольку любые сделанные изменения будут отражены в производительности и запуске «Апач». Благодаря последним рекомендациям сервер будет установлен. Работать он будет в базовой конфигурации, которая позволяет загружать страницы или сетевые приложения в интернет.

Управление информацией

Apache — наиболее используемый веб-сервер, лидер с наибольшим количеством установок в мире, намного опережающий другие решения, такие как Microsoft Internet Information Server (IIS). Этот проект открыт для использования, так как он мультиплатформенный, имеющий версии для всех основных операционных систем, очень надежный и выделяющийся своей безопасностью и производительностью.

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

  1. Эффективность запросов.
  2. Большое количество HTTP-запросов, включая многозадачное выполнение, может оставить сервис свернутым.
  3. Ограничения на доступ к файлам, управления аутентификации пользователей или фильтрации запросов в соответствии с их происхождением.
  4. Обработка ошибок по страницам с информацией посетителя и перенаправлением на заранее определенные страницы.
  5. Управление информацией, подлежащей передаче в соответствии с ее форматом, и адекватное информирование браузера, запрашивающего указанный ресурс.
  6. Журнал управления для хранения полученных запросов, произошедших ошибок и в целом всей информации, которая зарегистрирована и проанализирована для получения статистики доступа к сайту.

«Апач» позволяет настраивать виртуальный хостинг на основе IP-адресов или имен, то есть иметь несколько веб-сайтов на одном компьютере.

Файл apache2.conf

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

Он находится в каталоге /etc /apache2, и, поскольку это текстовый файл, его можно легко редактировать с помощью текстового редактора. Свойства файла конфигурации — глобальные переменные сервера и расширение функциональности.

Глобальные переменные сервера — это переменные, которые определяют общее функционирование:

  1. Таблица директив «Апач». Имя сервера обозначено переменной ServerName, поэтому любое перенаправление или ссылка, существующие в HTML-документах, работают хорошо. Большинство переменных конфигурации распределены среди других небольших файлов, хранящихся в mods-available.
  2. .htaccess — это скрытый текстовый файл, который позволяет настроить работу сервера.
  3. «Апач» — конкретный каталог без необходимости изменять основной файл конфигурации apache2.conf. Когда веб-клиент запрашивает файл с сервера, он смотрит из корневого каталога в подкаталог, содержащий запрошенный для .htaccess, и принимает во внимание содержащиеся в нем директивы перед выполнением запроса.
  1. Запрещает перечисление файлов в каталоге.
  2. Перенаправляет веб-трафик.
  3. Настраивает страницы ошибок.
  4. Ограничивает доступ к определенным файлам.
  5. Запрещает доступ к определенным IP-адресам или диапазонам IP-адресов.
  6. Расширяет функциональность, что связано с вызовами других модулей и файлами конфигурации. Всем директивам, связанных с этим пунктом, будет предшествовать слово «Включить».

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

«Апач» изначально был разработан для работы с технологией PHP, но без проблем может работать и с .NET, что делает его более успешным по сравнению с IIS Microsoft, являющимся коллаборантом для серверов, использующих IIS, и обеспечивающим полную поддержку PHP без необходимости изменять конфигурацию.

Чтобы установить и запустить веб-сервер, в первую очередь необходимо загрузить его с официального сайта. Всегда находят самую последнюю версию доступного программного обеспечения и проверяют, будет ли она идентифицирована, как Win32 Binary, включая OpenSSL.

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

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

Далее появится окно установки, где указаны все доступные компоненты. Выбирают их все и проверяют, наличие папки c: appserv Apache2.2. Далее выполняют настройку веб-сервера Apache.

Веб-Monitor на панели задач

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

  1. В консоли Windows находят папку bin Apache, для этого прописывают следующее предложение в консоли — c: appserv Apache2.2? in.
  2. После ввода нажимают Enter и системный компонент, который будет выглядит так — C: appserv Apache2.2? In>.
  3. Находясь в папке bin, вводят http: .exe -k install и нажимают Enter.
  4. Появиться сообщение, похожее на «.Apache 2.2: служба уже установлена». Это сообщение проверит, что «Апач» был успешно установлен.

Один из наиболее эффективных способов проверить правильность работы Apache — установить, активен ли монитор приложения. Его можно увидеть на панели задач. Если он неактивен, активируют его, переходя в меню «Пуск», раздел «Все программы» и Apache http Server 2.2., нажимают на Monitor Apache Server и активируют его.

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

Советы по установке в Linux

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

  1. Скачивают последнюю стабильную версию «Апач».
  2. Загружают исходные файлы, соответствующие системе.
  3. Извлекают файлы ПО.
  4. После того загруженные файлы нужно будет распаковать:gunzip -d httpd-2_0_NN.tar.gz; tar xvf httpd-2_0_NN.tar.
  5. Это создает новый каталог в текущем каталоге с исходными файлами.
  6. Как только появятся файлы, указывают машине, где найти все исходные. Самый простой способ сделать это — принять все значения по умолчанию и просто набрать: ./configure.
  7. Настраивают Apache при условии, что не было никаких проблем с установкой и сборкой. Пользователь настраивает конфигурацию, что равносильно редактированию файла httpd.conf. Он обычно редактируется с текстовым редактором- vi PREFIX /conf/httpd.conf. Для внесения любых изменений нужно быть пользователем root.
  8. Проверяют работу сервера.

Применение в World Wide Web

Apach используется в основном для отправки статических и динамических страниц в World Wide Web. Многие приложения разработаны с учетом среды реализации «Апач» или будут использовать характеристики этого сервера. Apach — компонент сервера в популярной платформе приложений LAMP наряду с языками программирования MySQL и PHP, Perl , Python и Ruby, включая базу данных Oracle и сервер приложений IBM WebSphere. Mac OS X интегрирует его как часть собственного web-server и поддержку приложений WebObjects.

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

Разработчики веб-приложений иногда используют локальную версию Apache для предварительного просмотра и тестирования кода во время разработки. Microsoft Internet Information Services (IIS) является основным конкурентом «Апач», а также веб-сервером Sun Java System от Sun Microsystems и множеством других приложений, таких как Zeus Web-Server.

Некоторые из крупнейших сайтов в мире работают на Apache. Внешний интерфейс поисковой системы Google основан на ее модифицированной версии, которая называется Google веб-сервер (GWS). Многие проекты «Википедии» также работают на серверах «Апач».

Веб-сервер Apache — что такое http Apache, для чего нужен, где скачать

Веб-сервер Apache, что это такое

Apache (Apache HTTP Server), название самого известного и распространенного web-сервера поддерживающего протокол HTTP/1.1. По сути веб-сервер (web-server) это мощная программа, предназначенная для обработки http запроса из адресной строки браузера и возвращения по этому запросу нужных файлов. Если упростить, то веб-сервера позволяют наладить общение между браузером и сервером, по следующей схеме, браузер просит отдать ему файлы сайта по адресу, а веб-сервер ему это отдает. Это очень упрощенно. «Общение» проходит по протоколу HTTP.

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

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

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

Управление Apache

Для знакомства с веб-сервером Apache стоит ознакомиться, как управляется сервис Apache со стороны клиента.

Вероятно, что именно простота внешнего управления веб-сервисом Apache и сделало его таким популярным (или это одна из причин). Для управления веб-сервисом Apache есть специальный файл, под именем .htaccess (с точкой в начале). По своему функциональному назначению, он похож на файл robots.txt для поисковых роботов. Специальными директивами, записанными в этот файл вы можете, как пользователь, не углубляясь в программное обеспечение сервера, управлять выдачей страниц своего сайта, создавать перенаправления и т.п. Кроме файла .htaccess, для управления Apache есть файл htpasswd (тоже с точкой вначале) и еще модули mod_auth и mod_access.

Но вернемся к локальным серверам. Для установки (создания) локального сервера на свой компьютер без Apache не обойтись. Не в лишний раз напомню, что в аббревиатурах WAMP и LAMP, буква [A] это и есть веб-сервер, Apache.

Во всех сборках локальных серверов, таких как, Денвер, Open-server, XAMPP и др. веб-сервер Apache присутствует априори. Если собираем сервер самостоятельно, что мы и делаем, Apache нужно устанавливать самостоятельно.

Какую версию Apache нужно ставить

Развитие Apache шло двумя ветками (версиями) Apache 1.3 и Apache 2.x. Старую версию 1.3 ставить незачем, поэтому работаем с версией 2.x.

Теперь, самое запутанное. Вам знакомо, что почти любую программу можно ставить двумя вариантами:

  • С помощью автоустановщика (инсталлятора), файл [msi];
  • Напрямую, закачав каталоги и файлы программы в нужную директорию диска.

С Apache ситуация следующая:

  • Последняя версия Apache 2.4.26 (выпущено 2020-06-19) есть только в варианте ручной установки (ссылка внизу);
  • В варианте инсталлятора [msi] последняя версия Apache 2.2.25.

На этом всё! Первое знакомство с Apache состоялось. В следующих статьях я расскажу, как установить обе версии Apache на локальный компьютер.

В завершении нужные ссылки

Навигация на сайте Apache веб сервер (http) несколько запутанная, поэтому приведу нужные ссылки:

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

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

Полезно

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

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

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

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

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

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

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

Телефония

FreePBX и Asterisk

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

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

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

8 крутых файловых менеджеров Linux: обзор и установка

Chef — как готовить вашу сеть и никогда не пересаливать

Установка OpenVPN в CentOS

DevOps – это философия будущего: кто, что и как?

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

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

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

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

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

Сервер Apache — Настройка.

Сервер Apache имеет три файла конфигурации, они находятся в каталоге /usr/local/etc/httpd/conf. Эти файлы позволяют настроить все стороны функционирования сервера. После того как вы отредактируете эти файлы в соответствии с вашими требованиями, можете запускать сервер. Никакой другой настройки не требуется.

Прежде всего нужно перейти в каталог, содержащий файлы конфигурации, /usr/local/etc/httpd/conf. Здесь вы найдете три файла конфигурации.

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

>mycopy = ▒basename $i √ dist▓

Теперь у вас должны быть три файла, имеющие расширение .conf. В табл. 3-1 приведены имена этих файлов и объяснено назначение каждого из них. У вас также по-прежнему должны оставаться исходные файлы ≈ dist; не удаляйте их на тот случай, если вы допустите ошибку в процессе настройки и вам придется вернуться к ним за справкой.

Таблица 3-1. Файлы конфигурации Apache HTTPd

Имя файла Назначение
Httpd.conf Файл конфигурации сервера, содержит основное техническое описание работы демона.
Srm.conf Карта ресурсов сервера, указывает демону HTTPd порядок предоставления файлов .
Access, conf Файл конфигурации доступа содержит информацию о том, кто имеет право осуществлять доступ к вашему серверу.

Рассмотрим основные изменения в файлах конфигурации, которые необходимо сделать, прежде чем запускать сервер. Мы также рассмотрим наиболее полезные из предлагаемых сервером Apache опций, сделав акцент на тех, которые перечислены в файлах конфигурации. Сервер Apache имеет огромное число редко используемых опций, рассмотрением которых мы заниматься не будем. Полную информацию о возможностях настройки сервера можно получить, прочитав официальную документацию на сервере Apache: http://www.apache.org/docs/. Теперь перейдите в каталог /usr/local/etc/httpd/conf (или в тот каталог, в котором вы установили сервер Apache) и следуйте инструкциям.

httpd.conf: файл конфигурации сервера

Файл httpd.conf содержит конфигурацию сервера. Откройте его в редакторе и измените указанные ниже строки, если это необходимо. Приведенные ниже описания послужат вам в качестве указаний. Они не являются исчерпывающими инструкциями, однако затрагивают те изменения, которые вам, возможно, придется внести, чтобы заставить сервер работать. Единственной строкой, которую вы обязаны, изменить, является строка, начинающаяся с ⌠ServerAdmin■. Остальным директивам по умолчанию присвоены разумные значения, поэтому взгляните на них, чтобы убедиться в правильности значений, но вносить в них изменения вряд ли потребуется.

Для этой директивы значением по умолчанию является ServerType standalone. Серверы, работающие в автономном режиме (standalone), запускаются из загрузочных сценариев при запуске системы. Такая установка рекомендуется для улучшения производительности.

Серверу Apache (как и большинству традиционных серверов UNIX) для каждого соединения требуется запускать отдельную копию. Система UNIX оптимизирована специально для такого поведения, и накладные расходы на создание процессом собственной копии невелики. После запуска сервер, работающий в автономном режиме, начинает прослушивание на предмет наличия запросов на соединение. Обнаружив такой запрос, сервер ⌠раздваивается■ для его обслуживания. Когда копия заканчивает работу, она завершается. Эту основную модель можно изменить при помощи директив StartServers и MaxServers, как объясняется ниже.

В качестве альтернативы режиму standalone можно воспользоваться услугами демона inetd. В системах UNIX inetd представляет собой суперсервер. Большинство сетевых служб используется относительно редко по сравнению с десятками соединений в секунду, обслуживаемых занятыми HTTP-серверами. Даже такая популярная служба, как Telnet, обычно осуществляет не более одного соединения каждые несколько минут. Если для каждой из возможных сетевых служб запускать отдельный автономный сервер, это будет равносильно неоправданной растрате таких ценных системных ресурсов, как процессорное время и оперативная память. Решением этой проблемы для UNIX является использование демона inetd. Файл /etc/inetd.conf содержит список сетевых служб, за которые отвечает inetd. Этот демон использует для определения номера сетевого порта, связанного с каждой из конкретных служб, файл /etc/services и производит прослушивание этих портов на предмет появления запросов на соединения. При появлении запроса демон запускает для его обработки соответствующий сервер.

Хотя такой механизм идеален для сравнительно редко используемых служб, протокол HTTP не следует этой модели. Поскольку для каждой HTML-страницы, для каждого встроенного изображения и любого другого объекта, запрашиваемого пользователем, требуется отдельное соединение и, следовательно, отдельная копия сервера, то каждую минуту, если не каждую секунду, будет осуществляться несколько новых соединений.

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

В этой директиве задается номер сетевого порта, на котором будет работать ваш сервер, если он запущен в автономном режиме (если используется inetd, то номер порта следует задать в файле /etc/services).

Значением по умолчанию для этой директивы является Port 80. К этому порту Web-броузеры пытаются подключиться по умолчанию, и он является стандартным портом для протокола HTTP и рекомендуется для использования на основном сервере вашего Web-узла. Если вы хотите запустить сервер на этом порту или на любом другом, номер которого меньше 1024, то вам потребуются привилегии суперпользователя (root).

Если вы не обладаете в этой системе привилегиями суперпользователя, то все-таки остается возможность запустить Web-сервер на порту с номером, превосходящим 1024. Вам только придется объявить об этом и включить номер порта в адрес URL ; обычно используют номера 8000 или 8080. В дальнейшем предполагается, что вы обладаете правами суперпользователя в своей системе, и сервер запущен на порту, принятом по умолчанию.

В целях наблюдения за деятельностью пользователей сервер Apache ведет серию журнальных файлов, которые мы обсудим позднее. В одном из них ведется учет компьютеров, осуществивших доступ к серверу. Директива HostnameLookups указывает, записывается ли в журнальный файл имя компьютера (например, macl.shoop.com) или только его IP-адрес (например, 152.2.22.81). По умолчанию сервер сохраняет имя компьютера, но если ожидаемый объем графика очень велик, отключение опции HostnameLookups позволит немного уменьшить нагрузку на сервер. Это делается простым изменением строки на ⌠HostnameLookups off■.

Эти параметры задают действительные идентификаторы пользователя и группы, которые присваиваются серверу, работающему в автономном режиме. (Если используется inetd, большинство систем UNIX требует указать идентификатор пользователя в файле /etc/inetd-conf). Можно задавать как имена, так и их числовые эквиваленты, которые можно найти в файлах /etc/passwd и /etc/group соответственно.

По умолчанию в качестве имени пользователя принимается nobody, что является превосходным выбором с точки зрения защиты информации. Такое имя гарантирует, что Web-сервер получит доступ только к тем файлам, к которым разрешен доступ на чтение для всех пользователей. Альтернативой является создание в системе специального пользователя и использование для работы Web-сервера его идентификатора. Какой бы идентификатор ни использовался, следует убедиться, что для него не существует доступа к системе через интерфейс командной строки. Ни в коем случае нельзя запускать сервер с привилегиями суперпользователя (root).

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

Обратите внимание, что для начинающего вебмастера именно эти директивы обычно представляют трудности. Если указанные пользователь и группа не существуют в системе, сервер не будет работать. Для директивы Group, например, по умолчанию принято значение ≈1, что во многих системах не является разрешенным идентификатором группы.

Это официальный электронный адрес вебмастера вашего Web-узла. Обычно используется адрес в форме WebMaster@ ваш_cepвep, где ваш_сервер является хорошо известным именем вашего сервера. При этом адрес останется неизменным, даже если сменится вебмастер.

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

Вместо слова имя введите регистрационное имя пользователя, который будет заниматься обслуживанием вашего Web-сервера. Затем выполните следующую команду:

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

В этой директиве задается базовый каталог, в котором будет установлено программное обеспечение HTTP-сервера Apache. По умолчанию это каталог /usr/local/etc/httpd. Если вы до сих пор следовали нашим инструкциям, вам не придется менять эту строку.

Эта директива используется только для компьютеров, имеющих более одного IP-адреса. С ее помощью можно устанавливать, прослушивание какого из IP-адресов компьютера сервер будет производить на предмет поступления запросов. Большинство компьютеров имеют один IP-адрес.

Вопросы настройки компьютеров с большим числом адресов и несколькими серверами обсуждаются ниже, в разделе ⌠Развернутая конфигурация■ на стр. 108. По умолчанию эта директива закомментирована, и сервер производит прослушивание всех адресов компьютера.

ErrorLog и TransferLog

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

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

Вряд ли у вас возникнет необходимость (или желание) изменять значения в этих директивах.

P > и ScoreBoardFile

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

Директива ScoreBoardFile позволяет серверу Apache следить за собственной производительностью. Об использовании директивы ScoreBoardFile мы подробнее поговорим при рассмотрении модуля Status . Вряд ли у вас возникнет необходимость (или желание) изменять значения и в этих директивах.

В этой строке должно стоять официальное имя вашего сервера в том виде, в котором оно появляется в строке URL (то есть http://www. ИMЯ_вaшeго_сервера/). Это должно быть имя компьютера, зарегистрированное в системе имен серверов вашей организации или провайдера.


Эта директива предназначена для пользователей, работающих через прокси-сервер ≈ сервер, собирающий для них информацию, хранящий ее у себя и передающий им сохраненную копию вместо того, чтобы запрашивать в Интернете новую копию. Эта директива позволяет прокси-серверу кэшировать договорные документы, то есть документы, не получаемые динамически, такие как вывод сценариев CGI или сгенерированная сервером индексная страница. Обычно прокси-серверы не кэшируют такие документы, поскольку велика вероятность их изменения. По умолчанию эта директива отключена (закомментирована при помощи символа ⌠#■), и, вероятнее всего, вам не понадобится ее трогать.

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

KeepAlive и KeepAliveTimeout

Характеристики KeepAlive являются свойствами протокола HTTP I.I (который до сих пор имеет статус предложения), позволяющими ускорить обработку запросов. HTTP 1.0 при каждом запросе на передачу объекта создается новое соединение между клиентом и сервером. В сервере Apache реализована свойственная протоколу HTTP 1.1 возможность KeepAlive, что означает возможность запрашивать несколько объектов в рамках одного соединения. Например, раньше передача Web-страницы с четырьмя встроенными изображениями потребовала бы пять отдельных соединений, а с использованием KeepAlive все последовательные запросы производятся в рамках одного соединения. Очевидно, что это сокращает время обработки запросов сервером. Конечно, клиент должен уметь производить такие специальные запросы.

Значением по умолчанию для KeepAlive является 5 ≈ максимальное число запросов в рамках одного соединения. Когда значение этого параметра равно 5, наблюдается очевидное увеличение производительности. Чтобы отключить эту возможность, установите параметр KeepAlive равным нулю. Параметр KeepAliveTimeout отражает промежуток времени между последовательными запросами. Другими словами, если клиент в рамках одного соединения производит три запроса, а затем в течение нескольких секунд запросов от него не поступает, сервер считает, что третий запрос был последним. По умолчанию принимается значение 15 секунд.

Обратите внимание, что директива StartServers в файле httpd.conf стоит после директив MinSpareServers и MaxSpareServers, однако понять значение директив Min- и MaxSpareServers значительно легче, если сначала разобраться с директивой StartServers.

Когда выбирается автономный (standalone) режим работы сервера (ServerType) и для параметра StartServers задается значение, большее 1 (по умолчанию принимается значение 5), происходит коренное изменение работы сервера. Вместо запуска одного экземпляра сервер при старте создает несколько собственных копий, при этом образуется пул серверов.

Исходная копия сервера выступает в качестве планировщика для всех серверов в пуле, принимая соединения и передавая их свободным копиям. Теоретически, такая стратегия ускоряет процесс обслуживания запросов, снижая накладные расходы. На практике, однако, некоторые вебмастеры утверждают, что этим эффектом можно пренебречь, если только сервер не является очень загруженным (более 100 000 запросов в день).

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

MaxSpareServers и MinSpareServers

Если число поступающих к вам запросов превышает число серверов в пуле, заданное параметром StartServers, буфер серверов увеличивается для обслуживания запросов. Эти дополнительные процессы-серверы не завершаются после обработки запроса, ради которого они были запущены; они остаются в памяти. Директива MaxSpareServers позволяет настраивать число свободных серверов, находящихся в пуле. Если их больше, чем указано в директиве MaxSpareServers, то лишние процессы завершаются. Аналогично, если свободных серверов в пуле меньше, чем допускает директива MinSpareServers, то в преддверии наплыва запросов создаются дополнительные копии сервера. Опять-таки, изменение этих настроек мало отражается на работе большинства Web-серверов.

Поскольку Web-серверы обрабатывают большое количество запросов от многочисленных клиентов, это может привести к запуску такого количе-

ства серверов, что компьютер перестанет справляться с нагрузкой. Директива MaxClients устанавливает максимальное число копий сервера, которые могут выполняться одновременно. Когда достигается этот предел (по умолчанию ≈ 150), новые запросы получают отказ. Если вам не хочется отказывать пользователям, не устанавливайте слишком маленькое значение. Медленный ответ все-таки лучше, чем отсутствие какого-либо ответа вообще.

В этой директиве задается время жизни любого отдельного сервера в пуле серверов. Обработав установленное здесь количество запросов (по умолчанию ≈ 30), копия сервера завершается, а вместо нее запускается новая. В большинстве систем изменение этого параметра не дает заметного эффекта.

ProxyRequests и директивы Cache

Как уже было отмечено, прокси-серверы действуют в качестве посредников между клиентами и настоящими серверами, располагающими запрашиваемой клиентом информацией. В разделе ⌠Развернутая конфигурация■ мы шаг за шагом рассмотрим процесс настройки прокси-сервера. Пока оставьте директиву ProxyRequests и разнообразные директивы Cache закомментированными.

Использование виртуальных серверов позволяет придать адресу URL такой вид, будто он указывает на отдельный узел, даже если в действительности за ним стоит только часть большого сервера. Например, на сервере www.webstores.com может иметься раздел для информации корпорации ShoopSoft. Традиционно адрес URL выглядел бы, как http:// www.webstores.com/shoopsoft/. С использованием механизма виртуальных серверов раздел, принадлежащий корпорации, мог бы получить адрес URL вида: http://www.shoop.com/, как будто у корпорации есть в Интернете свой собственный Web-сервер.

Установка виртуальных серверов подробно обсуждается в разделе ⌠Развернутая конфигурация■. Пока что не изменяйте строки, относящиеся к директивам VirtualHosts.

Проверьте еще раз файл access, conf и убедитесь, что определены все необходимые директивы. Затем сохраните файл и переходите к следующему файлу конфигурации: srm.conf.

srm.conf: карта ресурсов сервера

Карта ресурсов сервера, представляющая собой файл /usr/local/etc/httpd/ conf/srm.conf, указывает, откуда и каким образом сервер Apache должен брать файлы для передачи пользователям. Она позволяет преобразовать абстрактный мир адресов URL, поступающих серверу от клиентов, в реальные файлы и каталоги на компьютере, на котором работает сервер.

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

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

В этой директиве задается каталог, из которого берутся передаваемые клиентам документы. По умолчанию принимается каталог /usr/local/etc/ httpd/htdocs. Можно предоставлять клиентам и файлы, находящиеся в других каталогах, ≈ для этого используются символьные ссылки.

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

Более подробно вопросы пользовательских каталогов и их отображение сервером будут рассмотрены ниже в разделе ⌠Планировка Web-пространства■.

Эта директива позволяет задать название документа, возвращаемого по запросу, который не содержит в строке URL названия документа. Например, в адресе URL http://www.shoop.com/ отсутствует название документа, поэтому будет возвращен документ, указанный в директиве Directorylndex. Поскольку по умолчанию принимается название index.html, сервер передаст клиенту документ index.html из каталога DocumentRoot на сервере.

В директиве Directorylndex можно задать несколько имен файлов. Если первый документ, указанный в строке, не найден в каталоге, то сервер ищет следующий и, в случае успеха, передает его клиенту. Это особенно полезно при мультиплатформной разработке, поскольку компьютеры, оснащенные системами, основанными на DOS, не поддерживают расширения имен файлов более, чем из трех символов. Например, чтобы разрешить в качестве индексных страниц предавать файлы index.html или index.htm, поместите в строку Directorylndex следующие значения:

Directorylndex index.html index.htm

В этом примере, если в одном и том же каталоге присутствуют файлы index.html и index.htm, в качестве индексной страницы будет передан файл index.html, поскольку он стоит в списке первым.

Вам следует создать файл index.html (или файл с другим именем, в зависимости от того, как вы назовете свои индексные страницы) в каталоге DocumentRoot как для Web-узла, так и для основных разделов с документами (и, например, для домашних страниц пользователей). Эта настройка обеспечивает простой интерфейс пользователям, которым не нужно помнить название конкретного документа.

Она также предоставляет вам важный уровень защиты информации. По умолчанию, если клиент указывает адрес URL каталога, то сервер Apache передает в ответ список файлов, имеющихся в этом каталоге. Создав в каталоге индексный файл, вы лишите пользователей возможности получить список всех файлов в этом каталоге. Вам не обязательно создавать вводную страницу index.html для каждого Web-проекта; достаточно создать символьную ссылку на файл домашней страницы. Например, если ваш документ верхнего уровня называется MyHome.html, то при помощи следующей команды создается символьная ссылка под названием index.html, указывающая на MyHome.html:

$ ln -s MyHome.html index.html

Альтернативой, позволяющей любому другому пользователю использовать в качестве своей индексной страницы файл MyHome.html, является следующее написание директивы Directory Index:

Directoryindex index, html MyHome.html

Как уже было отмечено, при получении запроса на передачу каталога сервер Apache:

∙ находит файл, указанный в директиве Directorylndex (если таковой существует), и передает его клиенту;

∙ если файл Directorylndex не существует, передает клиенту оглавление каталога.

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

При выборе опции Fancylndexing данная директива дает серверу знать, какие значки с какими файлами следует использовать в соответствии с MIME-типами файлов. Сервер использует следующий формат:

AddlconByType (.ALT, URL) MIME

∙ ALT ≈ это маленький фрагмент текста, который пользователи, работающие с текстовыми броузерами, увидят вместо значка.

URL ≈ это адрес URL, по которому на вашем сервере размещен файл значка.

MIME ≈ это MIME-тип либо набор MIME-типов, задаваемый с помощью шаблонов.

Адрес URL /icons задается в директиве Alias в этом же файле.

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

Значение в директиве Addlcon указывает серверу, какие значки следует использовать для представления файлов и каталогов, тогда как Defaultlcon представляет собой адрес URL значка, предназначенного для использования с файлами, не имеющими явно заданного значка.

AddDescription, ReadmeName, HeaderName и Indexignore

Следующий набор директив позволяет управлять содержимым оглавления каталога. Как Fancylndexing и все директивы Icon, эти опции используются, только если не найден файл, указанный в Directorylndex. Директива AddDescription позволяет сопроводить в оглавлении файлы, имеющие определенное имя, кратким описанием. В директивах ReadmeName и HeaderName задаются имена текстового файла и HTML-документа соответственно, которые появятся в оглавлении. Текстовый файл, указанный в ReadmeName, должен присутствовать в отображаемом каталоге, а в случае использования директивы HeaderName сервер добавит расширение .html к значению параметра HeaderName и будет искать документ с таким названием. Например, если оставить в директиве HeaderName принятое по умолчанию значение HEADER, то сервер Apache будет искать в каталоге документ HEADER.html. Значение, указанное в директиве ReadmeName, используется в своем исходном виде.

В директиве Indexignore указывается список файлов и подкаталогов, не включаемых в оглавление каталога. Обычно здесь при помощи шаблонов UNIX указываются имена системных файлов и файлов резервных копий. Например, одно из значений по умолчанию, ⌠*-■, используется для запрета отображения резервных копий, создаваемых редактором GNU emacs при каждом сеансе редактирования файлов.

Если суперпользователь воспользуется директивой AccessFileName (см. раздел ⌠Доступ и идентификация■), то сервер Apache предоставит большие возможности управления поведением сервера в отношении предоставления пользователям документов из различных каталогов. Владельцы этих каталогов получают возможность вместо многих значений параметров в карте ресурсов сервера (srm.conf) установить свои собственные путем добавления директив в файл .htaccess в таком каталоге. Директива AccessFileName позволяет изменить имя этого файла. Далее в этой главе мы будем предполагать, что вы оставили в директиве AccessFileName значение по умолчанию.

Если клиент запрашивает файл с расширением, для которого на сервере не имеется соответствующего М IME -типа, то используется MIME-тип, указанный в директиве DefaultType. Карту соответствия расширений MIME- типам можно расширить, воспользовавшись рассматриваемой ниже директивой AddType.

Обычно для файлов, предназначенных для передачи клиентам, используется несколько видов сжатия, или кодирования, что сокращает время передачи. Некоторые броузеры имеют встроенные утилиты распаковки, запускаемые для определенных MIME-типов. Эти MIME-типы указываются в директиве AddEncoding. По умолчанию указываются наиболее распространенные расширения .Z и .gz (файлы, сжатые программами compress и gzip соответственно), и, вероятнее всего, вам не понадобится добавлять какие-либо другие.

Если вы планируете предоставлять пользователям документы на разных языках, то для преобразования аббревиатуры языка в расширение файла можно воспользоваться директивой AddLanguage. Аббревиатурой названия языка обычно служит принятый в Интернете код страны, например ≈ ⌠fr■ для французского языка или ⌠р1■ для польского. Английский, являясь исключением, имеет аббревиатуру ⌠en■. Если пользователь запрашивает файл home.html, и его броузер указывает, что владелец предпочитает использовать французский язык, то сервер обработает эти директивы, чтобы узнать, какое дополнительное расширение имени файла используется для франкоязычных документов. По умолчанию принято расширение .fr, поэтому пользователю будет передан документ home.html.fr. Конечно, если существует документ home.html, то пользователь получит именно его ≈ функции языковой поддержки включаются, только если не найден исходный документ.

Если на Web-сервере имеются документы на различных языках (home. html.fr, home.html.de, home.html.se), а клиент заказывает документ home.html, не выражая пожеланий относительно языка документа, то сервер должен решить, какой документ передать клиенту. В директиве LanguagePriority в убывающей последовательности перечисляются приоритеты различных языков. По умолчанию первым идет английский, затем французский, затем немецкий. В приведенном выше примере клиенту будет передан документ home.html.fr.

Директива Redirect оказывается полезной, когда возникает неизбежная необходимость в переносе документов в другой каталог на сервере или даже на другой сервер. Например, если компания ShoopSoft решает вынести свое отделение, занимающееся операционной системой Linux, в отдельный филиал, то может быть принято решение поместить всю информацию этого отделения на новый сервер, находящийся в этом филиале. Если старый адрес URL был http://www.shoop.com/Linux, а адрес URL нового подразделения http://www.shooplinux.com/, то можно воспользоваться следующей директивой Redirect:

Redirect /Linux http://www.shooplinux.com/

В результате, все запросы на документы, касающиеся Linux и имеющие старый адрес URL, будут перенаправлены на сервер нового подразделения.

Директива Alias дает возможность предоставлять доступ к документам, находящимся не только в каталоге, указанном в директиве DocumentRoot, и его подкаталогах, но и в других каталогах. По умолчанию в директиве Alias задан только один псевдоним ≈ /icons, используемый директивами Addlcon и AddIconByType. Убедитесь, что эта строка Alias не закомментирована, то есть не начинается с символа #. Закомментированная директива будет игнорироваться сервером. Некоторые бета-версии сервера Apache поставлялись с закомментированными директивами Alias и ScriptAlias.

В директиве ScriptAlias указывается, в каких каталогах разрешен запуск сценариев CGI. По умолчанию используется следующая директива Script-Alias:

ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/

Как и в случае директивы Alias, следует убедиться, что первым символом строки не является #. Принятое по умолчанию значение разрешает выполнение входящих в поставку сценариев CGI, например сценария fortune (возвращающего забавную цитату). В первом аргументе указывается виртуальный путь, который клиенты могут использовать для запуска сценариев CGI. Во втором аргументе указывается каталог, к которому осуществляется доступ в действительности.

Например, указан относительный адрес URL /cgi-bin/, а в действительности сценарии находятся в каталоге /usr/local/etc/httpd/cgi-bin, в этом случае для указания на сценарий CGI /usr/local/etc/httpd/cgi-bin/ fortune следует воспользоваться следующим адресом URL: http:// www.shoop.com/cgi-bin/fortune.

Разрешается добавлять неограниченное число директив ScriptAlias. Добавьте по одной для каждого пользователя (из числа тех, которым вы доверяете), имеющего желание писать и выполнять собственные сценарии CGI. Например, создать для пользователя jem каталог для выполнения сценариев CGI /jembin в каталоге /home/users/jem/html/cgi можно при помощи следующей строки:

ScriptAlias /jembin /home/users/jem/html/cgi

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

Эта директива полезна для добавления новых типов предоставляемых клиентам документов на основе использования MIME-типов. Хорошим примером нового’типа документа, который может понадобиться добавить, служит формат Adobe Acrobat, файлы которого используют расширение .pdf. Вам может потребоваться указать серверу, что документ является файлом Acrobat (судя по расширению), и отправить уведомление клиенту, чтобы он запустил программу просмотра файлов Acrobat. Директива AddType дает такую возможность. Например, чтобы сервер передал клиенту расширение .pdf, можно воспользоваться следующей командой :

AddType application/pdf pdf

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

Первая директива AddType разрешает использование эффективных серверных включений; если удалить из нее символ комментария, то можно будет при помощи расширения .shtml указывать серверу, что в документе имеются серверные включения.

Серверные включения позволяют заставить сервер вставить в вашу Web-страницу другой документ или вывод какой-либо команды. Хотя данную возможность можно включить для всего Web-пространства, это заставит сервер просматривать на наличие включений каждый HTML-документ перед отправкой его клиенту. При этом затрачивается много системных ресурсов. Дополнительную информацию о серверных включениях можно найти по http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html.

Второй закомментированный тип, application/x-httpd-cgi, задает другое расширение, .cgi. Если удалить символ комментария из этой строки, то такое расширение будет указывать серверу, что файл является выполняемым сценарием CGI. Это позволит запускать сценарии где угодно на сервере, а не только в каталогах, указанных в директиве ScriptAlias.

Разрешить использование обоих этих типов можно, удалив из строк символ #.

AddHandler и Action

Кроме простого добавления и изменения MIME-типов при помощи директивы AddType, сервер Apache теперь также наделен возможностью модифицировать или производить синтаксический разбор файлов определенных типов перед отправкой их пользователю. Директива AddHandler ставит в соответствие расширению файла определенное действие. Некоторые из этих действий встроены в сервер, например, строка ⌠AddHandler server-parsed shtml■ ставит в соответствие всем файлам с расширением .shtml встроенную функцию сервера под названием ⌠server-parsed■, которая производит синтаксический разбор файлов с целью найти серверные включения . Функция, указанная в директиве AddHandler, не обязательно должна являться встроенной функцией сервера. Директива Action может ставить в соответствие функции из AddHandler сценарий CGI. Например, следующие строки в файле srm.conf сначала указывают серверу, что при каждой передаче файла с расширением .foot следует выполнять функцию foot-action. Затем функции foot-action ставится в соответствие сценарий /cgi-bin/footer, выполняющийся при каждом вызове функции foot-action.

AddHandler foot-action foot Action foot-action /cgi-bin/footer

Директива Action также позволяет ставить в соответствие MIME-типу непосредственно определенное действие. Например, у вас имеется сценарий, проверяющий, не является ли посетитель вашего Web-узла сотрудником конкурирующей фирмы . Запускать этот сценарий при каждом запросе на HTML-документ можно при помощи следующей директивы:

Action text/html /cgi-bin/mockery.pl

MetaDir и MetaSuffix

Директивы MetaDir и MetaSuffix выполняют те же функции, что и тег , но метаинформация хранится отдельно от файла. Директива MetaDir указывает серверу, в каком подкаталоге текущего каталога хранятся файлы с метаинформацией. Директива MetaSuffix указывает серверу, какое расширение имеют эти файлы. Обычно файлы метаинформации имеют расширение .meta; так, метаинформация для файла index.html будет храниться в файле index.html.meta, расположенном в подкаталоге, указанном в директиве MetaDir.

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

полночь, 5 июля 1998 года, нужно поместить в файл метаинформации следующую строку:

Expires: Sunday, 5-Jul-98 12:00:00 GMT

Эта директива позволяет поставить в соответствие кодам ошибок HTTP-сервера адреса URL на том же сервере. Этой возможностью можно пользоваться для замены и усовершенствования сообщений об ошибках, выдаваемых сервером. Мы детально рассмотрим ее в разделе ⌠Развернутая конфигурация■, так что пока вы можете оставить ее закомментированной.

Эта директива является последней в карте ресурсов сервера. Задав значения, необходимые для начала работы, сохраните файл srm.conf и выйдите из редактора.

Файл доступа к серверу

Сервер Apache предоставляет широкий выбор возможностей, позволяющих сделать сопровождение сервера более удобным; некоторые из них находят применение в обеспечении защиты информации на вашем Web-узле. Файл доступа к серверу (/usr/local/etc/httpd/conf/access.conf) позволяет включать либо выключать такие возможности на уровне отдельных каталогов.

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

Откройте в редакторе файл access.conf. Входящая в поставку копия файла access, conf предоставляет три варианта описания доступа: один для каталога cgi-bin, другой для каталога документов, а третий демонстрирует некоторые возможности управления доступом к различным каталогам.

Первое описание позволяет управлять каталогом сценариев CGI. Обратите внимание, что в файле используется синтаксис языка HTML, в котором тег отмечает начало секции с описанием опций для используемого сервером по умолчанию каталога cgi-bin. Эту секцию закрывает тег .

Вторая директива должна выглядеть следующим образом:

Если вы изменили название корневого каталога для документов в файле srm.conf, следует внести это изменение и в файл access.conf.

Третья директива, , является новой возможностью сервера Apache. Она подобна директиве , только вместо названия каталога указывается адрес URL. Этот адрес URL может указывать на каталог, отдельный файл либо содержать шаблон (строку *.html). В директиве , уже присутствующей в файле srm.conf, задается область, резервируемая для проверки вебмастером состояния сервера, /status. Доступ к этой области разрешен только пользователям домена nowhere.com. Если вы замените nowhere.com названием вашего домена, то получите возможность пользоваться этой информацией о состоянии (если вы откомпилировали модуль mod_status.c.

Сохраните файл access.conf и выйдите из редактора. Теперь можно начинать планировку Web-пространства.

Существует несколько способов предоставления клиентам файлов из вашего Web-пространства. Как уже отмечалось, в директиве DocumentRoot файла srm.eonf задается основной каталог для ваших документов. Способ, которым сервер приводит в соответствие адресам URL файлы из файловой системы на вашем компьютере, иллюстрируется следующим примером адреса URL: http://www.shoop.com/home.html.

Сервер берет путь, указанный в директиве DocumentRoot, и добавляет к нему имя файла home.html. Если вы не изменяли принятое по умолчанию значение DocumentRoot, то сервер передаст клиенту файл /usr/local/etc/ http/htdocs/home.html. Помещать все файлы и каталоги, предназначенные для клиентов, в каталог ServerRoot или его подкаталоги не обязательно. Можно организовать Web-сервер по-другому.

Каталоги, управляемые пользователем

Включить возможность управляемых пользователями каталогов HTML можно при помощи директивы UserDir в файле srm.conf. Эта опция задает общее название подкаталога в домашних каталогах всех пользователей, из которого будут браться файлы, предназначенные для клиентов. По умолчанию это подкаталог public_html.

Доступ к таким каталогам производится при помощи адреса URL, в котором путь в каталоге начинается со знака тильды (

), за которым следует регистрационное имя пользователя. Когда сервер получает запрос с таким адресом URL, он ищет в файле /etc/passwd название домашнего каталога пользователя. Проследить связь между адресом URL и этим каталогом можно на примере http://www.shoop.com/

Если у пользователя chris есть домашний каталог /home/users/chris, a значением параметра UserDir является public_html, то по этому запросу сервер передаст файл /home/users/chris/public_html/index.html.

Привести в соответствие отдельным адресам URL каталоги в вашей системе можно, воспользовавшись директивой Alias в файле srm.conf. Это дает возможность предоставлять клиентам файлы, находящиеся не в корневом каталоге для документов или его подкаталогах. Например, если вам нужно предоставлять документы из каталога /public/ftp/multimedia, можно сделать их доступными на сервере ShoopSoft по запросу адреса URL http:/ /www.shoopsoft.com/multimedia:

Alias /multimedia /public/ftp/multimedia

В настоящее время сервер Apache позволяет задать таким образом не более 50 псевдонимов. Если требуется большее число псевдонимов, придется переопределить макрос MAX_ALIASES в файле /usr/local/etc/httpd/src/ httpd.h и заново откомпилировать сервер.

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

Например, вы решили оставить в директиве DocumentRoot значение по умолчанию, /usr/local/etc/httpd/htdocs. Теперь вы можете сделать корневым каталогом для документов каталог /public/html, введя команду:

#ln -s /public/html /usr/local/etc/httpd/htdocs

Соглашением, принятым для удобства обслуживания, является создание ссылки на корневой каталог документов из корневого каталога системы. Если для названия корневого каталога документов использовалось значение по умолчанию, /usr/local/etc/httpd/htdocs, то ссылку на него из корневого каталога можно создать при помощи команды

# In -s /usr/local/etc/httpd/htdocs /html

Эта команда упрощает доступ к подкаталогам каталога ServerRoot, избавляя от необходимости набирать на клавиатуре длинные пути. Это также является хорошим мнемоническим средством для пользователей, не знакомых со средой UNIX. Пользователи легко запомнят, что их Web-страницы находятся в каталоге /html. В приводимых далее примерах подразумевается наличие у вас такой ссылки. Однако если задать слишком много символьных ссылок, то время, сэкономленное на вводе с клавиатуры, будет потрачено на поиск действительного местоположения файла в нагромождении ссылок. Следите за своими ссылками и используйте их только там, где это необходимо.

То, каким образом вы решите организовать собственный Web-узел, в немалой степени зависит от характера вашей организации и назначения вашего сервера, а также от контингента пользователей. Например, многие университеты предоставляют домашние страницы своим студентам. Регистрационные счета студентов являются недолговечными по определению, поэтому использование метода UserDir (когда документы хранятся в подкаталоге public_html домашнего каталога пользователя) является здесь вполне уместным. Когда студент заканчивает обучение, его доступ к системе ликвидируется, а домашний каталог ≈ уничтожается, при этом исчезает и каталог с Web-документами. Любые квоты, выделенные домашним каталогам студентов, распространяются и на их Web-документы, снимая необходимость выделения отдельных квот специально для Web-документов.

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

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

Теперь, когда настройка сервера завершена, наступило время запустить и проверить его в работе. Имеются различные методы запуска сервера, применяемые в зависимости от того, выбран ли автономный режим или запуск из демона inetd.

Чтобы запустить сервер в автономном режиме, достаточно просто добавить одну строку в сценарии, выполняемые при загрузке системы. В системе Linux этот файл сценариев называется /etc/rc.d/rc.local; в других системах он может носить имя /etc/rc.local, либо может потребоваться создание отдельного сценария в каталоге /etc/rc2.d. Если вы не знаете точно, обратитесь к руководству администратора, прилагаемому к вашей системе.

После того как местоположение требуемого файла определено, воспользуйтесь полномочиями суперпользователя (root) и откройте сценарий в редакторе. Добавьте в конец сценария следующие строки:

if [ -x /usr/local/etc/httpd/httpd ]

echo «Starting HTTP Server»

cd /usr/local/etc/httpd httpd > /dev/console 2>&1

echo «Can’t start HTTP server!»

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

ft cd /usr/local/etc/httpd ■./httpd

Если на экране или в файле /usr/local/etc/httpd/logs/error_log не появилось сообщений об ошибках, то запуск сервера можно считать произведенным успешно.

Запуск из inetd

Чтобы сервер запускался из демона inetd, нужно внести изменения в два файла. Первый из них, /etc/services, используется для определения хорошо известных портов и использующих их протоколов. Если для совместного использования в сети системных баз данных используется механизм NIS (также известный под названием YP), то необходимо произвести обновление этих системных баз при помощи команды yppush, чтобы изменения, сделанные в файле, возымели действие. Воспользовавшись привилегиями суперпользователя, откройте файл /etc/services и добавьте в его конец строку

Вторым файлом, в который необходимо внести изменения, является файл /etc/inetd.conf. Это файл конфигурации inetd. В нем указываются номера портов, которые должен прослушивать демон inetd, и действия, предпринимаемые при обнаружении соединения. Не отказываясь от полномочий суперпользователя, откройте файл /etc/inetd.conf и добавьте в его конец следующую строку (подчеркиваем, что все это ≈ одна строка):

http stream top nowait root /usr/local/etc/httpd/httpd httpd

Такая строка должна работать для большинства систем UNIX. Заслуживающим отдельного упоминания исключением является система Ultrix, в которой используется следующий формат:

http stream tcp nowait /usr/local/etc/httpd/httpd

Четвертое поле, которое в Ultrix не используется, указывает демону inetd, с полномочиями какого пользователя следует запускать сервер. Система Ultrix не позволяет задавать имя пользователя; серверы, запускаемые из inetd, всегда работают с полномочиями пользователя root. Поскольку это представляет потенциальную угрозу нарушения защиты информации, вам следует при помощи директивы User в файле conf/httpd.conf заменить имя пользователя на более подходящее, например nobody.

После того как в файлы /etc/services и /etc/inetd.conf добавлены необходимые строки, необходимо известить демон inetd об изменениях в его файлах конфигурации. Для этого узнайте номер процесса inetd (его P > и пошлите демону сигнал HUP (hang-up). Это делается при помощи следующих команд (в системах линии System V, например, Solaris и Irix, в команде ps следует вместо указанных флагов использовать флаги -aef):

# ps -aux | grep inetd

root 11253 0.0 3.4 156 256 p5 S 23:01 0:00 grep inetd root 43 0.0 1.0 72 80 con S Feb 1 0:00 /usr/sbin/lned Kkill -HUP 43

По получении сигнала HUP демон inetd заново считывает файл /etc/inetd.conf и начинает прослушивание на предмет наличия HTTP-соединений.

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

$ telnet localhost 80

Connected to localhost.

Escape character is «‘]’

Тем самым открывается соединение с HTTP-портом сервера. Когда соединение успешно установлено, можно убедиться, что все работает. Для этого введите следующую строку, завершив ее двукратным нажатием клавиши Return:

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

Date: Friday, 12-Dec-94 05:44:30 GMT

Last-modified: Sunday, 12-Dec-94 01:21:23 GMT

Connection closed by foreign host

Поздравляем, ваш Web-сервер работает! Теперь можно приступать к работе над содержимым, призванным прославить ваш Web-узел!

Доступ и идентификация

По умолчанию сервер Apache предоставляет довольно большую свободу управления доступом. В общем, любой файл или каталог попадает в карту ресурсов сервера и может передаваться клиенту по запросу, если:

∙ он находится в одном из подкаталогов каталога ServerRoot;

∙ в каталоге ServerRoot имеется символьная ссылка на него;

∙ он указан в директиве Alias;

∙ он находится в подкаталоге publc_html в домашнем каталоге пользователя.

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

Для этого есть два способа. Первый заключается в настройке глобального файла конфигурации доступа к серверу, /usr/local/etc/httpd/conf/access.conf. В этом файле можно задавать политику предоставления доступа для всего сервера в целом. Имеется возможность ограничивать доступ к определенным каталогам на сервере на основе IP-адресов или имен компьютеров клиентов. Можно также защитить каталоги паролями, разрешая доступ к серверу только определенным пользователям или группам пользователей.

В отличие от этих централизованных ограничений на доступ к информации и ее использование, второй способ является децентрализованным. Каждый отдельный пользователь, поддерживающий на вашем Web-сервере свой Web-каталог, может управлять доступом клиентов к этому каталогу посредством файла .htaccess. Вдобавок, пользователи могут использовать собственные значения директив, находящихся в файлах srm.conf и access.conf, если разрешить эту возможность в глобальном файле управления доступом.

Хотя наличие файла access.conf необходимо для работы сервера Apache, мы едва коснулись его в разделе, посвященном конфигурации сервера. Чтобы воспользоваться возможностями идентификации пользователей и управления доступом, необходимо лучшее понимание формата директив, находящихся в этом файле. В отличие от директив в файлах httpd.conf и srm.conf, директивы в файле access.conf имеют синтаксис, подобный синтаксису языка HTML, в котором отдельные элементы отмечают начало и конец секций. Эти директивы, отмечающие различные области управления доступом, называются директивами секционирования. При рассмотрении мы всегда будем заключать их в угловые скобки ( ).

Директива указывает каталог, к которому применяется ограничение доступа. Имя каталога должно быть абсолютным; разрешено использование шаблонов. В основном, используется следующий синтаксис:

access control directives

В директиве задается определенный адрес URL, который может обозначать целый каталог, отдельный файл или совокупность файлов,описываемую при помощи шаблонов, например, *.html ≈ все файлы, имена которых оканчиваются символами .html. В адрес URL не включаются название протокола и имя сервера, так, строка www.shoop.org/index.html> не будет являться правильным использованием директивы . Вот пример правильного синтаксиса директивы ;

access control directives

Эти директивы управления доступом (access control directives) управляют типом доступа, предоставляемого сервером к указанному каталогу и всем расположенным в нем файлам и каталогам.

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

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

∙ None. Сервер игнорирует файлы .htaccess в этом каталоге. Если вы не намерены использовать для каталога файлы .htaccess, вам следует явно установить эту опцию, поскольку это повысит производительность сервера.

∙ Аll. По умолчанию пользователи имеют право переопределять в файлах .htaccess все глобальные установки доступа, для которых в этих файлах имеются эквивалентные команды.

∙ Options. Разрешает использование директивы Options (см. ниже раздел ⌠Options■),

∙ Filelnfo. Разрешает использование в файлах .htaccess директив Add- Туре и AddEncoding (см. раздел ⌠srm/conf: карта ресурсов сервера■, содержащий полное описание).

∙ AuthConfig. Разрешает использование директив AuthName, AuthType, AuthUserFile и AuthGroupFile, необходимых для защиты каталогов паролями.

∙ Limit. Разрешает использование директивы секционирования

  • . См. раздел, посвященный директиве
  • , в котором приведено подробное описание.

    Директива Options позволяет управлять тем, какие функции сервера доступны для использования в каталоге, указанном в секции или в файле .htaccess. В директиве Options можно использовать следующие аргументы:

    ∙ None. В указанном каталоге не разрешается использование каких-либо функций.

    ∙ All В указанном каталоге разрешается использование всех возможностей (принимается по умолчанию).

    ∙ FollowSymLinks. Сервер следует символьным ссылкам, имеющимся в указанном каталоге.

    ∙ SymLinksIfOwnerMatch. Сервер следует символьным ссылкам, только если каталог назначения принадлежит тому же пользователю, что и сама ссылка.

    ∙ ExecCGI. В указанном каталоге разрешается выполнение сценариев CGI.

    ∙ Includes. В указанном каталоге разрешено использование серверных включений. Использование серверных включений требует, чтобы сервер производил синтаксический разбор всех HTML-файлов перед отправкой их клиентам. Нечего и говорить, что это крайне нагружает сервер, поэтому мы бы порекомендовали отключить эту опцию. Если вам необходимы серверные включения, разрешите их на уровне отдельных файлов при помощи директивы AddType, как это описано в разделе ⌠srm/conf: карта ресурсов сервера■

    ∙ Indexes. Сервер разрешает пользователям заказывать индексную страницу указанного каталога. Выключение этой опции запрещает передачу только списка файлов в каталоге, но не файла index.html.

    ∙ IncludesNoExec. Эта директива разрешает использование в указанном каталоге серверных включений, но запрещает запуск из них внешних программ.

    Эта опция позволяет задать, будет ли сервер перед отправкой HTML-документа искать в нем какие-либо специальные указания. Такие указания, называемые серверными включениями, позволяют включить в документ другой HTML-документ, выполнить сценарий CGI и включить в страницу его вывод, либо вернуть информацию о странице, например дату ее последнего изменения. Если опция XBitHack включена, вам останется только сделать файл исполняемым, и сервер начнет поиск серверных включений. Сделать файл исполняемым можно при помощи следующей команды UNIX:

    $ chmod а+х имя_файла

    где имя_фа,йла нужно заменить именем файла, атрибуты которого вы меняете.

    Директивы, относящиеся к карте ресурсов

    Есть несколько директив, происходящих от файла конфигурации карты ресурсов сервера (srm/conf), значения в которых можно задавать для отдельных каталогов. Значения в следующих директивах, как уже было объяснено в разделе ⌠srm/conf: карта ресурсов сервера■, переопределяют значения в глобальном файле конфигурации для этих каталогов:

    Пароли пользователя и группы

    Сервер Apache предоставляет возможность реализации доступа к отдельным каталогам по паролю. Это осуществляется при помощи установок в глобальном файле конфигурации, либо в пользовательских файлах .htaccess. Чтобы защитить каталог паролем, необходимо задать значения в трех различных директивах: AuthName, AuthType и AuthUserFile. Использование четвертой директивы, AuthGroupFile, не является обязательным.

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

    Формат второй парольной директивы, AuthType, еще проще. В директиве AuthType задается метод идентификации пользователя, используемый сервером. В директиве AuthType разрешается указывать только два значения, Basic и Digest.

    Если установить значение Basic, то будет использоваться стандартный для UNIX механизм парольной защиты, а также директива AuthUserFile. Если задать в директиве AuthType значение Digest, то будет задействована более надежная система шифрования, алгоритм MD5. На большинстве Web-серверов не стоит использовать установку Digest, поскольку эта возможность пока не поддерживается большинством броузеров. Ее разумно использовать в пределах интранета или для мелкомасштабных применений, когда вы знаете тип броузера, используемого всеми вашими пользователями.

    В директиве AuthUserFile, используемой только при выбранном методе Basic, задается полный путь в файловой системе сервера Apache к файлу паролей пользователей для данного каталога. Для создания файла паролей применяется программа htpasswd, которую можно найти в каталоге /usr/local/etc/httpd/support. Например, новый файл паролей для пользователя mdw создается при помощи следующей команды:

    $htpasswd -с /html/secured/.htpasswd mdw

    Adding password for mdw.

    Re-type new password:

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

    Если выбран метод Digest, то список паролей нужно указывать в директиве AuthDigestFile. Как и для директивы AuthUserFile, просто задайте в директиве AuthDigestFile путь в каталоге и имя файла паролей.

    Чтобы создать файл паролей в этом варианте, воспользуйтесь программой /usr/local/etc/httpd/support/htdigest. Приведенный ниже пример иллюстрирует использование программы htdigest для создания пароля для пользователя jem:

    $htdigest -с /etc/dlgest_passwd «shoop-users@www.shoop.coni» jem

    Adding passowd for jem. New password:

    Re-type new password:

    Единственным отличием от случая использования программы htpasswd является присутствие аргумента shoop-users@www.shoop.com, представляющего собой название области, в которую включается пользователь jem. Области используются, если пользователь имеет в одной системе более одного имени или несколько паролей. Когда отображается название области, пользователь понимает, что следует ввести имя и пароль именно для этого домена.

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

    smers: mdw ewt jem merry mgd

    Такая строка создает на сервере Apache парольную группу smers с пятью членами.

    Как и директива ,

  • является директивой секционирования. Она используется для наложения ограничений доступа к файлам в каталоге по протоколу HTTP. Директиву
  • можно использовать внутри секции в файле access, conf, либо в пользовательском файле .htaccess (если этому не препятствует значение, указанное в директиве AllowOverride).

    Директива

  • принимает в качестве аргументов один или несколько методов HTTP, к которым применимы следующие четыре директивы, используемые внутри секции
  • : deny (отказать), allow (разрешить), order (порядок) и require (потребовать).

    Директивы deny и allow дают возможность задавать, каким компьютерам и доменам разрешен доступ к данным каталогам. Синтаксис этих директив одинаков, за каждой из них следует слово ⌠from■ и список компьютеров, которым сервер должен запретить или, наоборот, разрешить доступ к каталогу. В этот список можно включать:

    ∙ названия доменов, например shoop.com или cia.gov.

    ∙ названия хостов, например grumpy.shoop.com или bhurma.cia.gov.

    ∙ IP-адреса хостов, например 115.23.42.5.

    ∙ IP-адреса доменов, например 115.23.42.

    ∙ слово all, означающее все хосты.

    В директиве order задается порядок, в котором сервер Apache рассматривает директивы deny и allow. Существуют три допустимых значения:

    ∙ deny,allow. Сначала сервер рассматривает директиву deny, а затем ≈ allow.

    ∙ allow,deny. Сначала сервер рассматривает директиву allow, а затем ≈ deny.

    ∙ mutual-failure. Сервер отказывает в доступе всем компьютерам, явно не указанным в списке allow.

    Четвертая директива ≈ require. Ее можно использовать для установления парольной защиты каталога. За названием директивы должен следовать список элементов. Этими элементами могут служить имена пользователей или названия групп, заданные в директивах AuthUserFile или AuthGroupFile. Можно также воспользоваться ключевым словом val > указывающим серверу, что любому пользователю, имя которого присутствует в директиве AuthUserFile, должен быть предоставлен доступ в случае ввода им правильного пароля.

    Ниже приведен пример файла .htaccess, разрешающего доступ только авторизованным пользователям домена nsa.gov:

    allow from nsa.gov

    Сервер вычисляет значение директивы
    в следующей последовательности:

    1. Запрещает любой доступ.

    2. Разрешает доступ пользователям из домена nsa.gov.

    3. Требует от пользователей из этого домена ввода имени и пароля, хранящихся в файле /home/users/onorth/www/secure/.htpasswd.

    Если запрос прошел все эти проверки, то по нему будут предоставлены файлы из данного каталога.

    Ускоренная идентификация пользователей с использованием файлов DBM

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

    Для установки DBM-файлов паролей требуется сделать несколько шагов. Прежде всего, остановите сервер Apache. Для этого воспользуйтесь полномочиями суперпользователя (root), перейдите в каталог /usr/local/etc/ttpd и введите команду ⌠kill -TERM ‘cat logs/httpd.p > (важно использовать именно одинарные обратные кавычки).

    После того как сервер остановлен, для установки поддержки механизма DBM необходимо заново откомпилировать сервер с указанием некоторых новых опций:

    ∙ Перейдите в каталог /usr/local/etc/httpd/src (либо туда, где вы разместили исходные файлы сервера Apache) и откройте в редакторе файл Configuration.

    ∙ Перейдите к строке 78 и добавьте флаг -Indbm к выражению EXTRA_LIBS=.

    ∙ Перейдите к строке 242 и удалите из строки ⌠# Module dbm_ath_module mod_auth_dbm.o■ символ комментария ⌠#■.

    ∙ Заново откомпилируйте исходный код

    Теперь, когда сервер откомпилирован заново и готов к работе, следует изменить установки в файле access.conf таким образом, чтобы вместо файлов паролей использовались DBM-файлы. Откройте в редакторе файл access.conf и замените директивы AuthUserFile новой директивой, AuthDBMUserFile;

    если требуется использовать группы, то замените директиву AuthGroupFile директивой AuthDBMGroupFile. Измените имена файлов, указанные в директивах, таким образом, чтобы старые файлы не были стерты, например: AuthDBMUserFlle /etc/dbm_htpasswd AuthDBMGroupFlle /etc/dbm_htGroup

    Теперь можно без опаски перезапускать сервер.

    И наконец, создайте файл паролей, воспользовавшись программой dbmmanage, находящейся в каталоге /usr/local/etc/httpd/support. Следующий пример иллюстрирует добавление пользователя в файл паролей / etc/dbm_htpasswd:

    # dbimnanare /etc/dbm_htpasswd adduser bob xists2me User bob added with password xlsts2me!, encrypted to XXLlyUj92/ZyI

    Программа dbmmanage может не работать с версией интерпретатора peri, имеющейся в вашей системе. Например, dbmmanage не работает с интерпретатором peri версии 5.001, patchlevel 1m. (Чтобы посмотреть, какая версия используется в вашей системе, наберите команду ⌠peri -v■.) Решить проблему можно, если установить peri 4.036 (например, в каталоге /usr/bin/perl4.036 или /usr/local/bin/perl4.036). Измените первую строку сценария dbmmanage ≈ ⌠#!/usr/local/bin/perl■, указав в ней местоположение рег14.036, например, ⌠#!/usr/bin/ рег14.036■.

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

    Более подробную информацию об использовании механизма DBM-файлов паролей можно найти в инструкциях к серверу Apache по адресу http:// www.apache.org/docs/auth_dbm.html.

    Установка виртуальных хостов

    Понятие виртуальных хостов возникло, когда корпорации стали создавать свои Web-узлы, но размещали их на серверном пространстве, арендованном у других фирм. Первоначально, чтобы получить адрес типа http://www.shoop.com, весь компьютер должен был быть выделен под один этот сервер. Web-узел, размещавшийся на арендованном пространстве на другом сервере, получал адрес вида http://www.websites.com/ shoop или http://www.shoop.com/shoop. В последнем случае, набрав адрес http://www.shoop.com, вы по-прежнему попадали на http:// www.websites.com ≈ указание /shoop являлось обязательным.

    Для сервера Apache были разработаны два обходных пути, позволявших Web-узлу иметь собственное имя. Первое решение старше, но и работает со всеми броузерами. Второе решение проще, но использовать его могут только современные броузеры, например Netscape Navigator версии 2.0 или более поздней. Решая, каким из способов реализации виртуальных хостов воспользоваться, не забывайте о компромиссе между простотой реализации и универсальностью доступа.

    Первое решение включает в себя три шага. Прежде всего следует сконфигурировать несколько IP-адресов так, чтобы они указывали на один и тот же сервер: ваш Web-сервер. Этот первый шаг должен сделать ваш сетевой администратор или провайдер. Попросите их добавить к серверу имен (name server) вашей сети адресную запись, или ⌠A-record■. В этой записи должен иметься свободный IP-адрес для нового имени вашего хоста, например 10.1.12.236 для www.virtualpizza.com.

    Не забудьте, что нельзя просто выбрать для домена понравившееся вам название. Название домена следует зарегистрировать в организации InterNIC. Инструкции и расценки приведены на справочном Web-узле InterNIC, находящемся по адресу http://rs.internic.net/help/.

    Следующим шагом является настройка вашего компьютера на прием трафика для нескольких IP-адресов через один сетевой интерфейс (например, сетевую карту Ethernet). Чтобы узнать название вашего сетевого интерфейса, введите без аргументов команду ifconfig, например:

    ethO Link encap:10Mbps Ethernet Hwaddr 00:20:OD:OA:24:FF

    inet addr:10.1.12.15 Beast: 10.1.12.255 Mask 255.0.0.0

    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    RX packets: 13802051 errors:19 dropped:19 overruns:5

    TX packets: 8357357 errors:0 dropped:0 over runs:0

    Interrupt: 10 Base address: 0х300

    В данном случае сетевой интерфейс носит название ⌠ethO■, сетевая карта Ethernet. Теперь достаточно просто ввести адрес-псевдоним ≈ второй адрес для той же самой карты.

    Воспользовавшись полномочиями суперпользователя (root), при помощи приведенной ниже команды ifconfig задайте для сетевого интерфейса прием графика для второго IP-адреса:

    ftifconfig ethO alias 10.1.12.256

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

    Наконец, необходимо внести изменения в файлы конфигурации. Откройте в редакторе файл httpd-conf и удалите символ комментария из группы строк, начиная с host.foo.com> и кончая строкой VirtualHost> включительно. Отредактируйте эти строки, использовав значения директив для нового сервера. Поставьте вместо названия host.foo.com в директивах и ServerName имя компьютера,

    которое вам требуется использовать (в нашем примере ≈ www.virtualpizza.com). Значение в директиве DocumentRoot должно указывать на отдельную область хранения документов, специально предназначенных для этого сервера, например /usr/Iocal/etc/httpd/pizzadocs. Директивы ErrorLog и AccessLog позволят вам вести отдельные журнальные файлы для каждого из серверов, поэтому имеет смысл изменить имена журнальных файлов таким образом, чтобы они соответствовали именам серверов, особенно если эти файлы находятся в одном каталоге.

    Вот и все, что требовалось сделать. Необходимость настройки сервера имен и конфигурации сетевого интерфейса была вызвана тем, что текущая версия протокола НТТР/1.0 не предоставляет возможности отслеживания имени хоста назначения. Сначала протокол находит по имени хоста его IP-адрес, а затем обращается к этому хосту, не сохраняя у себя его имя. Поэтому в качестве обходного пути можно задать отдельный IP-адрес для каждого сервера. Однако число адресов в Интернете не безгранично, и провайдеры со все меньшей охотой выделяют большие блоки адресов.

    Второе решение заключается в использовании возможностей НТТР/1.1, версии протокола HTTP, до сих пор находящейся в стадии предложения. В HTTP/I.I отслеживается имя сервера назначения, и сервер Apache, равно как и некоторые броузеры (включая Netscape), пользуется этой возможностью. Это означает, что можно установить несколько серверов на одном IP-адресе. Эта возможность реализуется в два шага. Первый шаг опять-таки должен сделать сетевой администратор или провайдер. Сетевой администратор должен ввести для каждого ⌠фальшивого■ сервера псевдоним, называемый строкой CNAME, указывающий на реальный компьютер с Web-сервером. В приведенном выше примере администратор должен был бы создать строку CNAME для названия www.virtualpizza.com, указывающую на настоящий сервер, например pizza.food.net.

    Второй шаг совпадает с последним шагом предыдущей процедуры: необходимо удалить символ комментария из относящихся к директиве Virtual-Host строк файла httpd.conf и поместить вместо значений по умолчанию информацию о вашем виртуальном Web-сервере.

    Как уже упоминалось выше, при рассмотрении директивы CacheNegotiated-Docs, прокси-сервер выполняет роль посредника между сервером и клиентом. Клиент обращается к своему прокси-серверу, а тот уже, в свою очередь, становится клиентом для сервера, содержащего требуемую информацию. Клиент запрашивает документ, но в его настройках указывается прокси-сервер для протокола HTTP (как показано на рис. 8). Этот запрос затем передается прокси-серверу, который перехватывает запрос и как клиент запрашивает документ у настоящего сервера. Настоящий сервер в ответ передает документ прокси-серверу. Прокси-сервер передает копию клиенту, начавшему всю цепочку. Обычно такой механизм используется в целях защиты информации, когда сеть находится за брандмауэром, препятствующим свободному обмену информацией между компьютерами, находящимися по разные его стороны.

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

    Настроить сервер Apache в качестве прокси-сервера очень просто. Как и для большинства других возможностей, имеющиеся значения по умолчанию являются вполне разумными и могут, в большинстве случаев, использоваться в неизмененном виде. Откройте в редакторе файл httpd.conf, перейдите к строке, ⌠#Proxy Requests On■. Если вам требуется только включить механизм прокси, но не требуется кэшировать документы, просто удалите из этой строки символ комментария #. Однако неплохо было бы все-таки включить кэширование, поэтому мы рассмотрим опции, позволяющие с большей эффективностью использовать ваши часто запрашиваемые документы.

    Первой в списке значений по умолчанию стоит директива CacheRoot, в которой задается каталог для хранения кэшируемых документов. Удалите из этой строки (и из строк всех других директив Cache) символ комментария и измените ее в случае, если значение в директиве DocumentRoot отличается от принятого по умолчанию.

    Во второй директиве, CacheSize, указывается объем дискового пространства в килобайтах, отводимого под хранение кэшированных документов. Сервер может превысить этот объем, но как только это случится, он начнет удалять файлы из области кэша, чтобы снова сократить ее объем. Значение, принятое по умолчанию, 5 килобайт, в действительности является очень маленьким для сервера, планирующего производить кэширование для большого числа клиентов: только состоящая из двух страниц документация, описывающая возможности прокси-сервера Apache, занимает 7 килобайт. Установка CacheGcInterval задает интервал, с которым производится проверка размера области кэша; по умолчанию проверка производится каждые четыре часа.

    Следующие три директивы позволяют устанавливать время нахождения документа в области кэша. Документы, передаваемые при помощи протокола HTTP, должны иметь дату окончания срока действия, указываемую в заголовке документа или в области метаинформации. Если дата окончания срока действия не передана либо она кажется вам слишком далекой, начинают действовать эти директивы. В директиве CacheMaxExpire задается максимальный промежуток времени, в течение которого документ может находиться в области кэша, вне зависимости от его срока действия. По умолчанию принимается значение 24 часа. Директива CacheLastModifiedFactor указывает, когда следует удалить документ, не имеющий срока действия. Заданное здесь значение умножается на промежуток времени, истекший с момента последнего изменения документа, и полученный результат принимается в качестве нового срока действия. Например, если последние изменения в документе были сделаны 24 часа назад, а в директиве CacheLastModifiedFactor было оставлено значение по умолчанию ≈ 0,1 , то документ будет удален из области кэша через 2,4 часа (24 умножить на 0,1). Даже если полученный результат боль-

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

    Наконец, директива NoCache предоставляет возможность запретить кэширование документов, полученных от некоторых серверов. Можно указать названия отдельных серверов, например www.virtualpizza.com, или целых доменов, например shoop.org, ≈ в последнем случае будет запрещено кэширование документов от серверов всего домена.

    Одной из возможностей, пример использования которой не приведен в файле httpd-conf, является директива Proxy Pass. Это еще один способ кэширования документов, при котором клиент запрашивает документ непосредственно у прокси-сервера, и перехвата запроса не происходит. Директива имеет следующий синтаксис:

    ProxyPass /mirror/toppings http://pepperoni.org/docs

    В вышеприведенном примере серверу Apache указано запрашивать все документы, путь к которым начинается с /mirror/toppings, на удаленном Web-узле http://pepperoni.org/docs и предоставлять их клиентам, как будто эти документы находятся в файловой системе сервера. Это дает эффект зеркального Web-узла, поскольку появляется возможность запрашивать документы с различных Web-серверов, используя локальные адреса URL. Эффект зеркала объясняется тем, что на сервере производится кэширование документов (если, конечно, включены директивы Cache), создавая подобие системы ⌠зеркала по требованию■. Директива ProxyPass по-прежнему находится на стадии разработки, поэтому лучше будет опробовать ее, прежде чем предлагать в качестве услуги на вашем Web-сервере.

    Смягченные, более дружественные сообщения об ошибках

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

    Основное применение директивы ErrorDocument является очень простым. В ней помещается текстовая строка, возвращаемая клиенту, либо адрес, на который перенаправляется клиентский запрос. Синтаксис этой директивы: кoд_oшuбкu вывод■, где код_ошибки заменяется одним из кодов ошибок HTTP протокола (табл. 3-2), который подвергается действию директивы, а вывод ≈ это либо адрес URL, либо текст, передаваемый клиенту в качестве описания ошибки.

    Таблица 3-2. Распространенные коды возврата HTTP протокола с разъяснениями

    Коды возврата HTTP Значение
    200 ⌠ОК■: Документ существует и доступ к нему разрешен.
    302 ⌠Found■: Требуемый документ находится по другому адресу URL.
    400 ⌠Bad Request■: Сервер не смог распознать запрос.
    401 ⌠Unauthorized■: Клиент не имеет права осуществлять доступ к документу без специальных полномочий.
    403 ⌠Forb > Сервер ни при каких обстоятельствах не предоставляет указанный документ.
    404 ⌠Not Found■: Документ не найден.
    500 ⌠Server Error■: На сервере произошла ошибка.
    501 ⌠Not Implemented■: Запрошенная возможность не поддерживается сервером.

    В следующем примере использования директив ErrorDocument при различных распространенных ошибках показаны различные применения директивы ErrorDocument:

    ErrorDocument 401 http://www.subscribe.coni/form.html

    ErrorDocument 404 «There’s nothing here by that name,

    Check your spelling.»

    ErrorDocument 500 /errors/blaine_interni.html

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

    сервере, а в третьем в качестве сообщения об ошибке будет возвращен локальный документ. Во втором примере броузеру в качестве ответа будет передана текстовая строка. Обратите внимание, что эта строка не берется в кавычки, а просто начинается с символа кавычки. Это служит указанием серверу, что все последующие символы следует интерпретировать как текстовую строку, а не как адрес URL.

    Адрес URL в директиве ErrorDocument может вместо файла HTML указывать на сценарий CGI, но существуют специальные требования к сценарию, занимающемуся обработкой ошибок. Хороший пример такого сценария предоставляет распространение NCSA сервера (он предназначен для NCSA HTTPd 1.4, но прекрасно работает и с сервером Apache). Этот сценарий, носящий название nph-eror.pl, воспроизводит все распространенные сообщения об ошибках, используемые сервером, в формате, предоставляющем возможность легко изменить эти сообщения. Поместите сценарий в ваш каталог для сценариев CGI (вероятно, /usr/local/etc/httpd/cgi-bin), убедитесь, что сценарий является исполняемым (⌠chmod 755 nph-error.pl■ в командной строке UNIX), и попробуйте запустить его. Когда будете готовы взглянуть на результат внесенных изменений, измените одну из директив ErrorDocument примерно следующим образом:

    ErrorDocument 404 /cgi-bin/nph-error.pl

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

    Более подробную информацию об обработке ошибок с использованием сценариев CGI можно найти в документации и примерах NCSA по адресу http:// hoohoo.ncsa.uiuc.edu/docs/setup/srm/ErrorDocument.html.

    Различные задачи сервера

    Сопровождение HTTP-сервера ≈ это не только совмещение приятного с полезным. Чтобы он стабильно функционировал, требуется ежедневно выполнять большой объем рутинной работы.

    Останов и перезапуск сервера

    Если запуск сервера производится из демона inetd и вам необходимо отключить доступ к Web-серверу по протоколу HTTP, следует запретить демону inetd запуск дополнительных копий сервера. Воспользовавшись

    полномочиями суперпользователя (root), закомментируйте в файле /etc/ inetcLconf строку, отвечающую за запуск сервера:

    ⌠http stream top nowait root /usr/local/etc/httpd/httpd httpd

    Сохраните файл и выйдите из редактора. Чтобы внесенные изменения возымели действие, необходимо послать демону inetd сигнал hang-up, что детально рассматривалось в разделе ⌠Запуск сервера■ на стр. 97.

    Если сервер запущен в автономном режиме и вам требуется его остановить, то воспользуйтесь полномочиями суперпользователя (root) и введите следующие команды:

    #kill ‘cat logs/httpd.pid’

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

    ftkill -1 ‘cat logs/httpd.pid’

    В результате выполнения этой команды HTTP-серверу посылается сигнал HUP (hang-up). Получив сигнал, исходная копия сервера производит следующие действия:

    ∙ уничтожает все копии сервера в пуле серверов ;

    ∙ уничтожает все остальные копии сервера;

    ∙ заново считывает файлы конфигурации и производит их синтаксический разбор;

    ∙ закрывает и вновь открывает журнальные файлы;

    ∙ заново инициализирует пул серверов, число процессов в котором берется из директивы StartServers в файле /usr/local/etc/httpd/conf/ httpd.conf.

    Как видите, список довольно полный. Практически, послав серверу сигнал hang-up, вы производите сброс всех его параметров к начальным значениям. Если все прошло успешно, то в файле ErrorLog появится сообщение вида:

    [Tue Apr 11 23:00:05 1995] httpd: successful restart

    Ведение журнальных файлов и их анализ

    По умолчанию журнальные файлы находятся в подкаталоге logs каталога, указанного в качестве корневого каталога сервера в директиве ServerRoot

    в файле httpd.conf (обычно это каталог /usr/local/etc/httpd). В файле access_log производится учет всех соединений с вашим сервером. Он также используется различными программами для подготовки отчетов о работе сервера. Вам следует определить политику циклического перемещения журнальных файлов, обычно производимого в начале каждой недели или месяца. Для этого можно использовать следующую процедуру:

    ftmv logs/access_log logs/access_log.name_of_inonth.year

    ffkill -1 ‘cat logs/httpd.pid’

    Многим необходима статистика использования их Web-узла. В следующем списке приведены некоторые программы анализа журнальных файлов:

    Установка и настройка сервера Apache 2.4

    Установка Apache 2.4

    Шаг 1. На сайте apache.org нет версии Apache 2.4 для Windows. Поэтому дистрибутив возьмем на apachelounge.com. В момент написания статьи последний релиз – Apache 2.4.25 win64

    В дистрибутиве Apache нет файла инсталляции. Поэтому установка будет выполняться вручную.

    Шаг 4 . Скачиваем apache 2/4/25 win64 и компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe.

    Шаг 5 Создаем папку и распаковываем архив httpd-2.4.25-win64-VC14.zip временную папку. Скопируйте папку Apache24 на диск С. Не меняйте путь. Пусть будет C:\Apache24 . Правок в файле конфигурации будет гораздо меньше, если маршрут будет такой C:\Apache24

    Шаг 6 С помощью блокнота редактируем файл конфигурации httpd.conf , установленный по маршруту C:\Apache2\conf :

    Строка 46 Устанавливаем значение параметра ServerName.
    ServerName localhost:80

    Строка 116 Снимаем комментарий (#) и делаем доступно загрузку модуля

    LoadModule foo_module modules/mod_foo.so

    Строка 172 . Устанавливаем значение параметра ServerName и ServerAdmin
    ServerName localhost:80

    Я создал специальную учетную запись электронной почти на yandex для параметра ServerAdmin

    Строка 179 Устанавливаем значение параметра DocumentRoot (расположение документов сайта). Я оставил такой мршрут по умолчанию

    Шаг 7 Исполняемые файлы Apache находятся в папке C:\Apache24\bin. Добавляем это значение в переменную среды PATH Windows.

    Шаг 8 Перед установкой Apache как службу нужно запустить компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe.

    Шаг 9 Устанавливаем Apache как службу.

    Исполняемые файлы Apache находятся в папке C:\Apache24\bin. Для этом открываем командную панель (Start > Run > cmd) с правами администратора и командой cd меняем директорию, чтобы было C:\Apache24\bin > и запускаем
    httpd.exe -k install

    Отметим, что я забыл выполнить шаг 8 перед запуском службы Apache. В результате без компоненты C++ Redistributable Visual Studio 2015 не запускается Apache из-за того , что нужна библиотека vcruntime140.dll в папке C:\Windows\SysWOW64 ( а для 32 бит в папку C:\Windows\System32).

    Аналогичное сообщение дает параметр тестирования службы httpd.exe -t

    Можно попробовать скачать компоненту vcruntime140.dll от сюда http://www.dll.ru/files/vcruntime140-dll.html и скопировать файл в папку C:\Windows\SysWOW64 ( для 32 бит нужно скопировал файл в папку C:\Windows\System32). Однако после этого нужно перезагружать компьютер. Поэтому я рекомендую установить компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe. Установка этой компоненты не требует перезагрузки компьютера.

    Шаг 10 После запуска службы apache httpd.exe -k start , открываем список запущенным служб в управлении компьютера и находим службу apache 2.4

    убедимся, что служба запущена и тип запуска – “автоматически”

    Шаг 10 Проверяем работоспособность сервера. В командной строке браузера набираем адрес: http://localhost. Если установка Apache прошла успешно – на экране отобразится текст It works ! . В противном случае мы увидим пустой экран.

    В случае если сервер не запустился, следует проверить, не занят ли порт 80, который использует Apache по умолчанию. Делается это с помощью команды
    netstat –anb

    Чаще всего этот порт используют Skype или Firefox. В этом случае следует либо освободить порт, либо перевести Apache на порт 8080 .

    Для этого в файле httpd . conf изменяем значений параметров ServerName и Listen . ServerName localhost:8080

    Web-сервер Apache для систем Linux

    Проект web-сервера Apache берет свое начало от сервера httpd. Пакет httpd был разработан Робом Макколом в Национальном центре по применению суперкомпьютеров (National Center for supercomputing, NCSA) в США. К 1995 году сервер httpd представлял собой один из самых популярных проектов по разработке web-серверов. Однако в том же году разработчик покинул NCSA и дальнейшее развитие проекта заморозилось. Тогда небольшая группа высококвалифицированных web-администраторов занялась последующей поддержкой, модернизацией и развитием данного проекта. В дальнейшем эта группа администраторов собрала вокруг себя единомышленников и стала ядром команды, которая впоследствии получила название Apache Group Incorporated. В 1995 году она разработала обновления для пакета httpd 1.3 и в конечном счете выпустила очередную версию сервера под названием Apache 0.6.2. С тех пор эта группа всецело посвятила себя модернизации и совершенствованию данного сервера. С 1996 года этот проект является одним из самых популярных в мире.

    В настоящее время существует три версии этого web-сервера, которые развиваются независимо друг от друга.

    Версия 1.3.х

    Серверы, которые маркируются этой версией, отличаются стабильной работой, многочисленными «заплатками» в системе безопасности и имеют в своей основе первоначальный движок, разработанный еще в те далекие времена. Основным их отличием от других параллельных разработок является отсутствие многочисленных дополнительных модулей, а также поддержки в их разработке. То есть это web-сервер, лишенный всяческих излишеств, — при поддержке большинства технологий он остается компактным и быстрым в работе. Единственный его недостаток — это отсутствие поддержки IPv6 и многопроцессорности (потоков стандарта POSIX). В большинстве случаев эта версия сервера Apache используется только на UNIX-подобных системах, так как правильной оптимизации для других систем в данном пакете не предусмотрено. На текущий момент самой последней версией из этой линейки является Apache 1.3.39.

    Версия 2.0.х

    Пакеты Apache этой версии поддерживают практически все новейшие технологии. Движок web-сервера был полностью переписан, и практически все модули к нему также подверг­лись кардинальным изменениям. Эта ветвь Apache хотя и развивается отдельно от версии 2.2.х, но почти не отличается от нее, за исключением того, что в ней отсутствует большинство дополнительных модулей. Ядро пакета не только предполагает использование web-сервера в операционных системах UNIX, но и обеспечивает его быструю и эффективную работу с операционными системами BeOS, Windows и др. Все последние обновления по безопасности к этому web-серверу совмещены в версии 2.0.61.

    Версия 2.2.х

    Данная версия является самой продвинутой по сравнению с остальными. Пакеты этого типа сочетают в себе достоинства нового ядра 2.0 и дополнительных модулей, которые существенно расширяют возможности web-сервера. Отдельно стоит отметить полноценную поддержку протокола IPv6, мультипотоков, наличие большого количества модулей и простоту их разработки. В настоящий момент большинство дистрибутивов операционных систем на базе UNIX, содержат в себе пакет Apache именно этой версии. Последний релиз данного пакета — Apache 2.2.6.

    Все вышеперечисленные версии доступны для загрузки на сайте разработчиков httpd.apache.org. Там же можно найти необходимые и дополнительные модули для web-сервера, в создании которых принимали участие не только главные разработчики, но и сторонние люди. Стоит отметить, что модули, написанные для версии 1.3.х, не будут работать для версий 2.0.х и 2.2.х, и наоборот, то есть каждая из версий предполагает использование только написанных для нее плагинов.

    Установка

    Как и большинство программ для Linux, пакет Apache распространяется по лицензии GPL, то есть бесплатно. Загрузить его можно с нескольких серверов, ссылки на которые расположены на сайте разработчиков. Web-сервер Apache представлен в виде tar.gz- или tar.bz2-архива для платформы Linux. В архиве находится исходный код, который необходимо скомпилировать для получения рабочей программы. Компиляция проходит обычным путем.

    Прежде чем начать компиляцию, необходимо запустить файл для автоматической конфигурации пакета перед сборкой. Сделать это можно, разархивировав исходный код в отдельную папку и, находясь в ней, запустив файл ./configure. Данный скрипт автоматически определит настройки системы и сообщит о необходимых библиотеках, если таковые требуются для установки. Также при запуске этого скрипта можно указать специальные настройки: исключить/добавить модули, указать папку для установки или имя пользователя, для которого этот сервис будет установлен. Более подробную информацию о возможных командах для скрипта можно почерпнуть на сайте разработчиков или в файле install, который находится в корне архива с исходным кодом. После конфигурирования пакета необходимо его скомпилировать командой make и установить make install. По умолчанию в системах Linux web-сервер устанавливается в папку /usr/. Исполняемый файл находится в папке /usr/sbin, а кроме того, он может быть запущен обычной командой httpd из командной строки. После установки все необходимые конфигурационные файлы будут перенесены в папку /etc/httpd/conf и /etc/httpd/conf.d, основным конфигурационным файлом сервера является файл httpd.conf, который содержит в себе все главные настройки. Поскольку httpd является, по сути, основным web-сервером для платформ Linux, он максимально интегрируется в систему при установке. По умолчанию он автоматически добавляется в системные сервисы, позволяя таким образом управлять ими через стандартную программную оболочку сервисов; подробнее о доступных командах можно узнать, набрав в командной строке service httpd.

    Настройка

    Установленный web-сервер готов к работе, и при наборе IP-адреса сервера должна отображаться стандартная страница приветствия. Она появляется в том случае, если в каталоге со страницами (папка по умолчанию /var/www/html) нет файлов index.htm, index.html или index.php. Следует понимать, что установка одного web-сервера не предполагает одновременной установки базы данных или отличных от CGI языков web-программирования. Такие пакеты, как PHP, MySQL и Perl (для работы скриптов CGI), устанавливаются отдельно и затем подключаются через конфигурационный файл httpd.conf и дополнительные модули. В версию 2.2.6 уже включены все библиотеки, необходимые для работы с этими сторонними приложениями.

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

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