2255 | 2255 |


Денвер 3

Разное | 8-11-2009, 23:26 | Просмотров: 125


Джентльменский набор Web-разработчика («Д.н.w.р», читается «Денвер») — проект Дмитрия Котерова, набор дистрибутивов (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка, используемые Web-разработчиками для разработки сайтов на «домашней» (локальной) Windows-машине без необходимости выхода в Интернет. Главная особенность Денвера — удобство при удаленной работе сразу над несколькими независимыми проектами и возможность размещения на Flash-накопителе.

Возможности проекта

Про установку сервера и различных дополнений к нему написано несколько статей, одну из которых — свою — я не устаю приводить в ссылках: Apache + Perl + PHP4 + MySQL для Windows 95/98: руководство по установке. До недавнего времени установка всей «кухни» была делом довольно кропотливым. Теперь же инсталляцию и конфигурирование компонентов можно произвести автоматически, и поможет в этом Денвер.

Давайте посмотрим, что же включает в себя базовый (основной) пакет Денвера:
Инсталлятор (поддерживается также инсталляция на flash-накопитель).
Apache, SSL, SSI, mod_rewrite, mod_php.
PHP5 с поддержкой GD, MySQL, sqLite.
MySQL5 с поддержкой транзакций.
Система управления виртуальными хостами, основанная на шаблонах. Чтобы создать новый хост, вам нужно лишь добавить директорию в каталог /home, править конфигурационные файлы не требуется. По умолчанию уже поддерживаются схемы именования директорий многих популярных хостеров; новые можно без труда добавить.
Система управления запуском и завершением всех компонентов Денвера.
phpMyAdmin — система управления MySQL через Web-интерфейс.
Эмулятор sendmail и SMTP-сервера (отладочная «заглушка» на localhost:25, складывающая приходящие письма в /tmp в формате .eml); поддерживается работа совместно с PHP, Perl, Parser и т.д.

Если вы когда-нибудь качали дистрибутивы по модему, наверное, вы задавались вопросом: каков абсолютный минимум размера дистрибутивов, чтобы с ними уже можно было работать. Давайте посчитаем:
Apache: 4.7 MB;
PHP5: 9.7 MB;
MySQL5: 23 MB;
phpMyAdmin: 2 МБ.
Итого: 40 MB

Видно, что как раз эти компоненты и содержатся в базовом пакете Денвера, но занимает он... около 5.5 мегабайт! Вероятно, вы не поверите, что исходные дистрибутивы могут вот так взять и «похудеть» более чем в 7 раз без потери функциональности. За счет чего же удалось достичь таких результатов?
Дистрибутивы были тщательным образом «прочесаны». Все компоненты, которые используются сравнительно редко, вынесены в отдельные пакеты расширений. Таким образом, 90% разработчиков смогут сразу же начать работать, а оставшимся 10% достаточно лишь докачать и установить при помощи инсталляторов дополнительные пакеты.
Обычно дистрибутивы снабжаются различными ненужными файлами, вроде истории изменений или инструкций по установке. Незачем говорить, что Денвер их не содержит.
Для упаковки архива используется один из самых мощных архиваторов — 7-Zip.
Пакеты расширений

Если вы — профессиональный разработчик, вам, наверное, потребуются дополнительные пакеты:
полная версия ActivePerl 5.8;
PHP5 с полным набором модулей;
язык программирования Python;
СУБД PostgreSQL или InterBase/FireBird версий 1 и 2;
старый-добрый PHP версии 3 или 4;
или даже Parser студии Лебедева.

Все это вы можете скачать и установить, причем «грязную работу» возьмет на себя инсталлятор, входящий в пакет.
Архитектура

Отличительной особенностью Денвера является его полная автономность. Она заключается в следующем.
Денвер устанавливается в один-единственный каталог и вне его ничего не изменяет. Он не пишет файлы в Windows-директорию и не «гадит» в Реестре. При желании вы можете даже поставить себе сразу два Денвера, и они не будут конфликтовать.
Никакие «сервисы» NT/2000 не «прописываются». Если вы запустили Денвер, то он работает. Если завершили — то перестает работать, не оставляя после себя следов.
Системе не нужен деинсталлятор — достаточно просто удалить каталог.
Установив Денвер однажды, вы можете затем просто переписывать его на другие машины (на произвольный диск в произвольную директорию). Это не приведет ни к каким побочным эффектам.
Все конфигурирование и настройка под конкретную машину происходит автоматически.

Эти же правила распространяются и на пакеты расширений.

В целях упрощения работы компонентов комплекса и улучшения совместимости с реальным Unix-хостером при старте создается специальный виртуальный диск, присоединенный к основной директории.
Виртуальный диск — это просто синоним для некоторой папки на реальном, или физическом, диске. Подключается он при помощи команды subst, о чем заботятся скрипты Денвера. Вы можете работать с виртуальным диском, как с обычным. При этом все операции в действительности будут производиться с указанной директорией. Механизм работы виртуальных дисков встроен в ОС и не ведет к каким-либо издержкам и замедлениям.

За счет применения виртуального диска Денвер «изнутри» похож на маленький Unix: у него есть своя директория /home, /usr, /tmp... Различные компоненты и серверы расположены так, как это принято в Unix. Например, в /home располагаются виртуальные хосты, а в /usr — программные компоненты.
Такая архитектура в действительности не имеет ничего общего с системой Cygwin (хотя и похожа). Тем не менее, некоторые пакеты расширений Денвера могут использовать Cygwin для своих внутренних целей, но это всегда «прозрачно» для пользователя.

Вопреки распространенному мнению, Денвер не является чем-то статическим и неизменным. Никто не мешает вам устанавливать поверх него дополнительные программы и компоненты (например, сервер СУБД PostgreSQL). Они просто будут для него «как родные». Вы можете также задавать логику запуска и завершения дополнительных сервисов по аналогии с тем, как это сделано в базовом пакете. Так что, если вам нужна какая-то система, которой нет в пакетах расширений, смело ставьте и конфигурируйте ее вручную.

Зачем вообще нужен локальный сервер?

В последнее десятилетие во всем мире наблюдается настоящий бум среди Web-разработчиков (по преимуществу это программисты). Они устанавливают у себя на Windows-машине сервер Apache с различными дополнениями к нему: PHP, Perl, MySQL и т.д. — преимущественно в целях более удобной отладки сайтов.

Многие (преимущественно дизайнеры) могут спросить: зачем вообще нужен локальный Web-сервер, когда страницы можно открывать и так — прямо с диска? Если это обычные (статические) HTML-страницы, то да, сервер не нужен. Однако даже для такой мелочи, как SSI (Server-side Includes — директивы в страницах, позволяющие вставлять на нужное место содержимое других файлов), уже необходим сервер. Не говоря уж о скриптах — они без сервера просто не запустятся.

Обычно все эти проблемы решают при помощи FTP-клиентов: закачивают исправленные страницы и скрипты на «настоящий» сервер в Интернете, смотрят, что получилось, затем лезут в редактор, исправляют, снова закачивают и т.д. до бесконечности. Главный недостаток такого подхода очевиден: необходимо все время быть подключенным к Интернету. Также очень желательно иметь хорошую связь, потому что в противном случае работа будет продвигаться крайне медленно.

Мне относительно регулярно приходят письма со следующим — обычно завуалированным — вопросом: чем отличается «просмотр страниц, открывая файл в браузере» от «просмотра с использованием сервера». В первом случае вы выбираете в меню что-то вроде Файл — Открыть — Обзор и выбираете нужный файл на диске. Браузер показывает его без всякой обработки, и путь в его адресной строке выглядит примерно вот так:



Если же вы открываете страницу «через сервер», происходит совершенно иное. Вообще, вы должны привыкнуть к мысли, что ваш «локальный» сервер ничем не хуже любого другого, расположенного в Интернете. А значит, он тоже содержит сайты (один или несколько), у каждого из которых есть определенное имя. Доступ к этим сайтам осуществляется, как обычно: вы указываете в адресной строке URL — обычно имя сайта и путь к документу на нем.


Насчет людей, участвующих в проекте, можно сказать много хорошего. Итак, в ролях:
Дмитрий Котеров
Автор проекта «Денвер».
Антон Сущев (Ant)
Ведущий разработчик функционала Денвера. Модерация форума.
Михаил Ливач (Maus)
Поддержка пользователей. Помощь в разработке Денвера.

И, конечно, все это работает лишь потому, что разработчики Apache, PHP, Perl, MySQL, phpMyAdmin и т.д. трудились и трудятся в поте своего лица (и не только), создавая программы и серверы, пользующиеся теперь такой популярностью. Спасибо вам!


 (голосов: 0)

Комментарии (0 | Распечатать |