- Устанавливаем Денвер
- Подготовка к работе с сетью
- Установка дистрибутива
- Первый запуск Денвера
- Работа с виртуальными хостами
- Воюем с Контроллером удаленного доступа
- Воюем с прокси-сервером
- Решение проблем
- Возможности проекта
- Гербалайф, гербалайф.
- Пакеты расширений
- Архитектура
- Зачем вообще нужен локальный сервер?
- Кто и зачем это делал
Устанавливаем Денвер
Итак, вы решили установить Денвер. Он имеет нечто вроде ядра, или «сердца» — так называемый «базовый пакет», занимающий около 5.5 MB. Все остальное поставляется в виде пакетов расширений, о которых речь пойдет в других статьях (см. Содержание). Базовый пакет содержит большинство необходимых программ и утилит:
- Инсталлятор (поддерживается также инсталляция на 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 и т.д.
Подготовка к работе с сетью
Чтобы сразу расставить все точки над «ё», давайте убедимся, что ваш компьютер действительно настроен для работы с сетью. Обычно именно так и бывает по умолчанию, но все же.
Итак, самый простой тест: откройте Пуск — Выполнить и введите там команду:
После нажатия Enter вы должны увидеть примерно следующую картину:
Процесс продолжается несколько секунд. Если вы это видите, то все в порядке, и вы можете приступать к инсталляции дистрибутива. Если же, например, окно лишь «мигнет» (откроется и тут же закроется), либо же будут выведены какие-нибудь нелицеприятные сообщения, значит, сетевые протоколы у вас не установлены, а потому читайте дальше.
Вы, наверное, уже поняли, что ваша задача сейчас — добиться, чтобы адрес 127.0.0.1 «пинговался». В случае проблем:
- Пользователям Windows 98/ME необходимо зайти в Панель управления — Установка и удаление программ — Установка Windows и добавить там Удаленный доступ к сети. При этом автоматически установятся и все нужные протоколы.
- Пользователям Windows 2000, XP, 2003, Vista, Windows 7 и т.д. — проверить, что команде ping не мешает установленный вручную антивирус или фаервол. Попробуйте отключить эти программы: если помогает, то нужно разбиратся с их настройками.
Установка дистрибутива
Запустите скачанный инсталлятор Денвера. Вы увидите перед собой нечто вроде следующего:
Вас спросят о том, в какой каталог вы хотели бы установить комплекс (по умолчанию используется C:\WebServers , вам нужно лишь нажать Enter , чтобы согласиться с этим выбором). В указанном каталоге будут расположены абсолютно все компоненты системы, и вне его никакие файлы в дальнейшем не создаются (исключая ярлыки на Рабочем столе).
Далее вам предложат ввести имя виртуального диска, который будет связан с только что указанной директорией. Рекомендуем вам согласиться со значением по умолчанию ( Z: ). Важно, что диска с этим именем еще не должно содержаться в системе — чаще всего так и происходит с диском Z: .
После этого начнется копирование файлов дистрибутива, а под конец вам будет задан вопрос, как именно вы собираетесь запускать и останавливать комплекс. У вас есть две альтернативы:
- Создавать виртуальный диск при загрузке машины (естественно, инсталлятор позаботится, чтобы это происходило автоматически), а при остановке серверов его (диск) не отключать. На мой взгляд, это наиболее удобный режим, и я сам пользуюсь только им.
- Создавать виртуальный диск только по явной команде старта комплекса (при щелчке по ярлыку запуска на Рабочем столе). И, соответственно, отключать диск от системы — при остановке серверов.
Собственно, вот и все. Вы сможете выполнить установку комплекса, имея всего 2 клавиши на клавиатуре: Enter и Y (чтобы ввести Yes).
Первый запуск Денвера
Наконец, установка завершена. Сразу же щелкайте по созданному инсталлятором ярлыку Start Denwer на Рабочем столе, а затем, дождавшись, когда все консольные окна исчезнут, открывайте браузер и набирайте в нем адрес: http://localhost/denwer/ . Выходить из Интернета при этом не обязательно.
Если тестовая страница все же не загрузится, проверьте:
- Отключен ли у вас прокси-сервер в настройках браузера? Подробнее здесь.
- Запущен ли Денвер? Если да, нет ли ошибок при щелчке на пиктограмме пера (справа внизу)?
- Не запущен ли у вас какой-то другой Web-сервер, который мешает Денверу (часто бывает в Windows XP)? Например, Microsoft IIS? Если да, отключите его.
Наконец, если ничего не помогает, загляните в список часто задаваемых вопросов, а затем, если проблема не решится, отправьте детальное описание ошибки в форум.
Денвер прошел тестирование в следующих ОС:
- Windows 95/98/ME;
- Windows NT/2000/XP/2003;
- Windows Vista, Windows 7.
Работа с виртуальными хостами
Если вы занимаетесь разработкой Web-сайтов, вам наверняка хотелось бы обслуживать одним сервером сразу несколько хостов. Иными словами, введя в браузере путь http://localhost , вы попадете на один сайт, а, напечатав http://test1.ru , — совсем на другой (но тоже на локальной машине).
Добавить новый виртуальный хост в Денвере чрезвычайно просто. Пусть это будет test1.ru . Вам нужно проделать следующее:
- Создать в папке /home директорию с именем, совпадающим с именем виртуального хоста (в нашем случае test1.ru ). Да-да, вы правильно поняли: имя директории содержит точку. Эта директория будет хранить директории документов доменов третьего уровня для test1.ru . Непонятно. Например, имя abc.test1.ru связывается сервером с директорией /home/test1.ru/abc/ , а имя abc.def.test1.ru — с /home/test1.ru/abc.def/ . Ну и, конечно, поддиректория www соответствует адресам www.test1.ru и просто test1.ru . В общем, дешево и сердито. На рисунке показано, как может выглядеть директория /home . Не забудьте создать папку www в директории виртуального хоста, ведь именно в ней будут храниться его страницы и скрипты!
- Перезапустить сервер, воспользовавшись, например, ярлыком Restart Denwer на Рабочем столе.
Это все, что нужно сделать. А где же, вы спросите, модификация httpd.conf и файла hosts . Ее просто нет. Файл httpd.conf вообще не меняется никогда. Чуть посложнее с файлом hosts : он модифицируется автоматически, подстраиваясь под текущую конфигурацию каталогов в /home . При этом используется весьма интеллектуальный алгоритм для распознавания, какие хосты были внесены Денвером, а какие пользователь добавил самостоятельно, вручную (если он, конечно, захочет это сделать). То есть, автоматическое изменение файла hosts еще не означает, что в нем пропадут все комментарии и вы не сможете больше никогда редактировать его «руками». И, конечно, при остановке комплекса по ярлыку Stop Denwer файл hosts восстанавливается в то состояние, которое и должно быть.
Воюем с Контроллером удаленного доступа
Как только вы начнете создавать виртуальные хосты, Контроллер удаленного доступа на некоторых системах может сойти с ума. Он будет при первом открытии хоста предлагать вам альтернативу наподобие следующей:
или даже вот так:
Слава богу, это происходит не каждый раз. Видите, как он извивается, чтобы только не дать человеку поработать. Так вот, в этом случае вы должны быть тверды: всегда выбирайте Подключиться или Повторить.
Но если ваш Контроллер удаленного доступа закусил удила и на ответ Подключиться начинает яростно набирать номер на модеме, идите в Сервис — Свойства обозревателя — Подключение и в разделе Настройка удаленного доступа поставьте флажок Не использовать (или Never Dial a connection).
Воюем с прокси-сервером
Многие версии Windows поставляются со включенным по умолчанию прокси-сервером. Это может вызвать кое-какие проблемы при работе с Денвером (впрочем, легко разрешимые).
- Если после запуска Денвера страница http://localhost не работает, вероятнее всего, вам нужно отключить прокси-сервер в настройках браузера. Для «простых» хостов (вроде localhost , test , dklab и т.д.) обычно достаточно флажка «Не использовать прокси-сервер для локальных адресов» на вкладке Свойства обозревателя — Подключение — Настройка сети — Дополнительно.
- Если localhost работает, а test1.ru (и вообще хосты, имя которых состоит из нескольких частей) — нет, то, вероятно, ваш браузер не может распознать последний хост как локальный. Такое, увы, бывает. Вам необходимо либо полностью отключить прокси-сервер, либо же перечислить хосты в списке Подключение — Настройка сети — Дополнительно — Исключения.
Решение проблем
Прежде, чем кидаться задавать вопрос в форум, проверьте: возможно, ответ уже есть в списке часто задаваемых вопросов по Денверу. С вероятностью 85% так и окажется: ведь вы не первый, кто использует проект.
Если же в FAQ ответа на ваш вопрос нет, задайте его в форуме.
Возможности проекта
Про установку сервера и различных дополнений к нему написано несколько статей, одну из которых — свою — я не устаю приводить в ссылках: 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-хостером при старте создается специальный виртуальный диск, присоединенный к основной директории.
За счет применения виртуального диска Денвер «изнутри» похож на маленький Unix: у него есть своя директория /home, /usr, /tmp. Различные компоненты и серверы расположены так, как это принято в Unix. Например, в /home располагаются виртуальные хосты, а в /usr — программные компоненты.
Вопреки распространенному мнению, Денвер не является чем-то статическим и неизменным. Никто не мешает вам устанавливать поверх него дополнительные программы и компоненты (например, сервер СУБД PostgreSQL). Они просто будут для него «как родные». Вы можете также задавать логику запуска и завершения дополнительных сервисов по аналогии с тем, как это сделано в базовом пакете. Так что, если вам нужна какая-то система, которой нет в пакетах расширений, смело ставьте и конфигурируйте ее вручную.
Итак, если вы решили установить Денвер, ознакомьтесь со статьей Устанавливаем Денвер. Там же вы найдете и ссылки на необходимые дистрибутивы. Удачной работы.
Зачем вообще нужен локальный сервер?
В последнее десятилетие во всем мире наблюдается настоящий бум среди Web-разработчиков (по преимуществу это программисты). Они устанавливают у себя на Windows-машине сервер Apache с различными дополнениями к нему: PHP, Perl, MySQL и т.д. — преимущественно в целях более удобной отладки сайтов.
Многие (преимущественно дизайнеры) могут спросить: зачем вообще нужен локальный Web-сервер, когда страницы можно открывать и так — прямо с диска? Если это обычные (статические) HTML-страницы, то да, сервер не нужен. Однако даже для такой мелочи, как SSI (Server-side Includes — директивы в страницах, позволяющие вставлять на нужное место содержимое других файлов), уже необходим сервер. Не говоря уж о скриптах — они без сервера просто не запустятся.
Обычно все эти проблемы решают при помощи FTP-клиентов: закачивают исправленные страницы и скрипты на «настоящий» сервер в Интернете, смотрят, что получилось, затем лезут в редактор, исправляют, снова закачивают и т.д. до бесконечности. Главный недостаток такого подхода очевиден: необходимо все время быть подключенным к Интернету. Также очень желательно иметь хорошую связь, потому что в противном случае работа будет продвигаться крайне медленно.
Мне относительно регулярно приходят письма со следующим — обычно завуалированным — вопросом: чем отличается «просмотр страниц, открывая файл в браузере» от «просмотра с использованием сервера». В первом случае вы выбираете в меню что-то вроде Файл — Открыть — Обзор и выбираете нужный файл на диске. Браузер показывает его без всякой обработки, и путь в его адресной строке выглядит примерно вот так:
Если же вы открываете страницу «через сервер», происходит совершенно иное. Вообще, вы должны привыкнуть к мысли, что ваш «локальный» сервер ничем не хуже любого другого, расположенного в Интернете. А значит, он тоже содержит сайты (один или несколько), у каждого из которых есть определенное имя. Доступ к этим сайтам осуществляется, как обычно: вы указываете в адресной строке URL — обычно имя сайта и путь к документу на нем:
Уже при сравнении этих двух картинок можно видеть, что при открытии страницы «через браузер» пользователь в общем случае видит совсем не то же самое, что при открытии файла (сравните хотя бы заголовки окон).
Кто и зачем это делал
Все началось с того, что однажды вечером я получил очередную пачку писем от пользователей статьи Apache + Perl + PHP4 + MySQL для Windows 95/98: руководство по установке (хорошо еще, что электронных). Вопросы, в основном, были однотипными и либо не решались вовсе, либо решались в течение одной минуты, что было связано с банальными ошибками в httpd.conf (забыли убрать комментарий, или, наоборот, что-то куда-то вставить, и т.д.)
В этот самый момент мне и подумалось: пожалуй, 3110 писем с прошлогоднего весеннего краха TheBat в папке, посвященной Apache, — это, мягко говоря, чересчур. Нужно было что-то срочно предпринять. Вот так и появилась идея создания «Джентльменского набора Web-разработчика».
Насчет людей, участвующих в проекте, можно сказать много хорошего. Итак, в ролях:
Дмитрий Котеров Автор проекта «Денвер». Антон Сущев (Ant) Ведущий разработчик функционала Денвера. Модерация форума. Михаил Ливач (Maus) Поддержка пользователей. Помощь в разработке Денвера.
И, конечно, все это работает лишь потому, что разработчики Apache, PHP, Perl, MySQL, phpMyAdmin и т.д. трудились и трудятся в поте своего лица (и не только), создавая программы и серверы, пользующиеся теперь такой популярностью. Спасибо вам!