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
Server Name - localhost
Administrator's Email Adress - admin@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 />
Options FollowSymLinks
AllowOverride None
</Directory>

На

<Directory />
Options Indexes Includes
AllowOverride All
</Directory>

Который говорит нам, что для директории по умолчанию разрешено генерировать список содержимого каталога, если отсутствует index . html ( Indexes ), использовать SSI ( Includes ) и определяет доступ к ней с помощью файлов . htaccess ( AllowOverride All )

Далее идут директивы, которые определяют параметры главного хоста (сервера). Заменяем весь большой блок с комментариями

<Directory "[server]:/usr/Apache/htdocs">…</Directory>

На

<Directory "[server]:/home/localhost/public_html">
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>

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/"
<Directory "[server]:/home/localhost/public_html/cgi-bin">
AllowOverride All
Options ExecCGI
</Directory>

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 папку).

Назад Оглавление