dvd2444 | Дата: Вторник, 13.03.2012, 22:03 | Сообщение # 1 |
Сержант
Группа: Заблокированные
Сообщений: 31
Репутация: 0
Статус: Offline
| настройка apache файл "httpd.conf"
основной файл конфигурации этого сервера - "httpd.conf". лежит он в каталоге "conf" в root-директории apache. вот над ним вам и придеться издеваться. скажу сразу, если вы не понимаете английского, удалите из этого файла все комментарии и пояснения, оставьте только сами директивы (и закоментированные тоже); таким образом вы сможете быстрее***одить нужную директиву, не роясь среди множества непонятных вам пояснений. синтаксис файла очень простой: "директива значение", все строки не соответствующие этому виду можно удалить,а если вы вообще в этом нифика не понимаете то лучше закрыть браузер и пойти спать.
внимане! некоторые директивы могут выглядеть так:
code #директива значение <блок директив /> директива значение
<блок директив /> # комментарий директива значение # комментарий
и т. п. эти строки удалять не нужно! символ комментария в "http.conf" - "#" (решетка). т. е. все символы, идущие в строке после "#" не воспринимаются сервером. так вы можете добавлять собственные комментарии. убирая этот символ перед закомментированными строками вы делаете их доступными для чтения сервером.
общие настройки
вам нужно будет сделать правку файла "httpd.conf". у некоторых директив изменить значение, другие раскомментировать, третьи добавить. далее я приведу список директив и их значений, которые должны присутствовать в файле конфигурации apache.
каталог с файлами сервера (не путать с "documentroot"):
code serverroot "c:/server/apache/apache2"
привязывает apache к конкретному порту: code listen 80
имя сервера (на работу это не влияет): code servername localhost:80
администратор сервера. содержит ваш адрес электронной почты, который будет отображаться при некоторых ошибках сервера: code serveradmin your@email.name
вам необходимо создать папки, где будут храниться ваши сайты. по умолчанию apache устанавливает "documentroot" - "%serverroot%/htdocs" (т. е. если вы установили apache в папку "c:\server\apache", то "documentroot" будет выглядеть так: "c:/server/apache/apache2/htdocs"). вы должны изменить значение "documentroot" на "c:/sites/home/localhost/www". code documentroot "c:/sites/home/localhost/www"
строго следуйте моим инструкциям, чтобы быть уверенными, что все это у вас потом заработает. создайте на диске "c:" папку "sites". в ней создайте каталог "home", уже в нем - "localhost", "neebet", "mysite". в каждую из этих папок ("localhost", "neebet", "mysite") положите каталоги "www" (для хранения html документов), "cgi" (для хранения cgi-скриптов), пустые файлы access.log (журнал доступа к серверу) и error.log (журнал ошибок сервера). далее замените блок "" на следующее:
code
options indexes includes allowoverride all order allow,deny allow from all
этими директивами вы разрешите просмотр содержимого каталога в браузере при отсутствии индексных файлов, включите поддержку ssi, разрешите использовать файлы .htaccess для настройки каталогов и разрешите доступ для всех к сайту. задание индексного файла для директории (этот файл сервер будет отображать при обращении к каталогу без указания имени файла):
code 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":
code 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-скрипты:
code addhandler cgi-script .cgi .bat .exe
блок "" замените на: code
allowoverride none options none order allow,deny allow from all
языковые настройки остальные строки вида "addlanguage lang .lang" можете закомментировать (если конечно вам не нужна поддержка этих языков):
code addlanguage en .en addlanguage ru .ru
устанавливает языковой приоритет: code languagepriority en ru
настройка кодировок: code adddefaultcharset windows-1251 addcharset windows-1251 .cp-1251 .win-1251
настройки php подключение php:
code addtype application/x-httpd-php php phtml scriptalias /_php_/ "c:/server/php/" action application/x-httpd-php "/_php_/php.exe"
настройки ssi включение ssi:
code 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" следующее:
code namevirtualhost 127.0.0.1 #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
#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
#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
можно добавить в блоки "" и другие параметры, однако лучше управлять виртуальными хостами с помощью .htaccess. также стоит отметить, что все параметры, не указанные в блоках "" или в .htaccess, наследуются от главного хоста (т. е. от "localhost"). т. о. вы настроили apache для работы с виртуальными хостами. имена, естесственно, можно изменить, но при этом будте внимательны с путями!
теперь определимся с тем, как windows узнает о существовании виртуальных хостов? для этого придется отредактировать файл "hosts" (не путать с файлом "hosts.sam"), хранящийся в папке "%windows%\system32\drivers\etc". выглядит он примерно так:
code # © корпорация майкрософт (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
|
|
|
|