<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF84:Apache - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF84:Apache&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 22:27:56 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: викификация, оформление</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF84:Apache&amp;diff=6694&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Новая серия!''' Web-сервер ''Apache'' для начинающих web-мастеров и администраторов&lt;br /&gt;
&lt;br /&gt;
=Apache: друг &amp;quot;бледнолицых&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Apache}}&lt;br /&gt;
&lt;br /&gt;
: '''ЧАСТЬ 1:''' По данным http://www.netcraft.com, более 60% web-серверов по всему миру работают под управлением ''Apache''. Причиной такой популярности является непревзойдённая гибкость и мощь этого сервера наряду с высокой скоростью работы. '''Сергей Супрунов''' поможет вам принять его на службу...&lt;br /&gt;
&lt;br /&gt;
==Немного истории==&lt;br /&gt;
&lt;br /&gt;
В начале 90-х годов прошлого века основным сервером только-только зарождающейся Всемирной паутины был ''httpd'', в разработке которого активное участие принимал Национальный Центр Суперкомпьютерных&lt;br /&gt;
Приложений (NCSA). Однако, когда в 1994 году проект покинул один из ведущих разработчиков, работы были&lt;br /&gt;
свернуты. К счастью, NCSA был правительственной организацией, и он не старался заполучить себе все&lt;br /&gt;
права, так что исходный код ''httpd'' был доступен всем желающим. Благодаря этому даже после официально-&lt;br /&gt;
го закрытия проекта люди продолжали писать к серверу исправления, дополнения и т.д.&lt;br /&gt;
&lt;br /&gt;
И вот в начале 1995 года Брайан Белендорф (см. [[LXF80:Ангел_Apache|LXF80]]) и Клиф Скольник, взяв за основу последнюю версию ''httpd'', выпущенную NCSA, и применив к ней огромное количество найденных в сети патчей,&lt;br /&gt;
выпустили первую версию того, что ныне известно под именем ''Apache'' ['''Собственно, название происходит от «A patchy server» – пропатченный сервер, – прим.ред.''']. С тех пор сервер активно развивается, и&lt;br /&gt;
сейчас является одним из самых успешных открытых проектов.&lt;br /&gt;
&lt;br /&gt;
==Установка==&lt;br /&gt;
&lt;br /&gt;
В настоящее время идет разработка трех ветвей сервера – ''Apache 1.x'' (текущая версия – 1.3.37) и две ветки&lt;br /&gt;
''Apache 2.x'' (последние версии - 2.0.59 и 2.2.3 соответственно). Конкретные дистрибутивы могут содержать&lt;br /&gt;
более ранние версии.&lt;br /&gt;
&lt;br /&gt;
Если ''Apache'' включен в состав вашего дистрибутива или доступен для установки из репозитория, предпочтительно использовать эту возможность. Впрочем, при необходимости инсталляцию можно выполнить&lt;br /&gt;
и из исходных кодов. В данной статье я использовал версию 2.0.55, установленную в Ubuntu с помощью&lt;br /&gt;
''Synaptic''. Про инсталляцию из исходных текстов рассказано в «Ручная работа».&lt;br /&gt;
&lt;br /&gt;
==Ручная работа==&lt;br /&gt;
&lt;br /&gt;
Менеджер пакетов, это, конечно, хорошо. Но какой же настоящий линуксоид не попробует хотя бы раз&lt;br /&gt;
в жизни поставить что-то из исходников? Благо, и повод у нас для этого весьма благородный –&lt;br /&gt;
хочется 2.2.3, а в репозитарии есть только 2.0.55. Так что – в путь!&lt;br /&gt;
&lt;br /&gt;
1. Скачайте архив с последней версией с сайта http://httpd.apache.org:&lt;br /&gt;
&lt;br /&gt;
 wget http://apache.rinet.ru/dist/httpd/httpd-2.2.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
2. Распакуйте его в свой домашний каталог:&lt;br /&gt;
&lt;br /&gt;
 tar xvjf httpd-2.2.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
3. Сконфигурируйте исходный код:&lt;br /&gt;
&lt;br /&gt;
 cd httpd-2.2.3&lt;br /&gt;
 ./configure --prefix=/usr/local/apache22&lt;br /&gt;
&lt;br /&gt;
С помощью '''--prefix''' мы изменили каталог установки, чтобы случайно не затереть уже установленный 2.0.55. С помощью опций '''enable/disable''' вы можете изменить «умолчательный» состав модулей, которые будут собраны в основном двоичном файле.&lt;br /&gt;
&lt;br /&gt;
4. Наконец, традиционная сборка и инсталляция:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install #&lt;br /&gt;
&lt;br /&gt;
или&lt;br /&gt;
&lt;br /&gt;
 su -c ‘make install’&lt;br /&gt;
&lt;br /&gt;
в дистрибутивах, отличных от Ubuntu&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
К сожалению, разработчики дистрибутивов пока не&lt;br /&gt;
пришли к единому мнению на счет того, как же лучше именовать те или иные файлы. В «чистом» пакете,&lt;br /&gt;
скачанном с http://Apache.org, предполагается, что основной двоичный файл именуется '''httpd''', главный файл конфигурации – '''httpd.conf''', а утилита управления - ''Apachectl''.&lt;br /&gt;
То есть так, как это принято и в версиях 1.х.&lt;br /&gt;
&lt;br /&gt;
Однако в некоторых дистрибутивах применяют несколько иные схемы. Например, Ubuntu, Knoppix (да, похоже, и все семейство Debian) размещают конфигурацию в '''/etc/Apache2''', а главный файл конфигурации&lt;br /&gt;
называется '''Apache2.conf'''. Файл '''httpd.conf''' тоже присутствует, но используется в основном для обратной&lt;br /&gt;
совместимости. А, скажем, Fedora Core придерживается на сей счет более «официальной» точки зрения,&lt;br /&gt;
и размещает основной файл настройки в '''/etc/httpd/conf/httpd.conf''', с той лишь разницей, что часть вспомогательных настроек вынесена в отдельные файлы в каталоге '''conf.d'''.&lt;br /&gt;
&lt;br /&gt;
В принципе, вариантов не так уж и много, и свой конфигурационный файл, думаю, вы отыщете без&lt;br /&gt;
труда. В дальнейшем я буду ссылаться на него как на '''Apache2.conf''', так что не забывайте вносить соответствующие поправки...&lt;br /&gt;
&lt;br /&gt;
Итак, заглянув в '''Apache2.conf''', вы увидите там несколько видов строк:&lt;br /&gt;
* начинающиеся с символа «'''#'''» - это комментарии, они игнорируются при анализе файла и служат лишь для пояснения нижележащих опций;&lt;br /&gt;
* начинающиеся с «'''&amp;lt;'''» - это синтаксические конструкции, разделяющие конфигурационный файл на так называемые секции;&lt;br /&gt;
* обычные директивы вида «'''имя значение'''».&lt;br /&gt;
&lt;br /&gt;
Секции тоже можно условно разделить на два типа: «ограничители» и «условия». Первые ограничивают область действия заключенных в них директив. Например, секция '''&amp;lt;Directory /var/www/special&amp;gt;''' будет&lt;br /&gt;
влиять только на запросы файлов, размещенных в указанном каталоге. Секция '''&amp;lt;Location /server-status&amp;gt;''' будет&lt;br /&gt;
отвечать за запросы ресурса с URL вида http://yourserver.ru/server-status/... Секция '''&amp;lt;Limit GET&amp;gt;''' окажет влияние только на '''GET'''-запросы. К этому же виду секций можно&lt;br /&gt;
отнести и виртуальные хосты, с которыми мы познакомимся чуть позже.&lt;br /&gt;
&lt;br /&gt;
Секции-условия позволяют применять те или иные директивы только в том случае, если выполняется&lt;br /&gt;
некоторое условие, например, если подключен конкретный модуль: '''&amp;lt;IfModule prefork.c&amp;gt;'''. Причем влияют&lt;br /&gt;
эти директивы на конфигурацию всего сервера (или той секции-ограничителя, в которую вложена данная&lt;br /&gt;
секция-условие).&lt;br /&gt;
&lt;br /&gt;
Директивы отвечают за самые различные аспекты поведения web-сервера – от прослушиваемых портов до подключения модулей и обработчиков ('''handlers'''). Обращайте особое внимание на директивы '''Include''',&lt;br /&gt;
которые позволяют вставлять в текущий файл настройки строки из других файлов (особенно этим «грешит»&lt;br /&gt;
Ubuntu). Другие важные для нас директивы будут рассмотрены по ходу дальнейшего изложения.&lt;br /&gt;
&lt;br /&gt;
==Первая страничка==&lt;br /&gt;
&lt;br /&gt;
Перейдем к практике. Apache мы поставили и даже можем увидеть его тестовую страницу, если введем в&lt;br /&gt;
браузере http://yourdomain.ru (если вы ставите сервер на той же машине, на которой работаете, то можно&lt;br /&gt;
ввести http://localhost). Опять-таки, в зависимости от дистрибутива, это может быть либо страничка с&lt;br /&gt;
«перышком», либо оглавление каталога (как в Ubuntu), либо просто строчка «It works!» (как в официальном пакете). Давайте посмотрим, откуда она берется.&lt;br /&gt;
&lt;br /&gt;
В конфигурационном файле отыщите строку '''DocumentRoot''' - она укажет вам на каталог, который&lt;br /&gt;
''Apache'' считает корневым для сайта. В зависимости от дистрибутива и способа инсталляции это может&lt;br /&gt;
быть '''/var/www, $prefix/htdocs''' (где '''$prefix''' - каталог, куда выполнялась установка), '''/var/www/html'''. В нем вы должны найти файл с именем '''index.html'''. Если вы вернетесь к конфигурации и найдете строку '''DirectoryIndex''', то убедитесь, что файл с таким именем и должен возвращаться на запрос, в котором&lt;br /&gt;
конкретное имя ресурса не указано. Таким образом, чтобы вместо этой открывался ваш html-файл, просто замените им индексный (главное, чтобы он был  доступен для чтения пользователю '''www-data''', с правами которого обычно работает ''Apache''). Впрочем, никто не запретит вам указать здесь свой каталог.&lt;br /&gt;
&lt;br /&gt;
==Автоиндекс==&lt;br /&gt;
&lt;br /&gt;
А что ''Apache'' будет делать, если в каталоге отсутствует индексный файл? Это также зависит от настроек. По &lt;br /&gt;
умолчанию сервер собирается с поддержкой модуля '''mod_autoindex''' (для проверки выполните команду  ''Apache2 -l'' или ''httpd -l'', в зависимости от имени исполняемого файла в вашем дистрибутиве), так что ''Apache'', &lt;br /&gt;
используя его возможности, автоматически построит страничку-оглавление со ссылками на все файлы, &lt;br /&gt;
содержащиеся в запрошенном каталоге. С помощью директивы '''IndexOptions''' можно подстраивать вид этой &lt;br /&gt;
страницы.&lt;br /&gt;
&lt;br /&gt;
Данная функция удобна для создания каталога файлов или чего-то еще, организованного по принципу FTP-сервера. Но если вы считаете такую возможность излишне опасной (не всегда и не всем нужно показывать, что и где у вас лежит), то этот модуль  можно отключить:&lt;br /&gt;
&lt;br /&gt;
 Options -Indexes&lt;br /&gt;
&lt;br /&gt;
Кстати говоря, директива '''Options''' очень важна и для других аспектов безопасности. Обязательно ознакомьтесь с ней подробнее в документации. После изменения конфигурации не забудьте перезагрузить сервер: ''Apachectl restart'' (в некоторых дистрибутивах эта утилита называется ''Apache2ctl'').&lt;br /&gt;
&lt;br /&gt;
==Домашние страницы==&lt;br /&gt;
&lt;br /&gt;
Вы, имея привилегии root в системе, можете без ограничений править свою интернет-страничку. Но что, &lt;br /&gt;
если вы хотите предоставить такую возможность своему другу, который зарегистрирован в вашей системе, но без прав суперпользователя? Не давать же ему неограниченный доступ?&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи предназначен модуль '''mod_userdir'''. Если он подключен, то вы можете указать&lt;br /&gt;
в конфигурации такой фрагмент (скорее всего, он там уже есть, но закомментирован):&lt;br /&gt;
&lt;br /&gt;
 UserDir public_html&lt;br /&gt;
 &amp;lt;Directory /home/*/public_html&amp;gt;&lt;br /&gt;
     Options Indexes&lt;br /&gt;
     AllowOverride Indexes&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь мы указываем, что при получении запроса вида http://yourserver.ru/~vasya нужно открывать&lt;br /&gt;
индексный файл из домашнего каталога пользователя '''vasya''', т.е. из '''/home/vasya/public_html'''. Ну а там&lt;br /&gt;
Вася пусть делает все, что ему захочется. Чтобы он не сильно шалил, его возможности можно ограничить в последующей секции '''&amp;lt;Directory&amp;gt;''' для каталогов, соответствующих указанной маске (в примере мы устанавливаем ему опцию Indexes и позволяем ее переопределять самому). Кстати, о переопределении&lt;br /&gt;
конфигурации...&lt;br /&gt;
&lt;br /&gt;
==Файл .htaccess==&lt;br /&gt;
&lt;br /&gt;
Конфигурационный файл позволяет настроить любые опции для любого каталога. Но здесь есть два неудобства – во-первых, для его редактирования нужны права суперпользователя, и во-вторых, после каждого изменения нужно перегружать сервер (для чего, опять-таки, нужно обладать правами root).&lt;br /&gt;
&lt;br /&gt;
''Apache'' позволяет управлять параметрами доступа к каталогам более гибко - путем размещения в них специальных файлов, обычно с именем '''.htaccess'''. Если для данного каталога действует опция '''AllowOverride All''', то&lt;br /&gt;
в '''.htaccess'''-файле можно указывать практически любые опции, допустимые для секции '''&amp;lt;Directory&amp;gt;'''. Однако&lt;br /&gt;
администратор может ограничить эти возможности, задав более жесткие ограничения, как в примере выше.&lt;br /&gt;
&lt;br /&gt;
Учтите, что использование '''.htaccess''' существенно повышает нагрузку на сервер – для каждого запроса&lt;br /&gt;
серверу придется проверять наличие этого файла в каждом каталоге от корня файловой системы до месторасположения запрошенного файла, так что если в них нет острой необходимости, лучше пользуйтесь общим файлом конфигурации. Полностью запретить эти файлы можно с помощью директивы '''AllowOverride None'''.&lt;br /&gt;
&lt;br /&gt;
==Виртуальные хосты==&lt;br /&gt;
&lt;br /&gt;
Домашние странички пользователей достаточно удобны для задач «домашнего» уровня. Но ''Apache'' предоставляет более мощное средство размещения нескольких сайтов на одном сервере (и под одним IP-адресом) - виртуальный хостинг. Рассмотрим простейший пример:&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 127.0.0.1&lt;br /&gt;
 &amp;lt;VirtualHost localhost&amp;gt;&lt;br /&gt;
   DocumentRoot /var/www/localhost&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;VirtualHost toshiba&amp;gt;&lt;br /&gt;
   DocumentRoot /var/www/toshiba&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь мы указали, что у нас будут виртуальные хосты по адресу '''127.0.0.1''', и дальше перечисляем&lt;br /&gt;
секции '''&amp;lt;VirtualHost&amp;gt;''' для каждого доменного имени. В этих секциях обязательно нужно указать корень&lt;br /&gt;
сайта ('''DocumentRoot''') и, при желании, любые другие настройки. Разместив в указанных каталогах индексные файлы с различным содержанием, вы получите два сайта, открывающиеся в зависимости от того,&lt;br /&gt;
какое доменное имя будет указано в запросе.&lt;br /&gt;
&lt;br /&gt;
Чтобы виртуальный хостинг работал правильно, все доменные имена должны быть описаны на сервере&lt;br /&gt;
DNS (для тестирования будет достаточно файла '''/etc/hosts'''), а браузер клиента должен поддерживать протокол HTTP/1.1, так как HTTP/1.0 не поддерживает поле '''Host:''' заголовка, в котором и передается имя домена.&lt;br /&gt;
А поскольку запрос направляется по IP-адресу, то для ''Apache'' это поле - единственный способ узнать, какой&lt;br /&gt;
же из сайтов запрашивается клиентом.&lt;br /&gt;
&lt;br /&gt;
Изложенных сегодня сведений должно быть достаточно, чтобы начать работать с ''Apache'' и создавать&lt;br /&gt;
несложные статические странички. Главное - не бойтесь экспериментировать! '''LXF'''&lt;/div&gt;</description>
			<pubDate>Thu, 29 Jan 2009 11:34:10 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF84:Apache</comments>		</item>
	</channel>
</rss>