Денвер
Возможности проекта Изменения (CHANGELOG) Устанавливаем Денвер Ваша реклама на сайте

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

Про установку сервера и различных дополнений к нему написано несколько статей, одну из которых — свою — я не устаю приводить в ссылках: 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

Видно, что как раз эти компоненты и содержатся в базовом пакете Денвера, но занимает он... около 8.2 мегабайт! Вероятно, вы не поверите, что исходные дистрибутивы могут вот так взять и «похудеть» более чем в 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 — обычно имя сайта и путь к документу на нем:

Уже при сравнении этих двух картинок можно видеть, что при открытии страницы «через браузер» пользователь в общем случае видит совсем не то же самое, что при открытии файла (сравните хотя бы заголовки окон).

Кстати, на последней картинке имя сайта — dklab. Конечно, такое имя выглядит несколько странно — у него нет суффикса .ru, что делает его недоступным для всех остальных пользователей Сети. Однако на локальной машине сайт открывается замечательно, к тому же, я никогда не спутаю dklab.ru (сайт в Интернете) с dklab (сайт на локальной машине).

Кто и зачем это делал

Все началось с того, что однажды вечером я получил очередную пачку писем от пользователей статьи Apache + Perl + PHP4 + MySQL для Windows 95/98: руководство по установке (хорошо еще, что электронных). Вопросы, в основном, были однотипными и либо не решались вовсе, либо решались в течение одной минуты, что было связано с банальными ошибками в httpd.conf (забыли убрать комментарий, или, наоборот, что-то куда-то вставить, и т.д.)

В этот самый момент мне и подумалось: пожалуй, 3110 писем с прошлогоднего весеннего краха TheBat в папке, посвященной Apache, — это, мягко говоря, чересчур. Нужно было что-то срочно предпринять. Вот так и появилась идея создания «Джентльменского набора Web-разработчика».

Насчет людей, участвующих в проекте, можно сказать много хорошего. Итак, в ролях:

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

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