Сервер в один клик! Поднимаем веб-демон быстроАлександр Лозовюк (alex.raiden@gmail.com) «Сделать так, чтобы все заработало». Отличная кнопка, которая в идеале должна быть у каждой программы, начиная от маленькой утилитки и заканчивая тяжелым сервером. Увы, встретить ее удается нечасто, но и тут бывают исключения. Особенно если речь идет о веб-сервере! Когда-то давно можно было заполучить ящик пива, поспорив с другом, что за 2-3 минуты сможешь поднять полноценный веб-сервер с кучей интерпретаторов, СУБД и даже некоторыми служебными скриптами. Сейчас, к сожалению, такой фокус не пройдет – любой, кто когда-либо пытался запустить или написать свой скриптик, слышал о качественной российской разработке Denwer. Нисколько не хочу задеть чувства серьезных хакеров и администраторов, знающих опции конфигурирования Apache и настройки JRuby, но во многих случаях очень хочется иметь именно ту, уже упомянутую, волшебную кнопку. Не качать и компилировать, не править исходники и не копаться потом в настройках, заодно проверяя совместимость всего со всем (в том числе, с твоим характером) — а просто запустить сервер. Набор веб-джентльменаДжентльменский пакет веб-разработчика, или Денвер (http://denwer.ru), разработан Дмитрием Котеровым, который многим известен как автор популярных книг по PHP. В наши дни штука кажется довольно незатейливой, но на деле оказывается исключительно полезной. В базовый вариант включен настроенный веб-сервер, почтовый сервер для отладки, PHP, Perl и MySQL – все хозяйство умещается в крохотный инсталлятор размером в 4 Мб. Это означает, что в угоду миниатюрности все лишнее с дистрибутива безжалостно выброшено. Недостаточно функциональности? Ты всегда можешь расширить тот или иной компонент, загрузив модули с сайта: модули PHP, СУБД PostgreSQL, полная версия MySQL, пакеты ActivePerl и Python и даже Parser 3. Denwer ставится в указанную директорию и имеет свою панель запуска, полностью затирая за собой все следы, когда дана команда остановки. Поэтому сервер можно ставить на любой компьютер и даже на флешку – и всегда носить с собой кусочек интернета. Главным же в Denwer’е, по праву, считается система виртуальных доменов. Работает она следующим образом. Для создания сайта по адресу site.com достаточно в директории home создать папку с именем сайта, а внутри - папку www, которая и будет корневой для сайта. Конечно, все эти адреса будут работать только после перезапуска Denwer’а, так как для нее создаются записи в системном файле hosts и автоматически создается vhosts.conf для Apache. Так что, тебе, в принципе, ничего не надо особо делать - создал структуру директорий и вперед, создавать сайты!
Ищем кроссплатформенный инструментСерьезный недостаток Денвера – работа исключительно под окнами. Для более серьезной работы уже давно обосновался другой лидер – пакет XAMPP (www.apachefriends.org/en/xampp.html), который работает во всех распространенных ОС (а значит, в Windows/Linux/MacOS/Solaris). Полная версия помимо стандартной связки Apache/MySQL/PHP включает еще множество дополнительных библиотек, встроенный акселератор РНР-скриптов, FTP-сервер, поддержку SSL и многое другое. Ты можешь установить Lite-версию, представляющую собой упрощенный и легкий пакет для предельно быстрого старта сервера. В пакете есть собственная система управления и мониторинга статуса сервера, небольшая программа для выборочного запуска или остановки отдельных сервисов. Так же, как и Denwer, XAMPP поддерживает плагины: с офсайта ты можешь взять Tomcat, более новый Perl и специальные инструменты для разработки и отладки. По возможностям XAMPP Lite примерно равен нашему Denwer’у, разве что в нем больше библиотек, да и размер солидный (шутка ли, 43 Мб против всего лишь 4-х у Denwer-а). Но посмотрим на это с другой стороны: привычной системы виртуальных хостов тут нет. Справедливости ради стоит сказать, что их нет вообще нигде, кроме Денвера. Вот здесь тебе все же придется поработать руками и головой, вручную настраивая их через конфиги Apache. Впрочем, знания настроек сервера, если ты метишь в солидные программисты, еще никому не помешали.
Удобная панель управленияДругая разработка, UniformServer (http://www.uniformserver.com) – во многом более продвинута и дружественна к пользователю, чем все остальные. При этом она включает в себя все основные компоненты, хоть и несколько устаревших версий (последняя версия сервера, 3.5, вышла в середине 2008 года, однако уже идет разработка следующей), и, что интереснее всего, мощную систему администрирования и управления настройками прямо в браузере. Настроить Apache, сконфигурировать MySQL или посмотреть параметры PHP - можно при помощи простой веб-панели. Дополнительно можешь загрузить небольшую программу UniTray, которая вынесет наиболее нужные действия в меню в трее. Среди расширений, доступных на сайте, отмечу FTP-сервера. Для Java-разработки ты вправе выбирать между классическим Tomcat или продвинутым Resin. По сравнению с XAMPP размер инсталляционного файла просто поражает - всего 7 Мб, к тому же девиз разработчиков звучит очень привлекательно: «Just unpack and RUN!». Минусом можно считать только поддержку Win32-платформы, однако часто ли тебе надо работать на MacOS или Solaris? UniformServer станет идеальным выбором, если ты с друзьями создаешь веб-студию или развертываешь сервер для тестирования своих скриптов в случае фриланса. Некоторая ограниченность всех подобных серверов – в том, что их компоненты заранее подобраны и настроены. То есть, просто скачиваешь и используешь и максимум, что ты в силах еще сделать – это доставить расширения. Обычно в составе таких пакетов есть одна или две версии РНР, 4 и 5, но что делать, если очень хочется работать с несколькими версиями (и не одной-двумя, а больше)? Ставить столько сборок того же Denwer-а или XAMPP, сколько разных версий тебе надо, а потом мучаться с копированием своих разработок на каждый сервер в отдельности? Или долго копаться и изучать возможности настройки сервера, разнеся различные версии интерпретатора РНР по разным виртуальным хостам? Но эта работа по сложности приближается к созданию собственного проекта уровня XAMPP Lite! А что если... ага, и здесь уже другие подумали, создав разработку WAMPserver (http://www.wampserver.com), которая мало чем выделяется среди аналогов, кроме одного одной интересной опции. Я говорю об изначально встроенной панели управления, представляющей собой крохотную программу в трее. Прямо через контекстное меню реально настроить любые параметры. Для РНР можно выборочно включать и выключать модули расширения и опции конфигурации – то же самое доступно и для Apache c MySQL. Более того, WAMPServer позволяет установить и использовать сразу несколько версий каждого компонента, предоставляя своеобразный конструктор. Хочешь Apache 1.3 + PHP 5.1.2 и MySQL 5.1.30? Пожалуйста, пара кликов мышью в меню – и все работает. И сейчас это единственный дистрибутив, который сразу установит тебе самые последние версии всех компонентов, без необходимости вручную что-либо скачивать и доустанавливать. WAMPserver – идеальный инструмент для тестирования приложений, которые должны работать в любых условиях, даже если на сервере PHP двухлетней давности. Порекомендуй этот продукт другу, который делает сайты, или местной веб-студии, думаю, благодарность не заставит себя ждать!
Любые сервера и приложения за минутуКомпания BitNami появилась на рынке относительно недавно, но со смаком выкладывает в открытый доступ все свои продукты. В первую очередь это набор стеков технологий - в него входят веб-сервер, обычно Apache, база данных MySQL, а также все дополнительные библиотеки и модули. В пакеты включены интерпретаторы языков программирования: в зависимости от типа стека это PHP, Python, Ruby или Java. Они дополняются системами администрирования типа phpMyAdmin для управления базами данных. Если хочешь быстро начать разработку или просто запустить какой-то скрипт, то такого стека вполне достаточно, чтобы уже спустя пять минут (после скачивания и установки) начать полноценную работу. Для экспериментов доступны следующие пакеты:
Используя эти пакеты, ты просто запускаешь инсталлятор и получаешь готовую рабочую среду со всеми настройками. Но ведь просто стеков мало, да и клюнут на них лишь начинающие разработчики и любители поиграться. BitNami пошли еще дальше. В их распоряжении есть интереснейшая технология, позволяющая создавать инсталляции любого веб-приложения. При этом не надо ничего настраивать и конфигурировать - все программы, от простейшего Wordpress до сложнейших бизнес-систем SugarCRM или JasperServer, ставятся в пару кликов и сразу готовы к работе. Конечно, это не для реального применения на сервере, скорее - просто демонстрационные версии популярного ПО. Но зачем тащить за собой целую ОС и сотни мегабайт, если часто достаточно небольшой исполняемой среды! Так что, BitNami сделала отличную альтернативу виртуальным машинам для многих случаев. Кстати, по всем правилам Web 2.0, ты можешь голосовать за программы, которые будут вскоре первыми доступны в виде пакетов. Сейчас как раз идет голосование (http://bitnami.org/polls) и выбирается десятка популярного ПО, – что же первым перенести на стек BitNami. Возможно, Asterisk – идеальный кандидат (это приложение сложно без подготовки поставить и запустить, а вот попробовать его в работе очень даже хочется).
Работаем в команде разработчиковBitNami – лишь решение для быстрого показа уже готовых программ и веб-приложений. А что делать, если охота самому начать разработку, но времени и знаний на развертывание всего набора серверов нет? Для быстрой разработки веб-скриптов или запуска на своем компьютере небольшого хостинга есть куча разработок и неважно, Windows у тебя, Linux или крутая OpenBSD. Достаточно загрузить установочный пакет и запустить его - через пять минут можешь открывать свою любимую IDE и кодировать веб-сайт. Как минимум, у тебя сразу будет вместе с веб-сервером и база данных, и система управления всем хозяйством, и даже простой почтовый сервер. Крутые пакеты, кроме этого, предоставят еще и свою систему быстрой настройки виртуальных серверов - тогда создать сайт www.microsoft.com на своем компе будет раз плюнуть. Да и просто устанавливать и тестировать различные веб-скрипты лучше на разных доменах, а не безликом локалхосте. Если же речь зашла об организации сервера в небольшой веб-студии или для группы фрилансеров, то обрати внимание на проект Naraio (http://sourceforge.net/projects/naraio). Изначально он ориентирован на организацию сервера для группы разработчиков, содержит, кроме классического набора компонент, еще и дополнительные программы, установка которых на другие пакеты затруднительна. Тебе в помощь будут OpenLDAP и Subversion, дополнительные интерпретаторы Python и Ruby, а также интегрированный пакет Trac для организации процесса разработки в коллективе. Все это не просто отдельные программы, а настроенные на совместную работу в единой среде, к примеру - Trac и SVN использует OpenLDAP для управления учетными записями, поэтому, один раз установив этот сервер, дальше достаточно будет добавлять пользователей через панель управления (phpldapadmin). С таким набором можно смело начинать свою фирму!
Server shutdownКак видишь, для организации простого сервера совсем необязательно тратить целый день на перебор различных вариантов программ и копаться в настройках и конфигурациях. В большинстве случаев, если надо что-то запустить по-быстрому (для работы или испытания), достаточно будет готовых пакетов, в которые сразу входят все необходимые компоненты. Такие пакеты часто не требуют инсталляции и готовы работать сразу после запуска, неважно – с флешки или жесткого диска. Даже обычный мобильный телефон с легкостью превращается в переносной сервер! Для создания собственного сервера и активных экспериментов с PHP-скриптами я бы рекомендовал отечественный Denwer. Если хочешь попробовать, как твой проект будет работать в разных окружениях, испытай его при помощи WAMPserver-а, в котором доступны даже самые последние альфа и бета-версии PHP и MySQL. А если друг попросит помочь на фирме, поставь им UniformServer или Naraio и всем будет счастье! Но помни, что такая простота обманчива - если не разбираться в тонкостях работы всей этой системы, никогда не станешь по-настоящему профессиональным разработчиком! Малы да удалыЕсли считаешь, что все эти сервера – для ламеров и неудачников, то ты отчасти прав! Разрабатывая крупные программы, хорошо бы встроить какой-то простой веб-сервер. Иногда же, ради одного маленького скрипта, жаль устанавливать монстров типа Apache. Здесь тебе помогут маленькие и специализированные сервера, часто призванные исполнять одну единственную функцию или скрипт – зато очень и очень быстро. Например, Pi3Web (http://www.pi3.org) - многопоточный HTTP 1.1 сервер на С++, оптимизированный для работы с CGI/FastCGI-протоколами, может использовать встроенный интерпретатор РНР или исполнять Java-сервлеты. А при помощи Yass (http://yaass-project.sourceforge.net) несложно реализовать аналог медиа-сервера с Apple iTunes интерфейсом на Flash-e, который сможет раздавать по Сети твою MP3-музыку. Посмотри также на httcld – небольшой сервер со встроенным интерпретатором Tkl, предназначенный для поддержки веб-интерфейсов Linux-программ. Поклонникам С++ (и ненавистников java) советуем CPPSERV (http://sourceforge.net/projects/cppserv) - простой сервер, реализующий Servlet-API для программ на С++. На нем можно написать очень быстрые многопоточные демоны, используя только С++ и никакого РНР! В противовес этому для Java есть простейший встраиваемый серверный движок Simple, который, несмотря на миниатюрность, имеет мощный API и расширяемую компонентную структуру. Его отлично можно использовать для небольших сетевых приложений на Java, исключая необходимость в сложных серверах вроде Tomcat. Хорошим реальным применением этого движка стал RESTles (http://www.restlet.org) - фреймворк для построения REST-сервисов (это простые сетевые приложения, которые реагируют на HTTP-команды). Переносной сервер Portable-сервер? Команда разработчиков Uniform-а пошла еще дальше, чем Денвер, который можно запустить прямо с флешки. Компания представила семейство MiniServer - набор небольших пакетов, каждый из которых самодостаточен для демонстрации того или иного скрипта, программы или функциональности. Такой подход аналогичен продуктам BitNami, только построен на открытой основе. Сейчас существует несколько MiniServer-ов, например - Apache, Apache + PHP, MySQL 4/5, ReverseProxy, Joomla, PhpBB, XOOPS, Wordpress и MediaWiki. Каждый сервер может работать как portable-версия или системный сервис. Загрузить их пока что можно только на странице проекта на SourceForge.net: http://sourceforge.net/project/showfiles.php?group_id=53691&package_id=275691 DVDПоследние доступные версии каждого из пакетов ты найдешь на нашем DVD-диске. |