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

Ваш аккаунт

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

Последние темы форума

Показать новые сообщения »

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



Подписчиков: 19086
Последний выпуск: 12.01.2012

Настройка 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.


Оглавление

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

Оставлять комментарии могут только зарегистрированные пользователи.

Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.

Комментарии

1. shade137 / 30 июня 2011, 23:16:35
Мне нравитсяМне не нравится

Привет!помогите пожалуйста!у меня та же проблема что и у demon_no_fear и выдает ту же ошибку!если у кого то есть работающий httpd.conf скиньте пожалуйста,буду очень благодарен!мое мыло- tyxer2006@gmail.com

2. ДобрыйФей / 02 декабря 2009, 11:41:48
Мне нравитсяМне не нравится

Не принял директиву
ServerRoot "C:/Server/Apache/Apache2"
(устанавливаю Апаче 2.2) - но зато всё прошло удачно с:
ServerRoot "C:/Server/Apache"

3. Ананас / 30 августа 2009, 00:34:51
Мне нравитсяМне не нравится

Спасибо!! Хорошая статья! Даже новичок справился)

4. Sinsir / 26 мая 2009, 12:11:00
Мне нравитсяМне не нравится

А у меня выдает ошибку 403 нет доступа!
sinsir@inbox.ru
если есть добрые неленивые люди скинте плз конфиг

5. VIOLETT / 13 февраля 2009, 14:40:42
Мне нравитсяМне не нравится

Привет!помогите и мне пожалуйста!у меня та же лажа что и у demon_no_fear и выдает ту же ошибку!если у кого то есть работающий httpd.conf дайте пожалуйста,буду очень благодарна!мое мыло- anya_mehed@mail.ru

6. demon_no_fear / 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)

7. еВГЕНИЙпс / 20 января 2009, 09:10:16
Мне нравитсяМне не нравится

Добрый День! не подскажете как бороться с проблеммой ,которая освещена chulabre / 11 апреля 2007, 12:40:02
я так понимаю apache не видит открытый порт или не может связаться с сокетом
вопрос как с этим бороться??

8. Дк. Влад / 02 декабря 2008, 16:43:09
Мне нравитсяМне не нравится

А можно и мне выслать на мыло файл "httpd.conf". Мыло E_A_G_L_E@i.ua

9. Toganashi-Koder / 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. ЧЕБОКСАРЫ ЭТО САМЫЙ ЕБАНУТЫЙ ГОРОД

10. mag913 / 10 сентября 2008, 23:04:03
Мне нравитсяМне не нравится

Привет! Помогите, пожалуйста, сделала все как написанно, но при загрузки Apache выдает ошибку: AllowOverride not allowedhere. Что делать? Пишите на почту если не сложно, заранее благодарна.(mag913@mail.ru)

11. Ap|_|_| / 25 августа 2008, 15:18:57
Мне нравитсяМне не нравится

Делаю всё как показано здесь, не работает, там что то про адресы в каталоги, помогите вот ася : 409-565-176

12. aristov / 07 августа 2008, 17:17:10
Мне нравитсяМне не нравится

стоит заметить, что подключение виртуальных хостов может происходить в файле httpd-vhosts.conf
чтобы его подключить нужно раскомментировать соответствующую строку
Include conf/extra/httpd-vhosts.conf

13. KreNos / 24 июля 2008, 01:26:04
Мне нравитсяМне не нравится

что самое интересное когда файл закидываю в localhost/www все нормально вижу свое творение а ввод hhtp://neebet и http://mysite приводит к тому что выхожу на сайты http://www.neebet.com и http://www.mysite.com че делать не знаю помогите плиз

14. KreNos / 24 июля 2008, 01:15:07
Мне нравитсяМне не нравится

не могу понять в чем причина все делал по инструкции, Apache ни с чем ни ругался но при попытки ввести в браузере http://neebet ниче не выдает мол типо выдает что я неправильно ввел либо такой страницы нету....
что делать даже не знаю подскажите плиз или киньте свой "httpd.conf" мне на мыло(nekros_2006@mail.ru) буду очень признателен за помощь

15. vudvard / 30 июня 2008, 17:45:31
Мне нравитсяМне не нравится

Все разобрался, мне помогла в этом программа Денвер с этим делом

16. vudvard / 30 апреля 2008, 13:16:09
Мне нравитсяМне не нравится

Помогите. Долаю все так как написано в инструкции, а при запуске сервера выдает The requested operation has failed вот такое сообщение об ошибке.
Кому не составить сложности помогите, вот номере аси 227752856 или пишите по адресу vudvard@mail.ru

17. NetWorm / 25 января 2008, 19:58:02
Мне нравитсяМне не нравится

помогите пожалуйста!!! ошибка: The requested operation has failed.
в чем дело не знаю Аpache 2.0 php 4.4 Сделал все по описанию, ничего не работает... если кто знает в чем проблема пишите аська: 139369355

18. NANA_G / 22 декабря 2007, 23:11:03
Мне нравитсяМне не нравится

При запуске тестирования Apache выдаёт такую ошибку
"syntax error on line 286"
Не могу понять что это означает? Если кто знает. Напишите пожалуйсто.

19. NANA_G / 22 декабря 2007, 21:31:50
Мне нравитсяМне не нравится

Добрый день. Спасибо за статью Настройки Apache.Я вроде сделала все так как описано, но выдаёт ошибку. Не могу понять в чем моя ошибка. Если у кого все получилось, пошлите пожалуйсто файл "httpd.conf" (gnf2005@gmail.com). Заранее спасибо

20. gutt / 08 ноября 2007, 23:09:06
Мне нравитсяМне не нравится

Люди, киньте мне на мыло (gutt@hotmail.ru) свой httpd.conf у кого всё получилось по инструкции.. Никак не могу настроить CGI. :(( Зараннее благодарен..

21. Arhangel1 / 17 сентября 2007, 12:43:17
Мне нравитсяМне не нравится

Люди подскажите что я не так сделал в настройках apache ощибок вроде не выдает а запускатся не хочет Когда пытаюсь подключить нажимаю на старт Выдает вот что The requested operation has failed

22. delfin2007 / 02 августа 2007, 15:59:05
Мне нравитсяМне не нравится

помогите настроить апач у мя выдает ошыбку 1
или напишите мне в асю 490450966
плиз помогите

23. chulabre / 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 призапуске выдает вот это сообщение.... я чест даже не представляю что надо сделать чтоб исправить, инструкции соблюдал все чательно.... помогите плиз....!!

спасибо

24. SteppeWolf / 24 января 2007, 20:14:08
Мне нравитсяМне не нравится

Большое спасибо за статью, таким как я она оч. пригодится
4Fobus:Я тоже на этой фигне попался,там не строчку менять надо, да директиву полностью

25. FobuS / 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" помогите исправить

26. ProXi / 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

27. Homodrill / 11 августа 2006, 00:06:40
Мне нравитсяМне не нравится

ScriptAlias /cgi/ "D:/sites/home/localhost/cgi/"
вот с этой строчечкой проблемма. чтоб сервак пахал приходиться ее комментировать. Причем как на версии "2.0.х", так и на "2.2.х".

Она вобще критична - эта строчечка?? ато на /cgi-bin/ он не ругается... %)) Напишите мне в личные если не трудно ... спасибо за раннее

28. Тиша / 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]
Адрес, по-иоуму неверный ...

29. Антон / 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

По тому, что я его вставляю произвольно и апач вообще ничего не загружает!

30. apata / 10 апреля 2006, 14:42:47
Мне нравитсяМне не нравится

Здравствуйте, не знаю где еще спросить, поэтому пишу сюда :(
когда в httpd.conf вставляю блок
<Directory "C:/Sites">
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
apache почему то-не грузится, в чем может быть причина, подмагните, пож!

31. николай / 07 апреля 2006, 05:42:37
Мне нравитсяМне не нравится

Добрый день!
Некорректно работает Apache.
Например, http://localhost/ффффф/оооооо/?id=67
не загружает страницу.

Спасибо!

32. Digerman / 03 апреля 2006, 21:39:31
Мне нравитсяМне не нравится

2 Enforcer2k Огромное спасибо, а то я весь нет перерыл в поисках причин ошибки... вызванной указанием php.exe вместо php-cgi.exe. Дома я интуитивно вписал именно php-cgi, а на рабрте все по книжке писал Ужос. Еще раз спа...

33. Игорь / 30 января 2006, 20:19:20
Мне нравитсяМне не нравится

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

34. Enforcer2K / 23 декабря 2005, 12:30:20
Мне нравитсяМне не нравится

Грамотно, мне понравилось. Особенно про neebet =). Только неплохо было бы уточнить, что для PHP 5 нужно указывать не php.exe, а php-cgi.exe, а то нифига работать не будет.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог