Денвер. Must have

Ты пишешь скрипты для своего сайта? Нет? Нужно ведь ставить nix, настраивать веб-сервер, Perl, PHP, базы данных. Придется читать длиннющие, запутанные, порой противоречащие друг другу мануалы, попутно разбираться в тонкостях работы с малознакомой осью. Ужасно, я тебя понимаю. Но эта проблема решаема.
А веришь, что, скачав около 3 Мб из инета, через 10 минут на своей машине ты будешь иметь полноценную среду для разработки и отладки
веб-скриптов? Аpache, SSI, ядро Perl, PHP4 с GD и MySQL. MySQL с поддержкой транзакций (mysqld-max), phpMyAdmin — полная система
управления MySQL через Web-интерфейс. Под Windows. С виртуальными хостами и Sendmail. Я тоже сначала не верил…
Денвер (Джентльменский Набор Web-Разработчика) - это модульная система, позволяющая за несколько шагов организовать целую
лабораторию для веб-программиста. Ядро системы - базовый комплект. Оно весит всего чуть больше трех метров.
Разъяснять что и как ставить не буду — есть подробный мануал на сайте . Единственный хинт - делай все как скажет инсталятор и все будет OK, и еще не пугайсь консольного инсталятора! После установки на рабочем столе появится три ярлыка, по названиям, я думаю, ты сможешь разобраться, зачем они.
Щелкай на «Start servers». В консольных окошках отработает стартовый скрипт, и в трее появится знаменитое перышко - логотип Apache. Запускай браузер и пиши http://localhost. Перед тобой открылась страничка, сгенерированная твоим только что запущенным сервером. С рекламой — куда уж без нее. Ну ладно, дело не в этом. Смотрим чуть ниже. Там расположены ссылки, позволяющие протестировать работу нашей системы, линк на phpMyAdmin - администраторский инструмент управления базой и маленький скриптик для быстрого добавления нового пользователя в базу данных.
Осматриваем владения
Давай посмотрим, что у нас есть на только что созданном виртуальном диске и каково азначение этих папок и файлов. В корне диска четыре директории: usr, tmp, home,etc — и файлик readme (но тебе же будет лень его читать, правда?).
etc. В нем находятся три программы старта и стопа серверов (ярлыки на них лежат на десктопе), скрипты на Perl и информация о конфигурации системы (в каком порядке и с какими параметрами будут запущены те или иные сервисы).
home. Тут находятся виртуальные хосты нашего сервера и все их содержимое. Позже я подробнее остановлюсь на этом.
tmp. Временный каталог. Нам с тобой он прежде всего будет интересен вот чем: помнишь, я говорил, что в системе есть
Sendmail? На самом деле я немножко слукавил. Сендмэйл здесь неполноценный, отправить письмо через него ты не сможешь, да
Денвер и не предназначен для этого. Тем не менее, скрипты, требующие отсылки почты для своей работы, вполне удовлетворятся и
этой урезанной версией. Все письма, отсылаемые скриптами, сваливаются в temp!/sendmail. Посмотреть их содержимое можно как непосредственно с диска, так и по ссылке http://localhost/Test/sendmail/index.php. Там же можно протестировать работу Sendmail.
usr. Возможно, самый важный каталог, если такое выражение вообще допустимо. В нем находятся исполняемые файлы интерпретаторов PHP и Perl, веб-сервера, базы данных, а также Sendmail. Наибольший интерес представляет домашний каталог Апача (usrlocalapache). В папке
bin лежат две утилиты: ab.exe (ApacheBench) для проверки роизводительности веб-сервера и htpasswd.exe для создания аутентификационных файлов пользователей. В дире conf расположены три главных настроечных файла Апача. Это httpd.conf -основной конфигурационный файл, vhosts.conf — описание виртуальных хостов
(генерируется автоматически при старте системы), а также mime.types - правила обработки данных того или иного типа, которые посылаются сервером. Настройки PHP находятся в файле usr/local/php/php.ini. Конфигурация MySQL лежит в usr/local/mysql/my.cnf.
wartix.h15.ru на твоем компе!
Виртуальные хосты — очень удобный механизм. Благодаря ему можно на одной физической машине с одним IP-адресом содержать сразу несколько сайтов, соответствующих разным доменным именам. Несмотря
на то, что запросы физически шлются на один и тот же сервер, Apache, анализируя заголовок запроса (а именно поле Host), понимает, какой именно из серверов нужен пользователю. Денвер позволяет добавить
или удалить новый виртуальный хост за два шага. Чтобы добавить новый хост, нужно создать в каталоге home подкаталог с именем создаваемого хоста (например, microsoft.com), затем внутри него сделать каталог www. В этот каталог нужно помещать файлы, которые должны быть доступны по
запросу к хосту www.microsoft.com. Для создания поддомена нужно сделать каталог с именем этого поддомена. Если тебе нужно создать виртуальный хост с доменом более высокого уровня, можно воспользоваться вот такой конструкцией: homevery.long.domain.name.ru/www2. Чтобы изменения, внесенные тобой в структуру каталогов, обрели силу, нужно
перезапустить серверы. Надо сказать, из-за моей ламучести у меня не каждый раз получалось заставить заработать только
что созданные домены с помощью ярлыка «Restart servers». Зато полная остановка и повторный запуск решили проблемы. Каждый раз при запуске Денвер анализирует положение вещей в каталоге home и на
основе этого изменяет файл WINDOWS/system32/drivers/etc/hosts (для
Windows 95/98 - WINDOWS/hosts), который содержит данные об IP-адресах некоторых хостов. Данные из этого файла наиболее приоритетны для виндовой службы DNS, поэтому каждое его изменение отражается на том, как будут резольвиться имена хостов. Да, если тебе нужно, чтобы какие-то твои сайты были доступны по IP-адресу, поступай таким же образом:
home/192.168.111.111/www. Последний каталог (www) необходим.
MySQL
Первое, что тебе придется сделать, - добавить нового пользователя базы. Это можно сделать здесь: http://localhost/addmuser.php. Благодаря этой замечательной штуке, можно на локальной машине полностью воссоздать те условия, в которых будет работать твой скрипт на реальном хосте. Ведь твой провайдер вряд ли будет долго задумываться над тем, какой именно логин и пароль тебе выдать, и ты получишь что-то вроде user231:5Mck58tv. Один из самых мощных инструментов администрирования БД — phpMyAdmin. Он доступен для тебя по адресу http://localhost/phpMyAdmin. Описать все его возможности здесь нереально: он способен решить практически любую задачу, связанную с отладкой базы. С его помощью ты сможешь создавать и модифицировать базы и таблицы, видеть состояние, загруженность, внутренние процессы
в БД, и, пожалуй самое ценное, бэкап и восстановление баз. Уверен, ты сам разберешься с функциями и интерфейсом phpMyAdmin. Он русскоязычный, все подробно объясняется.
Расширение базового пакета
Все, о чем было сказано выше, реализуется базовым комплектом. И тех услуг, которые он предоставляет, скорее всего, будет достаточно для создания/установки/отладки скриптов средней сложности, ведь разработчики и позиционируют своё детище как набор инструментов для отладки сайтов. Но может случиться, что становятся нужны и не реализованные в базовом комплекте функции, например, Perl, Parser, etc. В этом случае на помощь приходят расширения Денвера. Описывать их бессмыслено, так как они постоянно пополняются и модифицируются.
Я надеюсь, теперь ты понимаешь, что в создании удобной среды веб-разработчика нет ничего сложного. Дело за малым — начинай
творить. И вообще покопайся на офсайте разработчика, там много ответов на вопросы начинающим, а если что-то не понятно — всегда можно спросить на форуме. Желаю творческих успехов!
* На самом деле, статья уже немного устарела, так как о Денвере просто обязан знать каждый уважающий себя веб-кодер, но недавно я присутствовал на одной конференции и там в подробностях объясняли как установить Апач и PHP, чтобы отлаживать сайты…
Статьи, 15/04/06
Fork09
