Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Настройка Apache

Файл "httpd.conf"

Основной файл конфигурации этого сервера - "httpd.conf". Лежит он в каталоге "conf" в root-директории Apache. Вот над ним вам и придеться издеваться. Скажу сразу, если вы не понимаете английского, удалите из этого файла все комментарии и пояснения, оставьте только сами директивы (и закоментированные тоже); таким образом вы сможете быстрее находить нужную директиву, не роясь среди множества непонятных вам пояснений. Синтаксис файла очень простой: "директива значение", все строки не соответствующие этому виду можно удалить.

Внимане! Некоторые директивы могут выглядеть так:

#директива значение
<блок директив />
     директива значение
</блок директив>
  <блок директив />
#  Комментарий
     директива значение
#  Комментарий
  </блок директив>

и т. п. Эти строки удалять не нужно!

Символ комментария в "http.conf" - "#" (решетка). Т. е. все символы, идущие в строке после "#" не воспринимаются сервером. Так вы можете добавлять собственные комментарии. Убирая этот символ перед закомментированными строками вы делаете их доступными для чтения сервером.

Общие настройки

Вам нужно будет сделать правку файла "httpd.conf". У некоторых директив изменить значение, другие раскомментировать, третьи добавить. Далее я приведу список директив и их значений, которые должны присутствовать в файле конфигурации Apache.

Каталог с файлами сервера (не путать с "DocumentRoot"):

ServerRoot "C:/Server/Apache/Apache2"

Привязывает Apache к конкретному порту:

Listen 80

Имя сервера (на работу это не влияет):

ServerName localhost:80

Администратор сервера. Содержит ваш адрес электронной почты, который будет отображаться при некоторых ошибках сервера:

ServerAdmin your@email.name

Вам необходимо создать папки, где будут храниться ваши сайты. По умолчанию Apache устанавливает "DocumentRoot" - "%ServerRoot%/htdocs" (т. е. если вы установили Apache в папку "C:\Server\Apache", то "DocumentRoot" будет выглядеть так: "C:/Server/Apache/Apache2/htdocs"). Вы должны изменить значение "DocumentRoot" на "C:/Sites/home/localhost/www".

DocumentRoot "C:/Sites/home/localhost/www"

Строго следуйте моим инструкциям, чтобы быть уверенными, что все это у вас потом заработает. Создайте на диске "C:" папку "Sites". В ней создайте каталог "home", уже в нем - "localhost", "neebet", "mysite". В каждую из этих папок ("localhost", "neebet", "mysite") положите каталоги "www" (для хранения html документов), "cgi" (для хранения cgi-скриптов), пустые файлы access.log (журнал доступа к серверу) и error.log (журнал ошибок сервера). Т. о. структура каталогов, в которых будут храниться ваши сайты должна выглядеть так:

Структура каталогов для ваших сайтов

Зачем это нужно, поймете потом, а сейчас просто сделайте как я говорю.

Далее замените блок "<Directory "C:/Server/Apache/Apache2/htdocs">" на следующее:

<Directory "C:/Sites">
    Options Indexes Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

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

Задание индексного файла для директории (этот файл сервер будет отображать при обращении к каталогу без указания имени файла):

DirectoryIndex index.php index.html index.html.var

Настройки CGI

Задание псевдонима для каталога с cgi-скриптами "C:\Sites\home\localhost\cgi". При указании пути вида http://localhost/cgi/ или http://localhost/cgi-bin/, Apache будет обращаться к каталогу "C:\Sites\home\localhost\cgi":

ScriptAlias /cgi/ "C:/Sites/home/localhost/cgi/"
ScriptAlias /cgi-bin/ "C:/Sites/home/localhost/cgi/"

Каталог "C:\Sites\home\localhost\cgi" также будет доступен вашим виртуальным хостам при обращении вида "http://имя_виртуального_хоста/cgi-bin/cgi-скрипт.bat". Напрмер, если вы введете в браузере http://neebet/cgi-bin/cgitest.bat, то будет выполнен код, находящийся в файле "C:\Sites\home\localhost\cgi\cgitest.bat", который также доступен по адресу http://localhost/cgi/cgitest.bat. У виртуальных хостов есть свой каталог для cgi-скриптов, доступный по адресу "http://имя_виртуального_хоста/cgi/cgi-скрипт.bat". Каталоги "cgi" не доступны для просмотра в браузере, и при прямом обращении к ним вы получите сообщение об ошибке "403".

Указывает Apache, что файлы с расширением "cgi", "bat", "exe" нужно воспринимать как cgi-скрипты:

AddHandler cgi-script .cgi .bat .exe

Блок "<Directory "C:/Server/Apache/Apache2/cgi-bin">" замените на:

<Directory "C:/Sites/home/localhost/cgi">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Языковые настройки

Остальные строки вида "AddLanguage lang .lang" можете закомментировать (если конечно вам не нужна поддержка этих языков):

AddLanguage en .en
AddLanguage ru .ru

Устанавливает языковой приоритет:

LanguagePriority en ru

Настройка кодировок:

AddDefaultCharset WINDOWS-1251
AddCharset WINDOWS-1251 .cp-1251   .win-1251

Настройки PHP

Подключение PHP:

AddType application/x-httpd-php php phtml
ScriptAlias /_php_/ "C:/Server/PHP/"
Action application/x-httpd-php "/_php_/php.exe"

Настройки SSI

Включение SSI:

AddType text/html .shtml
AddHandler server-parsed .shtml .html .htm

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

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

Итак, вы создали каталог "localhost" для хранения и тестирования документов вашего сайта. Но если у вас не один сайт? Можно конечно создать каталоги для других сайтов внутри "localhost" и обращаться к ним "http://localhost/site", но это не совсем удобно. Тем более, что Apache дает возможность решить эту проблему с помощью виртуальных хостов. Есть два вида виртуальных хостов: отдельные для каждого IP адреса и использующие один IP (name-based хосты). Я объясню как настроить последние.

Вы уже создали ранее папки "neebet" и "mysite" в директории "home". Это и есть корни ваших виртуальных хостов. В них должны быть папки "www" и "cgi", файлы access.log и error.log. Т. е. все так же как и с каталогом "localhost". Все ваши виртуальные хосты будут использовать IP "127.0.0.1".

Добавьте в файл "httpd.conf" следующее:

NameVirtualHost 127.0.0.1
#localhost
<VirtualHost localhost>
ServerAdmin me@localhost
ServerName localhost
DocumentRoot "C:/Sites/home/localhost/www"
ScriptAlias /cgi/ "C:/Sites/home/localhost/cgi/"
ErrorLog C:/Sites/home/localhost/error.log
CustomLog C:/Sites/home/localhost/access.log common
</VirtualHost>
#neebet
<VirtualHost neebet>
ServerAdmin me@neebet
ServerName neebet
DocumentRoot "C:/Sites/home/neebet/www"
ScriptAlias /cgi/ "C:/Sites/home/neebet/cgi/"
ErrorLog C:/Sites/home/neebet/error.log
CustomLog C:/Sites/home/neebet/access.log common
</VirtualHost>
#mysite
<VirtualHost mysite>
ServerAdmin me@mysite
ServerName mysite
DocumentRoot "C:/Sites/home/mysite/www"
ScriptAlias /cgi/ "C:/Sites/home/mysite/cgi/"
ErrorLog C:/Sites/home/mysite/error.log
CustomLog C:/Sites/home/mysite/access.log common
</VirtualHost>

Можно добавить в блоки "<VirtualHost>" и другие параметры, однако лучше управлять виртуальными хостами с помощью .htaccess. Также стоит отметить, что все параметры, не указанные в блоках "<VirtualHost>" или в .htaccess, наследуются от главного хоста (т. е. от "localhost").

Т. о. вы настроили Apache для работы с виртуальными хостами. Имена, естесственно, можно изменить, но при этом будте внимательны с путями!

Теперь определимся с тем, как Windows узнает о существовании виртуальных хостов? Для этого придется отредактировать файл "hosts" (не путать с файлом "hosts.sam"), хранящийся в папке "%WINDOWS%\System32\drivers\etc". Выглядит он примерно так:

# (C) Корпорация Майкрософт (Microsoft Corp.), 1993-1999
#
# Это образец файла HOSTS, используемый Microsoft TCP/IP для Windows.
#
# Этот файл содержит сопоставления IP-адресов именам узлов.
# Каждый элемент должен располагаться в отдельной строке. IP-адрес должен
# находиться в первом столбце, за ним должно следовать соответствующее имя.
# IP-адрес и имя узла должны разделяться хотя бы одним пробелом.
#
# Кроме того, в некоторых строках могут быть вставлены комментарии
# (такие, как эта строка), они должны следовать за именем узла и отделяться
# от него символом '#'.
#
# Например:
#
#      102.54.94.97     rhino.acme.com          # исходный сервер
#       38.25.63.10      x.acme.com                 # узел клиента x
127.0.0.1       localhost

В него нужно будет дописать две строки:

127.0.0.1       neebet
127.0.0.1       mysite

Теперь, при обращении http://neebet загрузится содержимое "C:\Sites\home\neebet\www".

Для вступления изменений в силу - перезапустите Apache.


Оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
100.0M
13 октября 2021 года
Оал Алал
0 / / 13.10.2021
+3 / -1
Мне нравитсяМне не нравится
13 октября 2021, 12:00:44
Даня гей
2.
73K
30 июня 2011 года
shade137
0 / / 30.06.2011
+2 / -0
Мне нравитсяМне не нравится
30 июня 2011, 23:16:35
Привет!помогите пожалуйста!у меня та же проблема что и у demon_no_fear и выдает ту же ошибку!если у кого то есть работающий httpd.conf скиньте пожалуйста,буду очень благодарен!мое мыло- tyxer2006@gmail.com
3.
56K
02 декабря 2009 года
ДобрыйФей
0 / / 02.12.2009
+1 / -2
Мне нравитсяМне не нравится
2 декабря 2009, 11:41:48
Не принял директиву
ServerRoot "C:/Server/Apache/Apache2"
(устанавливаю Апаче 2.2) - но зато всё прошло удачно с:
ServerRoot "C:/Server/Apache"
4.
47K
26 апреля 2009 года
Ананас
5 / / 26.04.2009
+2 / -0
Мне нравитсяМне не нравится
30 августа 2009, 00:34:51
Спасибо!! Хорошая статья! Даже новичок справился)
5.
50K
26 мая 2009 года
Sinsir
0 / / 26.05.2009
+1 / -0
Мне нравитсяМне не нравится
26 мая 2009, 12:11:00
А у меня выдает ошибку 403 нет доступа!
sinsir@inbox.ru
если есть добрые неленивые люди скинте плз конфиг
6.
47K
13 февраля 2009 года
VIOLETT
0 / / 13.02.2009
+1 / -0
Мне нравитсяМне не нравится
13 февраля 2009, 14:40:42
Привет!помогите и мне пожалуйста!у меня та же лажа что и у demon_no_fear и выдает ту же ошибку!если у кого то есть работающий httpd.conf дайте пожалуйста,буду очень благодарна!мое мыло- anya_mehed@mail.ru
7.
46K
10 февраля 2009 года
demon_no_fear
1 / / 10.02.2009
+2 / -0
Мне нравитсяМне не нравится
10 февраля 2009, 14:11:16
Привет! Помогите, пожалуйста, сделала все как написанно, но при загрузки Apache выдает ошибку: make_sock: could not bind to address 127.0.0.1:80
not listning sockets aviable, shuting down. Что делать? Пишите на почту если не сложно, заранее благодарен.и если есть рабочий и правильно сконфигурированный httpd.conf, дайте плиииз!(demon_no_fear@mail.ru)
8.
47K
20 января 2009 года
еВГЕНИЙпс
0 / / 20.01.2009
+2 / -0
Мне нравитсяМне не нравится
20 января 2009, 09:10:16
Добрый День! не подскажете как бороться с проблеммой ,которая освещена chulabre / 11 апреля 2007, 12:40:02
я так понимаю apache не видит открытый порт или не может связаться с сокетом
вопрос как с этим бороться??
9.
43K
09 октября 2008 года
Дк. Влад
1 / / 09.10.2008
+1 / -0
Мне нравитсяМне не нравится
2 декабря 2008, 16:43:09
А можно и мне выслать на мыло файл "httpd.conf". Мыло E_A_G_L_E@i.ua
10.
45K
10 ноября 2008 года
Toganashi-Koder
0 / / 10.11.2008
+3 / -2
Мне нравитсяМне не нравится
11 ноября 2008, 07:53:10
!!!!!!!!!!!!!!! ВАЖНО ЧИТАТЬ ВСЕМ !!!!!!!!!!!!!!!
Для тех кто PHP РАЗАРХИВИРОВАЛ !!!!!! то есть НЕ устанавливал
--------------------------------------------------------------
===Правка файла httpd.conf ===
1) Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ "#") данную строку:
LoadModule rewrite_module modules/mod_rewrite.so

2) Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
LoadModule php5_module "C:/Server/PHP/php5apache2_2.dll"

3)Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
PHPIniDir "C:/Server/PHP"
=================================================================
P.S. ЧЕБОКСАРЫ ЭТО САМЫЙ ЕБАНУТЫЙ ГОРОД
11.
42K
10 сентября 2008 года
mag913
0 / / 10.09.2008
Мне нравитсяМне не нравится
10 сентября 2008, 23:04:03
Привет! Помогите, пожалуйста, сделала все как написанно, но при загрузки Apache выдает ошибку: AllowOverride not allowedhere. Что делать? Пишите на почту если не сложно, заранее благодарна.(mag913@mail.ru)
12.
42K
25 августа 2008 года
Ap|_|_|
0 / / 25.08.2008
+0 / -1
Мне нравитсяМне не нравится
25 августа 2008, 15:18:57
Делаю всё как показано здесь, не работает, там что то про адресы в каталоги, помогите вот ася : 409-565-176
13.
41K
07 августа 2008 года
aristov
1 / / 07.08.2008
Мне нравитсяМне не нравится
7 августа 2008, 17:17:10
стоит заметить, что подключение виртуальных хостов может происходить в файле httpd-vhosts.conf
чтобы его подключить нужно раскомментировать соответствующую строку
Include conf/extra/httpd-vhosts.conf
14.
41K
24 июля 2008 года
KreNos
1 / / 24.07.2008
Мне нравитсяМне не нравится
24 июля 2008, 01:26:04
что самое интересное когда файл закидываю в localhost/www все нормально вижу свое творение а ввод hhtp://neebet и http://mysite приводит к тому что выхожу на сайты http://www.neebet.com и http://www.mysite.com че делать не знаю помогите плиз
15.
41K
24 июля 2008 года
KreNos
1 / / 24.07.2008
Мне нравитсяМне не нравится
24 июля 2008, 01:15:07
не могу понять в чем причина все делал по инструкции, Apache ни с чем ни ругался но при попытки ввести в браузере http://neebet ниче не выдает мол типо выдает что я неправильно ввел либо такой страницы нету....
что делать даже не знаю подскажите плиз или киньте свой "httpd.conf" мне на мыло(nekros_2006@mail.ru) буду очень признателен за помощь
16.
39K
30 апреля 2008 года
vudvard
0 / / 30.04.2008
Мне нравитсяМне не нравится
30 июня 2008, 17:45:31
Все разобрался, мне помогла в этом программа Денвер с этим делом
17.
39K
30 апреля 2008 года
vudvard
0 / / 30.04.2008
Мне нравитсяМне не нравится
30 апреля 2008, 13:16:09
Помогите. Долаю все так как написано в инструкции, а при запуске сервера выдает The requested operation has failed вот такое сообщение об ошибке.
Кому не составить сложности помогите, вот номере аси 227752856 или пишите по адресу vudvard@mail.ru
18.
36K
25 января 2008 года
NetWorm
0 / / 25.01.2008
Мне нравитсяМне не нравится
25 января 2008, 19:58:02
помогите пожалуйста!!! ошибка: The requested operation has failed.
в чем дело не знаю Аpache 2.0 php 4.4 Сделал все по описанию, ничего не работает... если кто знает в чем проблема пишите аська: 139369355
19.
35K
22 декабря 2007 года
NANA_G
0 / / 22.12.2007
Мне нравитсяМне не нравится
22 декабря 2007, 23:11:03
При запуске тестирования Apache выдаёт такую ошибку
"syntax error on line 286"
Не могу понять что это означает? Если кто знает. Напишите пожалуйсто.
20.
35K
22 декабря 2007 года
NANA_G
0 / / 22.12.2007
Мне нравитсяМне не нравится
22 декабря 2007, 21:31:50
Добрый день. Спасибо за статью Настройки Apache.Я вроде сделала все так как описано, но выдаёт ошибку. Не могу понять в чем моя ошибка. Если у кого все получилось, пошлите пожалуйсто файл "httpd.conf" (gnf2005@gmail.com). Заранее спасибо
21.
34K
08 ноября 2007 года
gutt
0 / / 08.11.2007
Мне нравитсяМне не нравится
8 ноября 2007, 23:09:06
Люди, киньте мне на мыло (gutt@hotmail.ru) свой httpd.conf у кого всё получилось по инструкции.. Никак не могу настроить CGI. :(( Зараннее благодарен..
22.
32K
17 сентября 2007 года
Arhangel1
0 / / 17.09.2007
Мне нравитсяМне не нравится
17 сентября 2007, 12:43:17
Люди подскажите что я не так сделал в настройках apache ощибок вроде не выдает а запускатся не хочет Когда пытаюсь подключить нажимаю на старт Выдает вот что The requested operation has failed
23.
31K
02 августа 2007 года
delfin2007
0 / / 02.08.2007
Мне нравитсяМне не нравится
2 августа 2007, 15:59:05
помогите настроить апач у мя выдает ошыбку 1
или напишите мне в асю 490450966
плиз помогите
24.
27K
11 апреля 2007 года
chulabre
1 / / 11.04.2007
Мне нравитсяМне не нравится
11 апреля 2007, 12:40:02
(OS 10049)&#9573;Ёхсєхь&#8730;щ рфЁхё фы  ётюхую ъюэЄхъёЄр эхтхЁхэ. : make_sock: could not
bind to address 12.34.56.78:80
no listening sockets available, shutting down
Unable to open logs
Note the errors or messages above, and press the <ESC> key to exit. 26...

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

спасибо
25.
26K
23 января 2007 года
SteppeWolf
0 / / 23.01.2007
Мне нравитсяМне не нравится
24 января 2007, 20:14:08
Большое спасибо за статью, таким как я она оч. пригодится
4Fobus:Я тоже на этой фигне попался,там не строчку менять надо, да директиву полностью
26.
25K
29 декабря 2006 года
FobuS
0 / / 29.12.2006
Мне нравитсяМне не нравится
29 декабря 2006, 18:06:06
Незнаю что делать помогите пожалуйста!!
После того как выстовил
<Directory "C:/Sites">
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
......
Когда загружаю Апач выдает ошибку "AllowOverride not Allowed Here"
Syntax Errore on line 308" помогите исправить
27.
22K
27 сентября 2006 года
ProXi
0 / / 27.09.2006
Мне нравитсяМне не нравится
27 сентября 2006, 01:00:00
Сделал все в точности по представленной инструкции.
Закинул в папку localhost/www Index.html. Потом запустил броузер и ввел в строку адрес "localhost", "localhost:80(бред, но я не знал что делать, дошло до крайностей)", "127.0.0.1". Что только не пробовал, страничка так и не открылась.
Ввожу адрес -> нажимаю ввод -> "ожидание ответа от localhost"
Посмотрите на мои настройки, указаны ниже:
http://shareua.com/files/93b493/httpd.conf.html
28.
21K
10 августа 2006 года
Homodrill
0 / / 10.08.2006
Мне нравитсяМне не нравится
11 августа 2006, 00:06:40
ScriptAlias /cgi/ "D:/sites/home/localhost/cgi/"
вот с этой строчечкой проблемма. чтоб сервак пахал приходиться ее комментировать. Причем как на версии "2.0.х", так и на "2.2.х".

Она вобще критична - эта строчечка?? ато на /cgi-bin/ он не ругается... %)) Напишите мне в личные если не трудно ... спасибо за раннее
29.
Аноним
Мне нравитсяМне не нравится
26 апреля 2006, 15:36:32
Действительно, чета я тоже не пойму, куда вставлять код?
<blockquote><small>Цитата:<hr size=1>
AddType application/x-httpd-php php phtml
ScriptAlias /_php_/ "C:/Server/PHP/"
Action application/x-httpd-php "/_php_/php.exe [/quote]
Адрес, по-иоуму неверный ...
30.
Аноним
Мне нравитсяМне не нравится
11 апреля 2006, 22:57:41
Так где вставлять этот кусок:

AddType application/x-httpd-php php phtml
ScriptAlias /_php_/ "C:/Server/PHP/"
Action application/x-httpd-php "/_php_/php.exe

По тому, что я его вставляю произвольно и апач вообще ничего не загружает!
31.
Аноним
Мне нравитсяМне не нравится
10 апреля 2006, 14:42:47
Здравствуйте, не знаю где еще спросить, поэтому пишу сюда :(
когда в httpd.conf вставляю блок
<Directory "C:/Sites">
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
apache почему то-не грузится, в чем может быть причина, подмагните, пож!
32.
Аноним
Мне нравитсяМне не нравится
7 апреля 2006, 05:42:37
Добрый день!
Некорректно работает Apache.
Например, http://localhost/ффффф/оооооо/?id=67
не загружает страницу.

Спасибо!
33.
Аноним
Мне нравитсяМне не нравится
3 апреля 2006, 21:39:31
2 Enforcer2k Огромное спасибо, а то я весь нет перерыл в поисках причин ошибки... вызванной указанием php.exe вместо php-cgi.exe. Дома я интуитивно вписал именно php-cgi, а на рабрте все по книжке писал Ужос. Еще раз спа...
34.
Аноним
Мне нравитсяМне не нравится
30 января 2006, 20:19:20
это всё хорошо, но это стандартные настройки, анельзя ли настройки по каждому пункту файла конфигурации с примерами, что и как ставить и какой результат
спасибо
35.
Аноним
+1 / -0
Мне нравитсяМне не нравится
23 декабря 2005, 12:30:20
Грамотно, мне понравилось. Особенно про neebet =). Только неплохо было бы уточнить, что для PHP 5 нужно указывать не php.exe, а php-cgi.exe, а то нифига работать не будет.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог