Устанавливаем и конфигурируем Apache под Windows

Зачастую для того чтобы развернуть новую систему мониторинга с web-интерфейсом, систему приема заявок, базу знаний или корпоративный портал, если об этом за нас не позаботились разработчики, нам приходится заниматься инсталяцией веб-сервера, конфигурировать его, прикручивать дополнительные модули и многое другое. В таком вопросе нужно разбираться досконально, чем мы сейчас собственно и займемся.

Итак, чтобы его установить, непременно придется раздобыть его - дистрибутив Apache брать стоит здесь, файл выбирайте на свой вкус.


собственно здесь производится небольшое конфигурирование - нам предлагается либо установить для всех пользователей, на 80 порт, и запускать в качестве службы (производственный вариант), либо только для одного пользователя на порт 8080, при ручном запуске (вариант для тестов и разработчиков). Выбираем то, что нужно Вам.
В остальном установка это исключительно выбор дефолтных настроек.
 По окончанию установки и запуска Apache в системном трее мы с увидим перышко (ApacheMonitor).

Другим вариантом установки может являться распаковка архива и конфигурирование вручную.


 - Затем стоит разархивировать архив куда-нибудь, лично я его пестил в c:/apache2
После этого изкомандной строки необходимо запустить файл
>httpd.exe (c:/apache2/bin)
>httpd.exe -k install (установить в качестве службы)
После этого можно запустить ApacheMonitor.exe (c:/apache2/bin)

Если все прошло без ошибок, можно смело приступать к конфигурированию. Ошибки могут быть в том случае, если Вы разархивируете в каталог не с именем Apache2 и не в корень системного диска. Тогда для запуска придется поменять часть параметров в файле conf/httpd.conf.

 Идем конфигурировать!!! В не зависимости от того, как Вы устанавливали сервер, конфигурировать его лучше через основной файл конфигурации ( c o n f / h t t p d . c o n f ). Вот с его-то содержимым нам и придется столкнуться вплотную.

Параметры конфигурационного файла Apache 


ServerRoot "C:/Server/Apache/Apache2"
- каталог с файлами сервера (не путать с "DocumentRoot")
 
Listen 80 - слушаем и работаем на 80 порту, при желании можете настроить любой, только не забудьте об этом рассказать всем посетителям вашего хоста..

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

ServerAdmin your@email.name
Администратор сервера. Содержит ваш адрес электронной почты, который будет отображаться при некоторых ошибках сервера. Как заполнять регшите сами.

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

Найдите и закомментируйте блок "<Directory "C:/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 (добавьте те имена фалов, которые используете Вы) - управляющий элемент модуля mod_dir, включает перенаправление на указанный файл, при обращении не к файлу а к каталогу, содержащему этот файл (обращение пользователя - http://mysite.mu/ переадресуется на файл http://mysite.mu/index.php  или другой, из указанных Вами в конфигурации)
 
ScriptAlias /cgi/ "C:/Sites/home/localhost/cgi/"
ScriptAlias /cgi-bin/ "C:/Sites/home/localhost/cgi/"  -
 Задание псевдонима для каталога с cgi-скриптам. 

LoadModule php5_module "C:/PHP/php5apache2_2.dll" 
PHPIniDir "C:/PHP"   -  объясняем Apache откуда и как  грузить интерпретатор PHP.
  
AddHandler cgi-script .cgi .bat .exe  -  Объясняем Apache, что файлы с расширением "cgi", "bat", "exe" нужно воспринимать как cgi-скрипты.

 Блок "<Directory "C:/Apache2/cgi-bin">" заменяем на: <Directory "C:/Sites/home/localhost/cgi">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


AddType application/x-httpd-php php phtml
ScriptAlias /_php_/ "C:/PHP/"
Action application/x-httpd-php "/_php_/php.exe"
- подключаем PHP, указываем тот каталог в котором у Вас находится PHP.
  
AddType text/html .shtml
AddHandler server-parsed .shtml .html .htm -
включение SSI

LoadModule rewrite_module modules/mod_rewrite.so - раскомментируем данную строчку и подключаем модуль mod_rewrite. 



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

Итак, Вы создали каталог "localhost" для хранения и тестирования сайта. Но редко случается, что сайт только один. Можно, конечно, создать каталоги для других сайтов внутри "localhost" и обращаться к ним "http://localhost/site", но это как-то не по фен-шую. Тем более, что Apache дает возможность решить эту проблему с помощью виртуальных хостов. Есть два вида виртуальных хостов: отдельные для каждого IP адреса и использующие один IP (name-based хосты). Настроим последние, как наиболее веорятные для данной местности.
В каталоге "home" создадим директорию "mysite" . Это и будет рутом(корнем) ваших виртуальных хостов. В них должны быть папки "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>
#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" , хранящийся в каталоге "%WINDOWS%\System32\drivers\etc"
В него нужно будет дописать:
127.0.0.1 mysite
при добавлении любого нового сайта, виртуальный хост добавляется точно так же.

Теперь осталось перезапустить Apache,сделать это можно через ApacheMonitor, ну и собственно теперь стоит накатывать и настраивать сови сайты. 



Комментариев нет:

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