История создания
История зарождения Drupal во всех источниках начинается с 2000 года, когда студенты Антверпенского университета Дрис Байтаерт (Dries Buytaert) и Ханс Снейдер (Hans Snijder) установили беспроводную связь между своими студенческими общежитиями, чтобы совместно использовать ADSL-модем Ханса среди восьми студентов.
Это подтолкнуло Дриса, который и по сей день считается основателем и руководителем проекта, на создание небольшого сайта новостей со встроенной доской объявлений. Это позволило группе друзей оставлять друг для друга сообщения о состоянии сети, сообщать, где они обедали, или совместно обсуждать оставленные на сайте новости.
Программное обеспечение не имело названия до того дня, пока Байтаерт не выехал из общежития после окончания университета. Группа решила поместить внутренний сайт в Интернет, для того чтобы поддерживать отношения, продолжать обмениваться интересными сведениями и рассказывать истории из личной жизни.
Ища подходящее доменное имя, Байтаерт остановился на drop.org, после того как он сделал опечатку, пытаясь проверить, свободен ли домен dorp.org (dorp — голландское слово «деревня», которое они считали подходящим для своего маленького сообщества).
Аудитория нового сайта со временем сменилась на интересующихся развитием новых веб-технологий, и новый сайт постепенно перешел из любительского эксперимента в проект по обсуждениям идей веб-программирования. Обсуждения этих интернет-технологий были испытаны на drop.org непосредственно как новые добавления к программному обеспечению, обслуживающему сайт.
В январе 2001 года Байтаерт решил выпустить программное обеспечение для drop.org под названием Drupal. Особенности программы должны были дать возможность другим использовать и расширять платформу экспериментирования так, чтобы больше людей могли исследовать новые пути для развития.
Сообщество
На сегодняшний день людей, использующих Drupal, так много, что их действительно можно назвать сообществом. Небольшой внутрисетевой проект разросся до международных масштабов, определился со своей целью и даже, если так можно выразиться, с миссией.
Своей основной задачей основатели и теперь уже большое число последователей считают поддержку и расширение возможностей Интернета в качестве среды, где разные и географически разделенные люди и группы людей могут обменяться информацией и идеями. Уделяя особое внимание сообществам и совместной работе, гибкость Drupal позволяет совместно работать в интерактивных информационных системах и сообществах.
Основной принцип — терпение и взаимовыручка. Drupal сегодня — это труд многих энтузиастов, основанный на добровольных началах. Поэтому если чего-то начинающему пользователю в этом движке не хватает, он не должен требовать этого от разработчиков, а вежливо пообщаться с более опытными веб-разработчиками на форумах. Возможно, этот вопрос уже кем-либо решен.
Взаимовыручка в сообществе Drupal — это посильный труд каждого на благо всего сообщества. Кто-то помогает тем, что переводит книги по Drupal с иностранных языков. Кто-то уже накопил достаточно опыта, чтобы помогать на форуме начинающим. Даже если новый пользователь ничего не делает, его вклад в том, что он пользуется этой CMS и наверняка рекомендует знакомым.
Наглядным примером такой помощи может быть поисковик, сделанный Вадимом Барсуковым. Эта поисковая система ориентирована на пользователей CMS Drupal и предназначена для поиска информации на русскоязычных сайтах про Drupal. Всего поисковик ищет по двадцати пяти русскоязычным сайтам, но разработчик обещал этот список расширять, за что ему благодарность и уважение от других пользователей.
Системные требования
Drupal в первую очередь ориентирован на платформу LAMP, но возможны варианты использования другого системного ПО. Другие требования:
- операционная система: семейство Unix (в том числе FreeBSD),
Mac OS X, Windows — любая ОС, на которой может работать интерпретатор PHP); - веб-сервер: Apache, Lighttpd — теоретически любой веб-сервер, допускающий исполнение PHP-кода);
- СУБД: MySQL, PostgreSQL;
- PHP версии 4.3.3 и выше.
Возможности
Высокая эффективность Drupal и гибкость в настройке создают предпосылки для его широкого применения. Десятки тысяч людей и организаций используют эту CMS для управления своими сайтами, включая:
- порталы сообществ;
- форумы;
- корпоративные сайты;
- внутрисетевые сайты;
- персональные сайты;
- сайты фанатов;
- блоги;
- магазины;
- справочники;
- социальные сети.
Более наглядный список сайтов, работающих на Drupal, можно посмотреть здесь. В числе оценивших функциональность этого движка можно найти Оззи Осборна, «Гринпис», Warnerbros Records и даже немецкий Playboy.
Drupal готов к работе сразу после загрузки. С пятой версии он имеет легкий в применении инсталлятор. Встроенная функциональность в сочетании со множеством свободно доступных дополнительных модулей позволяют организовать:
- среду совместной работы;
- системы управления содержанием;
- блоги;
- форумы;
- распределенные сети;
- информационные бюллетени;
- трансляции (podcasts);
- фотогалереи;
- файловые хранилища.
Техническая функциональность
Таксономия — механизм, позволяющий создавать произвольное количество тематических категорий для содержимого сайта и ассоциировать их с модулями, обеспечивающими ввод и вывод информации
Архитектура Drupal основана на концепции таксономии. Благодаря этому можно определить произвольное число рубрик, в которых будут в дальнейшем помещаться материалы сайта. Эти рубрики могут быть представлены как плоские списки или иерархические структуры произвольной вложенности (как древовидные, когда элемент имеет только одного родителя в иерархии, так и произвольные, когда элемент может иметь сразу нескольких родителей). В результате получаем такую схему: документы (nodes) различных типов (node types) ассоциируются с рубриками (terms), рубрики, в свою очередь, разбиваются на принадлежность к словарям (vocabularies). Такая схема позволяет выстраивать на сайте несколько независимых структур, ассоциируя одни и те же документы (как бы листья на структурном дереве сайта) с различными структурами. С помощью подобной схемы одними и теми же модулями возможна организация различных вариантов структуризации содержимого. Например, легко создается сквозной список ключевых слов для всех документов сайта и тому подобное.
Наиболее важные функции, предоставляемые модулями, входящими в поставку Drupal:
- единая категоризация всех видов содержимого — от форумных сообщений до блогов и новостных статей;
- вложенность категорий любой глубины;
- поиск по содержимому сайта;
- разграничение доступа пользователей к документам (ролевая модель);
- динамическое построение меню;
- поддержка XML-форматов:
- вывод документов в RDF/RSS;
- агрегация материалов с других сайтов;
- BlogAPI для публикации материалов с помощью внешних приложений;
- поддержка общей авторизации между сайтами на Drupal (сайты-партнеры);
- короткие URL;
- поддержка сменных тем оформления сайта с предоставлением нескольких готовых вариантов;
- поддержка переводов интерфейса сайта на разные языки;
- возможность создания сайтов с пересекающимся содержимым (например, общей базой пользователей или общими настройками);
- раздельные конфигурации сайта для различных виртуальных хостов (в том числе собственные — наборы модулей и тем оформления для каждого подсайта);
- механизм для ограничения нагрузки на сайт (автоматическое отключение при высокой посещаемости части информационных блоков и модулей).
Поддержка
Drupal является свободным программным обеспечением, распространяемым под лицензией GNU GPL. Это означает, что при использовании Drupal веб-разработчик получает полные исходные тексты, на которых он построен, и может вносить в них собственные изменения. Допустимо беспрепятственное использование Drupal в коммерческих проектах, разумеется, при соблюдении условий лицензии GNU GPL, которой защищены исходные тексты Drupal.
Необходимая документация поставляется вместе с Drupal, хотя ее гораздо больше на сайте drupal.org (также на drupal.ru). Каких-либо закрытых от пользователей аспектов реализации нет, поскольку Drupal является свободным ПО. Впрочем, по этой же причине документация по некоторым частям системы является не всегда полной, если вообще имеется. Побочный эффект открытых проектов — энтузиасты создают то, что им интересно, а написание документации далеко не всегда увлекательное занятие.
Поддержка сообщества — сильная сторона свободного ПО, поскольку пользователи и разработчики, для которых проект является в первую очередь увлекательным хобби, охотнее оказывают помощь, чем в коммерческих проектах, где вы, как правило, ограничены общением со службой поддержки. Учитывая, что Drupal и CMS вообще — развлечение людей в большинстве своем технически грамотных, техподдержка от сообщества энтузиастов-спецов зачастую эффективнее, чем от безразличных коммерческих служб. Это, конечно, не абсолютное утверждение.
Проприетарное (собственническое) ПО — это несвободное программное обеспечение, правообладатель которого сохраняет за собой монополию на его использование, копирование и модификацию
Проще найти специалистов для работы с системой с открытым кодом (ведь API и исходные коды полностью официально доступны и грамотному программисту не составит труда быстро разобраться в архитектуре), чем для работ с закрытыми проприетарными системами, где одно только обучение специалиста влетит в копеечку. Ко всему прочему уже немало людей интересуются Drupal и имеют готовый опыт работы с ним.
Пользователи, испытывающие трудности при установке и настройке Drupal, должны сначала проконсультироваться со справочником администратора, большая часть которого также доступна через справку в разделе администрирования каждой инсталляции Drupal. В тех случаях, когда документация не в состоянии помочь, попробуйте поискать нужную информацию на форуме сайта drupal.org или на форуме сайта drupal.ru русскоязычного сообщества. Также можно обратиться к архиву почтовых рассылок Drupal. Если не получилось найти решение своей проблемы, необходимо изложить подробное описание проблемы, включить номер версии Drupal и отправить сообщение для обсуждения. Стоит еще раз отметить, что вся поддержка обеспечивается добровольцами и зависит от доброй воли участников. Потому стоит проявить терпение при решении таких проблем.
Достоинства
Модульность и расширяемость. Drupal стремится к легкому, мощному коду, который может быть быстро расширен через модули.
Качественное кодирование. Высококачественный, элегантный и документированный код лучше запутанной функциональности.
Соответствие стандартам. Drupal поддерживает традиционные и новые стандарты. Определенные целевые стандарты включают XHTML и CSS.
Нетребовательность к ресурсам. Чтобы гарантировать превосходную производительность, Drupal старается использовать простое кодирование (например, минимизацию запросов к базе данных). Drupal должен также иметь минимальные, широкодоступные серверные требования. В частности, Drupal должен быть полностью рабочим на сервере с Apache, PHP, а также MySQL или PostgreSQL.
Открытый код. Drupal основан на философии открытого кода для совместной свободной разработки программного обеспечения и распространяется под лицензией GPL. Drupal написан на открытом языке PHP и поддерживает как первичные источники данных базы данных с открытым исходным кодом MySQL и PostgreSQL.
Легкость в использовании. Drupal стремится к высокому стандарту удобства и простоты использования для разработчиков, администраторов и пользователей.
Недостатки
При повышенном использовании базы данных может не хватить ресурсов дешевых хостингов. Однако для сайта с небольшой посещаемостью (несколько тысяч в сутки) это не должно быть опасным.
Активное развитие проекта может оказаться не только достоинством, но и недостатком. Изменения API (интерфейс программирования приложений) можно найти практически в каждом релизе, что вынуждает чутко отслеживать все выпуски. Однако изменения API и процедура адаптации модулей к новым версиям описываются в документации для каждого релиза, также всегда предлагается механизм автоматизированного апгрейда ядра системы на новую версию.
Итого
Drupal является свободным программным обеспечением, защищенным лицензией GPL и улучшаемым усилиями энтузиастов со всего мира. Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и форумов до информационных архивов или сайтов новостей. Благодаря таксономии легко создается сквозной список ключевых слов для всех документов сайта. Модульная система позволяет добавлять необходимые функции, если они отсутствовали в дистрибутиве. При возникновении каких-либо трудностей можно рассчитывать на поддержку широкого сообщества пользователей Drupal, которое оказывает помощь начинающим веб-разработчикам.
Ссылки по теме
Статья получена: hostinfo.ru