Drupal () is a free and open-source content management system (CMS) and content management framework (CMF) written in PHP and distributed under the GNU General Public License. It is used as a back-end system for at least 2.1% of all websites worldwide ranging from personal blogs to corporate, political, and government sites including whitehouse.gov and data.gov.uk. It is also used for knowledge management and business collaboration.
The standard release of Drupal, known as Drupal core, contains basic features common to content management systems. These include user account registration and maintenance, menu management, RSS feeds, page layout customization, and system administration. The Drupal core installation can be used as a brochureware website, a single- or multi-user blog, an Internet forum, or a community website providing for user-generated content.
, there are about 17,200 free community-contributed addons, known as contrib modules, available to alter and extend Drupal's core capabilities and add new features or customize Drupal's behavior and appearance. Because of this plug-in extensibility and modular design, Drupal is sometimes described as a content management framework. Drupal is also described as a web application framework, as it meets the generally accepted feature requirements for such frameworks.
Although Drupal offers a sophisticated programming interface for developers, no programming skills are required for basic website installation and administration.
Drupal runs on any computing platform that supports both a web server capable of running PHP (including Apache, IIS, Lighttpd, Hiawatha, Cherokee or Nginx) and a database (such as MySQL, MariaDB, PostgreSQL, SQLite, MongoDB or Microsoft SQL Server) to store content and settings. Drupal 6 requires PHP 4.4.0+ while Drupal 7 requires PHP 5.2.5 or higher.
||15 Jan 2001
||15 Mar 2001
||15 Sep 2001
||16 Jun 2002
||15 Jan 2007
||13 Feb 2008
||5 Jan 2011
Drupal versions 1-6 release history timeline
Originally written by Dries Buytaert as a message board, Drupal became an open source project in 2001. Drupal is an English rendering of the Dutch word "druppel", which means "drop" (as in "a water droplet"). The name was taken from the now-defunct Drop.org website, whose code slowly evolved into Drupal. Buytaert wanted to call the site "dorp" (Dutch for "village") for its community aspects, but mistyped it when checking the domain name and thought the error sounded better.
Interest in Drupal got a significant boost in 2003, when it was used to build "DeanSpace" for Howard Dean, one of the candidates in the U.S. Democratic Party's primary campaign for the 2004 U.S. presidential election. Developed initially by Dean campaign volunteers Zack Rosen and Neil Drumm, DeanSpace used open source sharing of Drupal to support a decentralized network of approximately 50 disparate, unofficial pro-Dean web sites that communicated directly with one another as well as with the Dean campaign. Although Dean eventually lost the presidential primary race to John Kerry, his campaign achieved unprecedented success at using the internet for fundraising. After Dean ended his campaign, Rosen and Drumm continued to pursue their interest in developing a community-building web platform that could aid political campaigns and activism by launching CivicSpace Labs in July 2004, "the first company with full-time employees that was developing and distributing Drupal technology." CivicSpace operated for several years before closing, and by then several other companies had emerged that specialized in Drupal development. By 2012, the Drupal website listed more than 100 vendors that offer Drupal-related services.
A community now helps develop Drupal, and Drupal's popularity is growing rapidly. From July 2007 to June 2008, Drupal was downloaded from the Drupal.org website more than 1.4 million times, an increase of approximately 125% from the previous year.
, hundreds of thousands of sites used Drupal. These include hundreds of well-known organizations, including corporations, media & publishing companies, governments, non-profits, schools, and individuals. Drupal also won several Packt Open Source CMS Awards and won the Webware 100 three times in a row.
On March 5, 2009, Buytaert announced a code freeze for Drupal 7 for September 1, 2009. Drupal 7 was released on January 5, 2011, with release parties in multiple countries. As of this release, maintenance for Drupal 5 has stopped, and only Drupal 7 and Drupal 6 are maintained. The latest version is Drupal 7.14, released on 2 May 2012.
Drupal 8 is in development and a release has been set for August 2013. The work on Drupal 8 is divided in the categories, called Core initiatives, Mobile, Layouts, Web Services and Configuration management. The Google Summer of Code is sponsoring 20 Drupal projects.
In the Drupal community, the term "core" means anything outside of the "sites" folder in a Drupal installation. Drupal core is the stock element of Drupal. In its default configuration, a Drupal website's content can be contributed by either registered or anonymous users (at the discretion of the administrator) and is made accessible to web visitors by a variety of selectable criteria. Drupal core also includes a hierarchical taxonomy system, which allows content to be categorized or tagged with key words for easier access.
Drupal maintains a detailed changelog of core feature updates by version.
Drupal Core includes optional modules which can be enabled by the administrator to extend the functionality of the core website.
The core Drupal distribution provides a number of features, including:
Drupal core includes core themes, which customize the "look and feel" of Drupal sites.
The color editor being used to adjust the "Garland" core theme
For example, Garland, Blue Marine etc.
The Color Module, introduced in Drupal core 5.0, allows administrators to change the color scheme of certain themes via a browser interface.
By February 2008, Drupal had been made available in 55 languages and English (the default). Support is included for right-to-left languages such as Arabic, Persian, and Hebrew.
Drupal localization is built on top of gettext, the GNU internationalization and localization (i18n) library.
Drupal can automatically notify the administrator about new versions of modules, themes, or the Drupal core. Such a feature can be useful for security fixes.
Prior to version 7, Drupal had functions which performed tasks related to databases, such as SQL query cleansing, multi-site table name prefixing, and generating proper SQL queries. In particular, Drupal 6 introduced an abstraction layer that allowed programmers to create SQL queries without writing SQL.
Drupal 7 extends the data abstraction layer so that a programmer no longer needs to write SQL queries as text strings. It uses PHP Data Objects to abstract the physical database. Microsoft has written a database driver for their SQL Server.
Embracing Windows developers
With Drupal 7's new database abstraction layer and ability to run on IIS, it is now easier for Windows developers to participate in the Drupal community. A group on Drupal.org is dedicated to Windows issues.
Extending the core
Drupal core is modular, defining a system of hooks and callbacks, which are accessed internally via an API. This design allows third-party contributed (often abbreviated to "contrib") modules and themes to extend or override Drupal's default behaviors without changing Drupal core's code.
Drupal isolates core files from contributed modules and themes. This increases flexibility and security and allows administrators to cleanly upgrade to new releases without overwriting their site's customizations. The Drupal community has the saying "Never hack core", a strong recommendation that people do not change core files.
Contributed modules offer image galleries, custom content types and content listings, WYSIWYG editors, private messaging, third-party integration tools, and more. the Drupal website lists almost 17,200 free modules.
Some of the most commonly used contrib modules include:
- Content Construction Kit (CCK): allows site administrators to dynamically create content types by extending the database schema. "Content type" describes the kind of information. Content types include, but are not limited to, events, invitations, reviews, articles, and products. The CCK Fields API is in Drupal core in Drupal 7.
- Views: facilitates the retrieval and presentation, through a database abstraction system, of content to site visitors.
- Panels: drag and drop layout manager that allows site administrators to visually design their site.
Contributed themes adapt or replace a Drupal site's default look and feel.
Drupal themes use standardized formats that may be generated by common third-party theme design engines. Many are written in the PHPTemplate engine or, to a lesser extent, the XTemplate engine. Some templates use hard-coded PHP.
The inclusion of the PHPTemplate and XTemplate engines in Drupal addressed user concerns about flexibility and complexity. The Drupal theming system utilizes a template engine to further separate HTML/CSS from PHP. A popular Drupal contributed module called 'Devel' provides GUI information to developers and themers about the page build.
Community-contributed themes at the Drupal website are released under a free GPL license, and most of them are demonstrated at the Drupal Theme Garden.
In the past, those wanting a fully customized installation of Drupal had to download a pre-tailored version separately from the official Drupal core. Today, however, a distribution defines a packaged version of Drupal that upon installation, provides a website or application built for a specific purpose.
The distributions offer the benefit of a new Drupal site without having to manually seek out and install third-party contrib modules or adjust configuration settings. They are collections of modules, themes, and associated configuration settings that prepare Drupal for custom operation. For example, a distribution could configure Drupal as a "brochureware" site rather than a "news" site or an "online store".
Distributions include OpenPublish, Drupal Commons, Open Atrium, Managing News, Tattler, NodeStream, Pressflow, OpenPublic and the Conference Organizing Distribution (COD)
Drupal.org has a large community of users and developers, with over 648,000 user accounts and over 10,000 developer accounts. The semiannual Drupal conference alternates between North America and Europe. Attendance at DrupalCon grew from 500 at Szeged in August 2008 to over 3,000 people at Chicago in March 2011. The European DrupalCon 2012 will take place in August 2012 in Munich, Germany.
Smaller events, known as "Drupal Camps", occur throughout the year all over the world.
There are a number of active Drupal forums, mailing lists and discussion groups. Drupal also maintains several IRC channels on the Freenode network.
There are over 30 national communities around drupal.org offering language-specific support.
Paired with each DrupalCon event, "Drupalgangers" meetups occur. The events are defined by the community as gatherings of "friends, partners, spouses, and other associates of Drupal community members to enjoy the "con" - without ever having to participate in the geekdom of the event - by traveling around the town or city together."
Drupal's policy is to announce the nature of each security vulnerability once the fix is released.
Administrators of Drupal sites are automatically notified of these new releases via the Update Status module (Drupal 6.x) or via the Update Manager (Drupal 7.x). Drupal maintains a security announcement mailing list, a history of all security advisories, a security team home page, and an RSS feed with the most recent security advisories. In 2008, eleven security vulnerabilities were reported and fixed in the Drupal core. Security holes were also found and fixed in 64 of the 2243 user-contributed modules.
When compared to three other well-known open source CMS platforms covered by the MITRE CVE database, Drupal ranked second - after Plone but ahead of WordPress and Joomla.
In a controversial article about the adoption of Drupal by the Whitehouse.gov site, associate editor at Slate Chris Wilson lists some common criticisms of Drupal. Other criticisms have included:
Usability: Aspects of the Drupal 6 administration interface were seen to be confusing and intimidating to some, particularly for new administrators. According to Dries Buytaert, Drupal 7 addressed 90% of the problems identified by the Universities of Minnesota and Baltimore. Improved usability will close the gap with easier CMSs. To achieve this Acquia (the company founded by the project lead of Drupal) hired user experience designer Mark Boulton to work with the Drupal community to design a dramatically improved user interface for Drupal's administration interface. The majority of his team's design work has been implemented by the community in Drupal 7. The 2011 usability test results from the University of Minnesota Office of Information Technology show that all of the major usability problems identified in Drupal 6 are either vastly improved or non-existent in Drupal 7. However, some new usability problems were identified.
Learning curve: Some users describe Drupal as being difficult to master. Drupal's many contributed modules can have overlapping functionality and have been reported as overwhelming to new users.
Backward compatibility (for software development): Drupal does not commit to backward compatibility across major revisions. This means that module and theme developers may have to rework their code to be compatible. However, Drupal's policy is to not change how it uses one's data. This means that data from previous versions will still be usable without alteration in the new release. Omitting backward compatibility reduces software bloat. Drupal documents any incompatibilities, allowing the user to make informed decisions about when and whether to upgrade.
Performance/scalability: In 2008, performance tests between Drupal 6.1 and Joomla 1.5 demonstrated that Drupal's pages were delivered "significantly faster" than those of Joomla. Despite this, Drupal is still seen as slow. It is true that Drupal is likely to be slower than a special-purpose application for a given task. For example, WordPress typically outperforms Drupal as a single-user blogging tool. Drupal positions itself for broader applications requirements that are outside the scope of more narrowly focused applications. Drupal offers caching to store various page elements, the use of which resulted in a 508% improvement in one benchmark. When using Drupal's default Page Cache mechanism, the cached pages are delivered only to anonymous users, so contributed modules must be installed to allow caching content for logged in users. Like performance, scalability (the ability to add servers to handle growing numbers of visitors with consistent response) can become a concern on large, interactive sites. MySQL's query caching can help reduce the load on the database server caused by Drupal's high query rate. Drupal caches database schema metadata as well as elements such as blocks, forms and menus. Drupal 7 increases performance in database queries and reduces PHP code usage.
Integrability with hosting structures: Because of Drupal's demanding query requirements, Drupal-based websites can quickly become very taxing to hosts whose databases reside on a machine separate from their HTTP server. While the issue can normally be addressed by implementing aggressive caching as described above, such methods may be unimplementable in cases where the host does not offer access to PHP accelerators like XCache or APC. Drupal has plugins that facilitate similar caching without requiring special PHP extensions.
The Drupal Core search is ineffective at searching content: There are contributed modules that will greatly improve the search functionality on a Drupal website, but they are not easily accessible due to a high learning curve and the difficulty users have in general of finding the right module. One of the faceted search options is Apache Solr Search Integration module, however, the module requires a dedicated server or virtual private server (VPS) to operate because Solr must run on a servlet container, e.g. Tomcat, Jetty or Resin. In response, Acquia has created an Apache Solr SaaS product. These requirements make it harder for a Drupal website to have a functional search feature.
These are examples of websites based on the Drupal CMS:
NPR Digital Services, a separate division of NPR formerly known as Public Interactive a for-profit company established in 1999 uses Drupal as the "technical backbone" of Core Publisher, its digital news publishing system.
- Comparison of web application frameworks
- List of applications with iCalendar support
- List of content management systems
ar: map-bms:Drupal bg:Drupal bs:Drupal ca:Drupal cv:Drupal cs:Drupal da:Drupal de:Drupal el:Drupal es:Drupal eo:Drupalo eu:Drupal fa: fr:Drupal ko: hy: id:Drupal it:Drupal he: jv:Drupal kk:Drupal lv:Drupal lt:Drupal hu:Drupal mk: ml: nl:Drupal ja:Drupal no:Drupal pl:Drupal pt:Drupal ro:Drupal ru:Drupal sk:Drupal sl:Drupal ckb: sr: fi:Drupal sv:Drupal ta: te: th: tr:Drupal uk:Drupal vi:Drupal zh:Drupal