windows

windows

AMP для ОС Windows. Установка, настройка, использование.

AMP для ОС Windows. Установка, настройка, использование. Андрея Венина aka shaelf - PHP программиста. Их замечания и поправки преобразили изначальный вид статьи до неузнаваемости. За что им огромное спасибо. Про что эта статья? Если вы еще не догадались, AMP это аббревиатура, означающая классическую связку: Apache, MySQL, PHP. Эти три продукта настолько "сроднились" что воспринимаются практически как одно целое. В этой статье я опишу процесс установки и конфигурирования этой связки для ОС Windows, кратко освящу основные особенности работы Apache на платформе Windows. Кроме того, отдельно будет описан процесс установки и настройки ActivePerl, а также настройка Apache для обработки CGI сценариев, на примере Perl. Отмечу, что основной акцент будет сделан именно на настройке Web сервера. Для кого эта статья? Во-первых, для Web разработчиков. В первую очередь для тех, которые с завидным постоянством задают одни и те же вопросы на форуме :. Подавляющее большинство людей у нас работают с ОС от Microsoft. Этому есть целый ряд причин, как субъективных, так и вполне объективных. А вот детища Microsoft - IIS с ASP, не говоря уже про MSSQL, не так популярны среди заказчиков, хостеров, а соответственно и Web разработчиков. Так уж сложилось. Не ставить же им Linux/FreeBSD только ради того, чтобы испытать свое творение (поделие?) в боевых условиях? Итак - первые потенциальные читатели это Web программисты. Кстати, все дальнейшее изложение строиться именно с учетом того, что читать его будут программисты. Во-вторых, я не вижу причин, почему такая связка не может использоваться в реальных условиях. Пример - фирма, в которой работает квалифицированный Windows администратор, решила создать корпоративный сайт на собственной машине (потому что доверяет только своему админу), а разработчики все, как на зло, предлагают PHP движки. В этом случае вполне возможно развертывание корпоративного сайта под ОС Windows с использованием AMP. Возможно не самое лучшее решение, но, поверьте, квалифицированный администратор вполне сможет обеспечить надежную работу такого сервера. Это лучше, чем изучать с нуля FreeBSD либо Linux - в этом случае ошибки неизбежны. Тем более, что по отзывам компетентных людей, которым я не имею оснований не доверять, Windows 2003 - вполне надежная штука. И наконец статья может быть полезна всем, кто интересуется Web сервером Apache, и при этом не хочет менять привычную "среду обитания" - Windows. Куда ставим? Я ставлю на Windows XP SP2. Вам рекомендую ставить на любую ОС от Microsoft, старше, чем Windows NT. На Windows NT тоже можно, при наличии Service Pack 6a, но я этого делать не рекомендую. Аппаратные требования - на любой машине, на которой заработают указанные ОС, будет работать и Apache :. Apache. Установка и настройка Какую версию выбрать? Первая проблема, с которой столкнется любой, начинающий работать с Apache - выбор версии. На сегодняшний день есть три ветки Apache: 1.3, 2.0, и 2.2. Что выбрать? Однозначный ответ - НЕ Apache 1.3. Сервер Apache 1.3 для UNIX подобных ОС представляет собой процесс, с множеством предварительно порожденных дочерних процессов (preforked). Для операционной системы Windows такой способ обслуживания множества запросов чужд. Windows использует многопоточность. Кроме того, версия Apache 1.3 для Windows использовала в основном сетевые функции POSIX, а у Microsoft, как известно, существует своя, своеобразная, реализация стека TCP/IP. В версии 1.3 полноценная поддержка Windows так и не была реализована, поэтому на сайте http://httpd.apache.org НЕ рекомендуют использовать ветку 1.3 (текущий релиз, на момент написания статьи, 1.3.35) на операционных системах от Microsoft. При разработке второй ветки, разработчики пошли другим путем. Apache всегда был модульным сервером. Это значит что основная функциональность реализовывалась сервером при помощи подключаемых модулей, таких как mod_php например. Начиная с Apache 2.0, в отдельные модули вынесли и ту часть сервера, которая отвечает за прием и обработку сетевых соединений. Называются эти модули MPM - multiprocessing modules. Таким образом, вопреки распространенному заблуждению, Apache 2.х не является "многопоточным сервером" в той своей части, которая касается приема и обработки запросов. На самом деле при сборке предоставляется возможность выбора нужного модуля. Хотите - используйте старый проверенный метод preforked и ставьте модуль mpm_prefork. Хотите большей производительности - используйте гибридный модуль mpm_worker. И так далее. Для Windows существует специальный модуль mpm_winnt который использует специфические вызовы Windows API, сетевые функции Winsock2, а не POSIX. Таким образом, вывод очевиден. Ставим Apache второй ветки. Какой именно - 2.0 или 2.2? Среди нововведений 2.2 - переработанная система аутентификации, усовершенствованные модули кэширования, добавлен модуль балансировки загрузки для mod_proxy, поддержка файлов размером более 2-х Гб и так далее. Пока что это для нас несущественно. В первоначальном варианте этой статьи использовался Apache 2.2, однако выяснилось, что он категорически отказывается загружать имеющийся в моем дистрибутиве PHP модуль PHP (для Apache 2.2 модуль от 2.0 не подходит). Поэтому пришлось от него отказаться и использовать Apache 2.0.58 Способа есть два. Apache поставляется как в виде исходных текстов, так и в виде бинарного дистрибутива. Для ОС Windows бинарный дистрибутив представляет собой стандартный пакет "Windows Installer", иначе говоря, файл с расширением msi. Я настоятельно рекомендую вам использовать именно второй способ установки, даже если у вас в системе установлен компилятор. На сайте Apache даются описания установки из исходных кодов, в том числе и для ОС Windows. Однако профессиональные системные администраторы практически никогда не занимаются ручной сборкой ПО из исходных текстов, хотя в среде начинающих юниксоидов существует ошибочное мнение, что "установка из сырцов это круто и правильно". От них, собственно и пошел тот миф, что в Linux/UNIX все ставиться руками и из исходников. На самом деле, любой опытный системный администратор использует тот способ установки, который принят в конкретной операционной системе: rpm пакеты в Red Hat, систему портов во FreeBSD или Gentoo, ну и MSI пакеты в ОС Windows. К установке из исходных текстов прибегают в исключительном случае. Такой подход позволяет лучше контролировать установленное в системе ПО, упрощает обновление, установку заплаток и тому подобное. Кроме того, установка ПО в системе Windows, как правило, выполняется в режиме мастера, где вы, в большинстве случаев можете установить все необходимые вам параметры пакета, что избавит от необходимости ковыряться потом в конфигурационных файлах. Я вас убедил? Будем, как правильные люди, загружать себе пакет MSI и ставить готовый бинарный дистрибутив. Выбирайте здесь http://httpd.apache.org/download.cgi нужное зеркало и качайте. Нужный нам файл будет называться apache_2.0.58-win32-x86-no_ssl.msi. Как видно из названия, поддержка SSL в дистрибутив не включена. И не ищите пакет с поддержкой SSL. Его нет. Так что если вам нужно использовать SSL, придется устанавливать патчи вручную. В этой статье я не буду рассматривать как это делается. Может в другой раз : И последнее. Для тех, кто не ищет легких путей, скажу, что собирать Apache вручную можно при помощи компилятора Microsoft Visual C++, начиная с версии 5.0. Также вам понадобиться Platform SDK (включен в поставку MSVC++ 6.0 и более поздних версий), утилита awk либо gawk и много терпения. Итак, мы скачали нужный нам MSI пакет. Запускаем инсталляцию. Начинается все традиционно: вам предложат прочитать лицензионное соглашение, несколько раз нажать клавишу next: Если вы хоть раз устанавливали ПО для Windows, ничего нового вы для себя не увидите. Первое окно мастера, которое заслуживает внимания, выглядит так: Network domain - DNS имя домена, в который входит ваш сервер. Если такового нет, например вы ставите Apache на отдельно стоящей машине, можете в принципе писать все, что душе угодно. Обычно пишут что-то вроде domain.local. Server Name - DNS имя вашей машины + имя домена. Тут надо сделать небольшое лирическое отступление. Читая различные топики на форуме, я сделал вывод, что многие начинающие Web мастера (и не только) не различают NetBIOS и DNS имена хостов, а также не представляют механизмов разрешения этих имен в IP адреса. Подробное рассмотрение вопроса просто не укладывается в рамки статьи, вкратце скажу следующее - имена, с которыми работает Apache - это DNS имена. Для корректной работы сервера имена хостов, с которыми он будет работать должны быть занесены в DNS. Проще всего выяснить настройки DNS у своего системного администратора, либо провайдера. Если вы работаете с локальной машиной - можете использовать файл %SystemRoot%\system32\drivers\etc\hosts. В нем также прописывается соответствие IP адресов и символических имен. NetBIOS имен Apache не знает и знать не хочет. Я устанавливаю Apache на машину, входящую в локальную сеть городского провайдера. Имя машины в данном случае - net-11-125-ilyichevsk.loc. Можете сюда также ввести IP адрес своей машины. Administrator's email address - почтовый адрес администратора, который Apache будет показывать клиентам вместе с сообщениями об ошибках. Так что если вы не уверены, что настроите Apache как следует, лучше не помещайте туда свой реальный почтовый адрес : Следующий вопрос - как вы хотите установить Apache? На стандартный 80 порт, для всех пользователей и запускать как сервис, или только для вас, на порт 8080 и запускать вручную? Выбирать вам, замечу лишь, что для первого типа установки нужны права администратора. Кроме того, если машина не принадлежит вам безраздельно, другим пользователям установка новой службы может не понравиться. ;) Следующее окно - выбор типа инсталляции. Как обычно, это Typical, то есть стандартная установка и Custom, установка выборочная, рекомендуемая для продвинутых пользователей. Мы с вами выберем естественно выборочную установку и попадаем в следующее окно (рисунок 3) Тут нас интересует не столько выбор компонентов (ставьте все, пригодится) сколько выбор пути для установки. Путь на вашем месте я бы выбирал покороче, без пробелов, точек и тому подобных изысков. Путаться будете меньше. Жмем кнопку Next, и откидываемся на спинку кресла. Дальше установщик все делает сам. Впрочем, делает он все так быстро, что вы вряд ли успеете даже за кофе сходить. После установки в трее появится значок (попробуйте сами найти его на картинке :) Apache, нажав на который правой кнопкой, вы сможете вызывать Apache monitor и поуправлять состоянием службы. Установка завершена. Теперь проверим, работоспособность нашего сервера, набрав в браузере адрес http://127.0.0.1, либо http://localhost, что в принципе одно и то же. Должны получить Все просто и понятно, не так ли? Вы ЭТО видите? Значит, все сделано правильно и Web сервер работает. Если же что то идет не так: обычно дело в простой невнимательности - например у вас установлен "самый лучший firewall для ОС Windows" Agnitum Outpost, который блокирует входящие соединения на 80-й порт. Или вы просто забыли запустить службу : Теперь скажу пару слов о структуре каталогов нашего сервера. Я, как вы наверное заметили, ставил Apache в каталог D:\www\. Установщик создал в нем подкаталог Apache2. Этот каталог (D:\www\Apache2) описывается директивой ServerRoot файла httpd.conf. Документация называет его "каталогом где живет сервер". Смысл этой директивы в следующем: если в файле httpd.conf не указан абсолютный путь к какому либо файлу, он отсчитывается, начиная с пути, указанного в ServerRoot. Например, директива: LoadModules modules/mod_alias.so Загрузит модуль, который находится (для моего ServerRoot) в D:\www\Apache\modules или, иначе говоря, в ServerRoot\modules. Bin - каталог, содержащий различные приложения сервера Apache - собственно сам сервер, утилиты ротации логов, тестирования производительности и т. п. Cgi-bin - в э

Похожие статьи:

Hosted by uCoz