Возможности проекта
Про установку сервера и различных дополнений к нему написано несколько статей, одну из которых — свою — я не устаю приводить в ссылках: 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 — программные компоненты.
Вопреки распространенному мнению, Денвер не является чем-то статическим и неизменным. Никто не мешает вам устанавливать поверх него дополнительные программы и компоненты (например, сервер СУБД 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 и т.д. трудились и трудятся в поте своего лица (и не только), создавая программы и серверы, пользующиеся теперь такой популярностью. Спасибо вам!