Online video hd

Смотреть мамочки видео

Официальный сайт pepsilight 24/7/365

Смотреть видео бесплатно

ite 08.01.2011 00:58

НовичкуApache - это просто.

Apache - это просто.

Не буду говорить, что в настройке и администрировании апача я собаку съел, однако, одно время занимался им достаточно плотно, и конфигураций повидал много, поэтому и решился написать небольшую статейку про апач, модули, виртуальные хосты и .htaccess, дабы разложить знания по полочкам у себя в голове, ну и передать их(знания) дальше. Сразу хочу предупредить, что статья носит, скорее, информационный характер, нежели руководство к действию, здесь не будет готовых примеров настройки апача, но кое-что все-таки придется привести в качестве примера.
Забыл упомянуть, версия Апача, которую мы будем рассматривать - 2.x

1. Структура конфигурационных файлов Apache.
Вообще Апач конфигурируется одним файлом - apache2.conf, который располагается в /etc/apache2/ (Debian), однако, для нашего удобства, разработчики позаботились о возможности разбиения на несколько файлов, что очень и очень удобно. К примеру, нам гораздо удобней держать информацию о конфигурировании модулей в одной папке, а информацию о конфигурировании виртуальных хостов в другой. Для этого нам необходимо добавить в файл apache2.conf, на место, куда мы хотели поместить информацию о модулях или виртуальных хостах, строку:
1
Include /etc/apache2/имя_модуля.conf



Если хотим подключить все файлы с расширением .conf, можно поступить так:
1
Include /etc/apache2/blah_blah/*.conf.



Так же разработчики Апача заранее позаботились о расположении модулей и виртуальных хостов.
Модули располагаются в папках mods-available и mods-enabled. Сразу хотелось бы разъяснить разницу между этими папками. в папке mods-available лежат модули, которые доступны(читай установлены) для апача, в то время как mods-enabled лежат подключенные в данный момент модули. Включение выключение модулей осуществляется с помощью утилиты a2enmod и a2dismod, которые соответственно включают(создают символическую ссылку в папке mods-enabled на файл в папке mods-available) и выключают(удаляют эту ссылку) модули. Тоже самое характерно для папки с виртуальными хостами, только команды здесь a2ensite и a2dissite. На самом деле вы можете располагать файлы с модулями и виртуальными хостами где угодно, лишь бы в apache2.conf присутстовала ссылка на них через Include. Только в этом случае символические ссылки создавать и удалять придется самим, утилиты работать не будут.
Вот в общем-то вся магия конфигурационных файлов Апача.
2. Модули Apache.
Ну что такое модули, я думаю, объяснять не требуется, это всяческие расширения функциональности основного продукта, в данном случае для Apache. О располождении модулей мы уже знаем, существующие в системе располагаются в mods-available, подключенные в данный момент mods-enabled. Список модулей которые были вкомпилированны в апач можно узнать командой apache2ctl -l, у меня список выглядит так:
1

2
3
4
5
6
7
8
# apache2ctl -l

Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c


Список всех модулей, которые в данный момент подключены к апачу можно посмотреть командой apache2ctl -M, где (static), после модуля означает, что модуль вкомпилирован в апач, а (shared) - что подключен как внешний.

 1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# apache2ctl -M

Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
auth_mysql_module (shared)
authn_anon_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dav_module (shared)
dav_lock_module (shared)
dav_svn_module (shared)
authz_svn_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK


Посмотрим как подключается модуль, на примере модуля для обработки PHP кода - php5.so. Если вы устанавливали модуль средствами дистрибутива, то проблем возникнуть не должно. И так? заглянем в папку mods-available, там мы можем наблюдать 2 файла: php5.load и php5.conf. Первый файл содержит что-то наподобии этого:
1

2
# cat mods-available/php5.load 

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so


Как не трудно догадаться, здесь мы указываем Апачу что нужно загрузить модуль php5_module из файла /usr/lib/apache2/modules/libphp5.so.
В общем-то назначение любого файла с расширением .load это указать Апачу какой модуль откуда надо загрузить и не более, гораздо интереснее обстоят дела с файлом php5.conf:
1

2
3
4
# cat mods-available/php5.conf

<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3
</IfModule>


Директива - проверка на загруженость модуля, и если модуль(в данном случае mod_php5.c загружен, то выполнить то, что прописано внутри директивы. А именно добавить новый тип данных, который указывает Апачу как нужно обрабатывать те или иные файлы. В данном случе файлы с расширением php .phtml .php3 Апач обработает как x-httpd-php, т.е. передаст их на обработку интерпретатору PHP, который выполнит код находящийся в файлах и отдаст результат обратно Апачу, который выдаст его пользователю. Каждый файл типа *.conf имеет свой формат и зависит от модуля, к которому он относится, этими файлами конфигурируется работа модуля и его поведение.
Для того, чтобы подключить модуль нужно набрать команду a2enmod php5:
1

2
3
# a2enmod php5

Enabling module php5.
Run '/etc/init.d/apache2 restart' to activate new configuration!


И как нам подсказывают, перезапустить Апач, для того, чтобы он смог воспользоваться новым модулем, но для начала неплохо бы проверить, правильно сконфигурировали модуль, хотя бы с точки зрения синтаксических ошибок, командой apache2ctl configtest:
1

2
# apache2ctl configtest

Syntax OK


Ну вроде бы все ок. Можно смело перезапускаться:
1

2
3
4
# /etc/init.d/apache2 restart

Restarting web server: apache2
... waiting
.


Готово. Новый модуль встрою.
3. Виртуальные хосты Apache.
Апач поддерживает 2 вида виртуальных хостов, т.н Name-based(когда на одном IP-адресе содержатся несколько сайтов) и IP-based(когда на каждый сайт выделяется отдельный IP). Мы рассмотрим первый вариант, как наиболее популярный среди хостеров и вообще среди тех, кто хочет содержать у себя дома на 1ом выделнном IP несколько сайтов.
Для того, чтобы один Апач мог обрабатывать запросы сразу для нескольких сайтов, ввели понятие “Виртуальные хосты”. Вы спросите как Апач отделяет один сайт от другого, когда IP-адрес у всех сайтов один? Разгадка кроется в работе протокола HTTP. Когда мы вбиваем название сайт в браузер и жмякаем “Enter(Return ;) )”, адрес сайта, с помощью системы DNS, резолвится в IP, и мы попадаем на нужный сервер, однако в самом первом запросе http-серверу, браузер передает символьное название сайта, которое мы ввели в адресной строке и таким образом http-сервер(в нашем случае Апач), знает какой именно сайт мы запросили и с радостью отдает нам контент именно этого сайта. Вот так не хитро работают Виртуальные хосты.
Как мы разобрались выше, виртуальные хосты апача хранятся в папке sites-available и включенные в данный момент в папке sites-enabled. После осознания, что такое виртуальные хосты в принципе, конфигурировать их совсем несложно, поэтому я предлагаю разобраться с ними на примере:

 1

2
3
4
5
6
7
8
9
10
# cat sites-enabled/некоторый_сайт.ru 


NameVirtualHost 12.34.56.78
<VirtualHost некоторый_сайт.ru>
ServerName некоторый_сайт.ru
ServerAlias www.некоторый_сайт.ru www
DocumentRoot /home/www/некоторый_сайт.ru/
ScriptAlias /var/log/apache2/некоторый_сайт.ru_errors.log
CustomLog /var/log/apache2/некоторый_сайт.ru_custom.log combined
</VirtualHost>


Первой строкой для named-based, рекомендовано указывать IP-адрес и порт(что необязательно, в случае использования стандартного 80) того хоста, который будет отдавать контент наших виртуальных хостов, если у нас всего один IP-адрес, то мы можем указать либо его, либо поставить символ “*”, что означает, что наш виртуальный хостинг будет работать на всех интерфейсах в системе, если же у нас несколько IP-адресов, то нам нужно указать только тот, который мы хотим отдать под named-based виртуальный хостинг.
Директива Конкретизирует для какого именно виртуального хоста необходимо применить настройки, которые будут приведены внутри директивы, в нашем случае мы можем написать либо IP-адрес, либо адрес сайта, либо поставить “*”(но только в том случае, если мы в NameVirtualHost поставили “*”.
ServerName - то самое название сайта, виртуальный хостинг которого мы описываем.
ServerAlias - Алиас к названию сайта, можно как полностью, www.некоторый_сайт.ru, так и просто www.
DocumentRoot - Корневая директория сайта, тот контент, что будет отдавать.
ErrorLog - путь до лог файла с ошибками класса ERROR, файл должен быть доступен на записть пользователю, от которого запускается Апач.
CustomLog - Все остальные сообщения сервера, так же должен быть доступ на запись пользователю, от которого запущен Apache.

4. Файлы .htaccess
Файлы .htaccess предназначены для дополнительной настройки апача, например, когда нужно органичить доступ к какой-то конкретной папке на веб-сервере, подминить страницы ошибок для конкретного хоста, или как-то изменять URL-адресов. В общем штука полезная и нужная. Для того, чтобы включить поодержку .htaccess необходимо в главном файле конфигурации apache2.conf прописать:
1
AccessFileName .htaccess




Которая укажет веб-серверу какое должно быть имя файла и файл дополнительной конфигурации. И в директиве внести опцию AllowOverride, которая может принимать следующие значения:
All - разрешить переопределение всех значений с помощью файла .htaccess
AuthConfig - Только директивы для авторизации
FileInfo - Переопределение типов документов
Indexes - Все что касается индексации, переопределение начальной страницы, иконок, картинок и т.п.
Limit - такие параметры как Allow,Deny, Order для хостов
Options - различных настроек, типа ExecCGI, MultiVews и т.п.

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

PS. Как водится набор ссылок:
http://httpd.apache.org/docs/2.0/ - Официальная документация(кудаже без нее), даже что-то есть на русском.
http://masterhost.ru/support/doc/apache/ - Неплохое руководство
http://htaccess.net.ru/ - Отличный набор решений и объяснений по .htaccess
http://www.oglib.ru/apman/vhosts/examples.html - Примеры виртуальных хостов.
http://unix-admin.su Уcтановка и администрирование Linux, так же хорошие статьи и руководства
ite, [email protected]


Тэги:
+ 23 -
Похожие Поделиться

Данил Гребень 08.01.2011 10:58 #
+ 1 -
Добавил в избранное, еще не раз воспользуюсь, спасибо.
wiz 08.01.2011 12:04 #
+ -6 -
Apache это просто... не нужно </sarcasm>

Тяжёлый, тормозной и уязвимый.
solomenikm 08.01.2011 13:24 #
+ 1 -
С Вас пост про FastCGI ;)
wiz 08.01.2011 13:26 #
+ -2 -
Мне вполне хватает proxy_pass.
solomenikm 08.01.2011 14:30 #
+ 0 -
И куда вы проксируете запросы?
wiz 08.01.2011 15:59 #
+ 0 -
В джангу и другие сервера приложений. Сколько можно то уже CGI, хоть и "Fast" гонять, 21й век на дворе уже в самом разгаре.
Volant 09.01.2011 07:50 #
+ 0 -
С удовольствием бы почитал для общего развития. Ждем статью :-)
xT 10.01.2011 21:54 #
+ 0 -
про nginx уже писали на вилинуксе, съешь ещё этих мягких французских булок заюзай поиск
kstep 08.01.2011 14:34 #
+ 0 -
И на кого ты проксируешь? ФастЦГИ увы не совсем панацея...
wiz 08.01.2011 16:00 #
+ -1 -
Да и как просто лекарство оно так себе...
ite 09.01.2011 03:03 #
+ 0 -
Много слышал про замену Apache nginx`ом. Причем как хорошие отзывы так и плохие. Было бы хорошо, если бы рассказали про использование только nginx(без back-end apache) на High-Load серверах.
randomtoy 11.01.2011 10:41 #
+ 1 -
пару раз сталкивался. nginx отличный веб-сервер. выигрыш в производительности в 3-4 раза. С другой стороны есть и проблемы.
Slimy 10.01.2011 13:07 #
+ 0 -
Так про весь веб можно сказать. С точки зрения оптимальности это просто ужас. Однако пользуют и радуются.

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн