3. Apache 3.1 Что такое Apache? Apache – это HTTP сервер, который позволяет использовать CGI -скрипты, PHP , Perl , шифрование, доступ по паролю, перекодирование страниц на “лету”, поддержка виртуальных хостов и т.д. Так же он имеет малую потребность в ресурсах и большую производительность и он бесплатный и с открытым исходным кодом. Установив его предоставляется возможность создания одного или несколько виртуальных хостов (сайты), которые могут быть установлены на одной машине. Это самый популярный сервер используемый в Интернете на серверах. 3.2 Установка и настройка сервера Apache . Последнюю версию сервера можно скачать с сайта производителя, адрес которого представлен в Список Литературы , но прежде чем скачать посмотрите, совместим ли он с mySQL , PHP т.к. есть несколько направлений развития Apache , к которым не факт что можно “прикрутить” БД и PHP (например, версия 1. x и 2.x). Запускаем установочный файл и устанавливаем в директорию [ server ]:\ usr \ apache , так же выбираем следующие параметры первоначальной настройки: Network Domain - localhost В Windows XP , Apache будет установлен сразу как сервис. Для проверки работы, можно запустить http://localhost , где должна отобразиться страница, что сервер Apache установлен. Теперь перейдем к более тщательной настройки. Все основные настройки сервера Apache хранятся в фале httpd . conf директории [ server ]:\usr\Apache\conf. Открываем этот файл и начинаем править: DocumentRoot “[ server ]:/ home / localhost / public _ html " # корневая папка сервера Заменяем блок, который говорит нам, что для директории по умолчанию разрешено ходить по символьным ссылкам ( FollowSymLinks ) и определяет доступ к ней с помощью файлов . htaccess ( AllowOverride All ): <Directory /> На <Directory /> Который говорит нам, что для директории по умолчанию разрешено генерировать список содержимого каталога, если отсутствует index . html ( Indexes ), использовать SSI ( Includes ) и определяет доступ к ней с помощью файлов . htaccess ( AllowOverride All ) Далее идут директивы, которые определяют параметры главного хоста (сервера). Заменяем весь большой блок с комментариями <Directory "[server]:/usr/Apache/htdocs">…</Directory> На <Directory "[server]:/home/localhost/public_html"> Order allow , deny означает, что сначала применяется директива allow , затем deny , а начальное состояние – запрещено. В качестве пользовательской директории UserDir, стоит указать UserDir "[server]:/home/localhost/public_html" В директиве DirectoryIndex указываются списки файлов, которые будет искать сервер (в их порядке следования) при попытке зайти в эту директорию ([ server ]:/home/<domain_name>/public_html). Стоит указать: DirectoryIndex index.php index.html index.htm index.shtml index.shtm Далее, следует поменять следующие директивы: ScriptAlias /cgi-bin/ "[server]:/home/localhost/public_html/cgi-bin/" ScriptAlias указывает , что запрос начинающийся с /cgi-bin/ будет восприниматься как [server]:/home/localhost/public_html/cgi-bin/, и папка будет помечена , как содержащая CGI- скрипты . Options ExecCGI указывает на то, что в этой папке разрешен запуск CGI -скриптов. Далее меняем #AddHandler cgi-script .cgi На AddHandler cgi-script .cgi Указывает расширение CGI -скриптов (можно даже . exe поставить и писать программу на обычном Borland C или MASM J ). Все основные вещи по настройке Apache сделаны. Запускаете тест конфигурации (в меню пуск или через командную строчку), который проверяет синтаксис httpd . conf . Если удачно, то перезапускаете сервер. Реально что мы сделали? Мы настроили локальный сервер, который находится у нас по адресу http://localhost (в браузере, а на диске в [ server ]:\ home \ localhost \ public _ html ), так же мы настроили папки этого сервера для работы с CGI . Реально по обращению по этому адресу, в Интернете дерево DNS -серверов, а в данном случае, это просто Ваша локальная машина, расшифровывает файл localhost в IP-адрес 127.0.0.1. Плюс, порт, который указан в httpd . conf по умолчанию – 80, говорит Нам на каком порту весит наш сервер Apache и тем самым мы получаем адрес, который полностью эквивалентен выше приведенному: http://127.0.0.1:80 Но допустим, мы не хотим, чтобы наш сайт так назывался, значит нужно описать DNS -серверу (занимаются этим хостеры за деньги) наше имя сайта, чтобы по нему можно было определить IP . В данном случае, мы должны прописать в файле (для XP ) C:\WINDOWS\system32\drivers\etc\ hosts имя нашего сайта и его IP адрес. Но вместо того, чтобы портить основной localhost сервер, можно установить дополнительный виртуальный или несколько виртуальных. О чем и будет рассказано ниже. Допустим, у вас есть фирма, в которой есть локальная сеть и вы хотите установить там веб-сервер, который будет называться http://main.net , для этого нужно будет первым делом прописать этот веб-сервер на DNS -сервере (просто выделенная машина, где в некотором файле есть соответствие DNS - IP ) т.е. связать с main . net IP -адрес машины, где установлен Apache , далее следует настроить Apache (в данном случае в файле hosts нужно прописать main . net 127.0.0.1). Виртуальные хосты т.к. их может быть довольно много, лучше вынести в отдельный файл, например virtual . conf . Поэтому в конце файла httpd . conf пишем: include “ conf / virtual . conf ”. А в virtual . conf описываем конфигурацию виртуального хоста main . net : NameVirtualHost 127.0.0.1 # если на этом IP только один хост, то эта строчка не #нужна, но в данном случае у нас 2 хоста – localhost , main . net <VirtualHost 127.0.0.1> ServerName main.net ServerAdmin admin@main.net DocumentRoot "[server]:/home/main.net/public_html" <Directory "[server]:/home/main.net/public_html"> Options –Indexes # каталог не индексируется AllowOverride All Order allow,deny Allow from all </Directory> ScriptAlias /cgi-bin/ "[server]:/home/main.net/public_html/cgi-bin/" ErrorLog "[server]:/logs/main.net/error.log" CustomLog "[server]:/logs/main.net/custom.log" common </ VirtualHost > Естественно нужно создать все папки для этого хоста, а так же создать два файла error . log и custom . log в директории “[ server ]:/ logs / main . net /” и перезапустить сервер. Теперь идем в браузер, набираем http://main.net и у нас должна отобразиться index страничка (естественно, первоначально ее нужно положить в public _ html папку).
|