Drupal (pronounced /ˈdruːpəl/) is a free and open source Content Management System (CMS) written in PHP and distributed under the GNU General Public License. It is used as a back-end system for many different types of websites, ranging from small personal blogs to Enterprise 2.0 collaboration and knowledge management uses to large corporate and political sites, including whitehouse.gov and data.gov.uk.
The standard release of Drupal, known as Drupal core, contains basic features common to most CMSs. These include the ability to register and maintain individual user accounts within a flexible and rich permission / privilege system, create and manage menus, RSS-feeds, customize page layout, perform logging, and administer the system. As installed, Drupal provides options to create a classic brochureware website, a single- or multi-user blog, an Internet forum, or a community website providing for User-generated content.
Drupal was also designed to allow new features and custom behavior to be added to extend Drupal's core capabilities. This is done via installation of plug-in modules (known as contrib modules) created and contributed to the project by open source community members. For this reason, 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 can run on any computing platform that supports both a web server capable of running PHP version 4.3.5+ (including Apache, IIS, Lighttpd, and nginx) and a database (such as MySQL or PostgreSQL) to store content and settings.
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 made a typo when checking the domain name and thought it sounded better.
A large community now helps develop Drupal, and Drupal's popularity is growing rapidly. From May 2007 to April 2008, Drupal was downloaded from the Drupal.org website more than 1.4 million times, an increase of approximately 125% from the previous year.
As of April 2009, over 70 well-known brand names and not-for-profit organizations use Drupal. Drupal has also won several Packt Open Source CMS Awards and three times (in a row) won the Webware 100.
Drupal 6.15, released in December 2009, is the latest release. On March 5, 2009, Dries Buytaert announced a code freeze for Drupal 7 for September 1, 2009. The latest test version, DRUPAL-7-0-ALPHA-1, was released on January 15, 2010. There is no date announced yet for the final release of Drupal 7.
Drupal core is the stock installation of Drupal, which can be optionally extended by third party contributions. In Drupal's default configuration, website content can be contributed by either registered or anonymous users (at the discretion of the administrator) and made accessible to web visitors by a variety of selectable criteria including by date, category, searches, etc. 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 core 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:
The color editor being used to adjust the "Garland" core theme
Drupal core includes several core themes, which customize the aesthetic "look and feel" of the site. These themes can be chosen by the administrator via a special menu.
The Color Module, introduced in Drupal core 5.0, allows administrators to change the color scheme of certain themes via a Web-browser interface. This feature was added to allow a higher level of customization for the average non-coder.
Drupal's architecture does not follow the Model–view–controller design pattern, but instead follows the Presentation-abstraction-control.
As of February 2008, translations for Drupal's interface were available in 44 languages plus English (the default). Some read right to left, such as Arabic, Farsi, and Hebrew. Drupal 6 provides improved support for content and content administration in multiple languages.
Drupal can automatically notify the administrator when a new version of any module, theme, or the Drupal core itself, becomes available. This feature can help keep a Drupal installation up-to-date with the latest features and security fixes.
An auto-update module for the older version 5.x provides identical functionality, but it is not included in the core release.
Extending Drupal core
Drupal core is designed to be modular with 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's modular design, which isolates Drupal core's files from contributed module and themes, increases flexibility and security and allows Drupal administrators to cleanly upgrade to new releases of Drupal core without potentially overwriting their site's customizations. To maintain this separation, Drupal administrators are instructed to avoid altering Drupal core's software.
Contributed Drupal modules offer a variety of features including image galleries, custom content types and content listings, WYSIWYG editors, private messaging, third-party integration tools, and more. The Drupal website lists over 4600 free modules (as of August 1, 2009), written and contributed to by the Drupal community.
For example, some of the most powerful and commonly used contrib modules include:
- Content Construction Kit (CCK): allows site administrators to dynamically create content types. A content type describes any kind of information to be stored in the website's database. These may include, but are not limited to, events, invitations, reviews, articles, or products.
- Views: facilitates the retrieval and presentation of content to site visitors.
- Panels: drag and drop content manager that allows site administrators to visually design a custom content layout.
The CCK Fields API has been integrated into Drupal core in the development Drupal 7 branch.
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 themes for Drupal are written in the PHPTemplate engine or, to a lesser extent, the XTemplate engine. Some templates use hard-coded PHP.
Although early versions of Drupal's theming system were criticized for being less design-oriented and more complicated than those for Mambo, Joomla! and Plone, the inclusion of the PHPTemplate and XTemplate engines in Drupal has addressed some of these concerns. The new Drupal 6 theming system utilizes a template engine in an attempt to further separate HTML/CSS from PHP. A Drupal development module, Devel, provides assistance to theme authors who use Drupal 6.
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 an article on the Whitehouse.gov site running Drupal, Slate noted that Recovery.gov, which is devoted to tracking stimulus spending originally used Drupal but soon hired a private contractor at a reported cost of $18 million to rework the site. The article goes on to list some common criticisms of Drupal.
- Usability: Some aspects of Drupal's administration interface can be confusing and intimidating, particularly for new administrators. According to the Interaction Design and Information Architecture program at the University of Baltimore, Drupal lacks an intuitive, easy administration user interface. The administration area is regarded as clunky and cryptic with Drupal version 5 and 6, but improved ease of use is planned with the upcoming version 7. According to Dries Buytaert, Drupal 7 won't be released until 90% of the problems identified by the University of Minnesota and the University of Baltimore are solved. Usability will be one of the main improvements in Drupal 7 that will close the gap with easier CMSs.
- Learning curve: Some users have described Drupal as having a fairly steep learning curve.
- Backward Compatibility (for software development): Drupal's designers have decided that, in terms of programming, backward compatibility may be sacrificed with each major revision. As a result, sometimes a new version's code is not compatible with a previous version. This means that contrib module and theme developers may be required to re-work some or all of their previous code to ensure compatibility with the latest version of Drupal. However, the policy enforced for Drupal core development is that Drupal may change an API, but it will not change how it uses your data. This means that while code may need changing between major releases, data from previous versions will still be usable without the need to alter the data itself in the new release.
- Performance / Scalability: In 2008, performance tests between Drupal 6.1 and Joomla 1.5 branch demonstrated that Drupal's Web pages were delivered "significantly faster" compared with Joomla. Despite this, there persists a popular view that Drupal is slow. It is true that Drupal is likely to be slower when configured for a narrow usage as compared to an application specifically designed for that usage. For example, Wordpress may often outperform Drupal as a single-user blogging tool. However, the Drupal project itself suggests that narrowly focused applications are often preferable for narrow usage. To improve performance, Drupal offers caching to store static pages, the use of which resulted in a 508% improvement. Static pages are typically delivered to only anonymous visitors who have not logged in; contributed modules must be installed to allow page caching for authenticated users. Thus, dramatic performance improvements from caching may not reflect real-world usage of some Drupal sites. Like performance, scalability, or the ability for a Web site to handle a growing number of concurrent visitors, can become a concern on large interactive sites. Particularly, SQL query caching can help offset the load to the database server caused by Drupal's high query rate. Since version 6, Drupal caches database schema as well as elements such as blocks, forms and menus. Development versions of Drupal 7 increase performance in database queries with simultaneous performance decreases in PHP code usage.
Since early in the project's history, Drupal has adopted a full transparent policy towards security . A dedicated security team has a transparent and methodical process  to review any reported issue—whether in Drupal core or contrib. If in core, a trusted core contributor is tasked to implement a fix in an expedited fashion, followed by re-review by the security team. If in contrib, the module maintainer is asked to implement the fix, followed by a review. Once obtained, the security team announces the nature of the vulnerability and the availability of the fixed code in a timely manner, so that site administrators can immediately take remedial action. Though this policy tends to lead observers to think that Drupal has a high number of security issues, there is no proof that this is the case; the Drupal project's transparent approach is generally considered superior to the alternative—security through obscurity.
As security holes are discovered and remedied, the Drupal core is updated to new versions. Administrators of Drupal sites are automatically notified of these new releases via the Update Status module. Additionally, Drupal.org 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.
Customized Drupal distributions include some repackaged third-party modules, some with modifications to the core, including vbDrupal, which is Drupal integrated with vBulletin.
In 2007, a Drupal-focused company, Acquia, was created by Drupal project lead Dries Buytaert and Jay Batson. Acquia announced a subscription-based service for Drupal at Drupalcon Boston 2008 and started services with Acquia Drupal, a distribution based on Drupal 6, in September 2008. Subscriptions include one or more Drupal distributions, a set of companion network-supplied value-add services, and access to a Technical Assistance Center.
TurnKey Linux's Drupal Appliance is a pre-integrated Drupal appliance that bundles over a dozen of the most popular and useful Drupal modules. It allows users to skip manual installation of Drupal and its dependencies, and deploy with minimal setup a self-contained, ready-to-use system on bare metal, a virtual machine, or in the cloud. It's part of the TurnKey Linux Virtual Appliance Library, which is based on Ubuntu Linux.
OpenAtrium is intended to run as an organization's intranet. It has group spaces to allow different teams to have their own conversations and comes with six basic features - a blog, a wiki, a calendar, a to-do list, a shoutbox, and a management dashboard.
Intended for online publishers, OpenPublish is a streamlined Drupal distribution for a variety of media outlets sites including magazines, newspapers, journals, trade publications, broadcast, wire services, and membership publications. OpenPublish integrates with OpenCalais and provides rich set of semantic features for the publishers. A number of high-profile publications are using OpenPublish including The New Republic and Governing.
Drupal 4.2  was used for DeanSpace, which hosted many independent websites supporting the 2004 U.S. presidential campaign of Howard Dean. After the Dean campaign ended, the DeanSpace project grew into CivicSpace, a Drupal-based "grassroots organizing platform that empowers collective action inside communities and cohesively connects remote groups of supporters."
Tattler is an open source topic monitoring tool that allows a user to easily filter, organize and share content gathered from the Web. Tattler finds and aggregates content from the Web on selected topics. Using semantic Web technologies, Tattler mines news, websites, blogs, multimedia sites, and other social media like Twitter to find mentions of the issues most relevant to a journalist, researcher, advocate or communications professional.
Pressflow is a distribution of Drupal with integrated performance, scalability, availability, and testing enhancements. Each version of Pressflow is API-compatible with the same major Drupal version. For example, Pressflow 6 is compatible with all Drupal 6 modules. Pressflow addresses a long-standing problem: High-traffic sites use stable versions of Drupal, and stable versions of Drupal are ineligible for enhancements to solve performance bottlenecks discovered after widespread deployment.
Drupal has a large community of users and developers. More than 650,000 user accounts have been created on Drupal.org, and more than 2000 people have signed up for developer accounts. The Drupal conference happens twice a year, alternating between North America and Europe. Drupalcon Szeged 2008, held in late August 2008, had an attendance of 500. Drupalcon Washington DC 2009, attracted over 1400 people. In September 2009, the conference was held in Paris, France, and in 2010 it will come to San Francisco.
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 20 national communities around drupal.org offering language-specific support.
High-Profile Websites Built Using Drupal
Ordered by the relative amount of traffic, as reported by Compete.com:
- ↑ "Licensing FAQ". drupal.org. http://drupal.org/licensing/faq. Retrieved 2009-04-08.
- ↑ 2.0 2.1 "The Drupal Overview". drupal.org. http://drupal.org/node/265726. Retrieved 2009-04-08.
- ↑ 3.0 3.1 "System Requirements". drupal.org. http://drupal.org/requirements. Retrieved 2009-04-08.
- ↑ Lincoln (2008-09-24). "45 Sites You May Not Have Known Were Drupal-Based". Social CMS Buzz. http://socialcmsbuzz.com/45-drupal-sites-which-you-may-not-have-known-were-drupal-based-24092008/. Retrieved 2009-04-08.
- ↑ 5.0 5.1 "Features". drupal.org. http://drupal.org/features. Retrieved 2009-04-08.
- ↑ 6.0 6.1 "History". drupal.org. http://drupal.org/node/769. Retrieved 2009-04-08.
- ↑ "Druppel: Dutch to English Translation". Babylon Translation. http://translation.babylon.com/Dutch/to-English/druppel/. Retrieved 2009-04-08.
- ↑ Koenig, Josh. "Growth Graphs". Groups.Drupal. http://groups.drupal.org/node/1980. Retrieved 2009-04-08.
- ↑ Buytaert, Dries (2008). "Drupal Download Statistics". http://buytaert.net/drupal-download-statistics-2008. Retrieved 2009-04-08.
- ↑ Buytaert, Dries (2007). "Drupal Download Statistics". http://buytaert.net/drupal-download-statistics-2007. Retrieved 2009-04-08.
- ↑ "Who is Using Drupal?". Us&V. http://websites.usandv.com/who-is-using-drupal. Retrieved 2009-04-08.
- ↑ "OSS CMS Award Previous Winners". Packt Publishing. http://www.packtpub.com/open-source-cms-award-previous-winners. Retrieved 2009-04-08.
- ↑ Drupal is a Webware 100 winner for the third year in a row
- ↑ Cnet.com
- ↑ "Drupal Project downloads". drupal.org. http://drupal.org/project/drupal. Retrieved 2009-09-16.
- ↑ Buytaert.net
- ↑ Drupal 7.0 Alpha 1 released
- ↑ "View of /drupal/CHANGELOG.txt". drupal.org. http://cvs.drupal.org/viewvc.py/drupal/drupal/CHANGELOG.txt?view=markup. Retrieved 2009-04-08.
- ↑ 19.0 19.1 "Handbook: Core Modules". drupal.org. http://drupal.org/handbook/modules. Retrieved 2009-04-08.
- ↑ Buytaert, Dries. "Garland, the new default core theme". drupal.org. http://drupal.org/node/91964. Retrieved 2009-04-08.
- ↑ "Color: Allows the user to change the color scheme of certain themes". drupal.org. http://drupal.org/handbook/modules/color. Retrieved 2009-04-08.
- ↑ "Translations". drupal.org. http://drupal.org/project/Translations. Retrieved 2009-04-08.
- ↑ 23.0 23.1 "Drupal 6.0 released". drupal.org. http://drupal.org/drupal-6.0. Retrieved 2009-04-08.
- ↑ 24.0 24.1 "Module: Update Status". drupal.org. http://drupal.org/project/update_status. Retrieved 2009-04-08.
- ↑ "API Reference". drupal.org. http://api.drupal.org/. Retrieved 2009-04-08.
- ↑ "File and directory management". drupal.org. http://drupal.org/node/22283.
- ↑ "Do not hack core". drupal.org. http://drupal.org/node/144376.
- ↑ Integrating Drupal with External Systems
- ↑ "Modules". drupal.org. http://drupal.org/project/Modules. Retrieved 2009-04-08.
- ↑ Nash, Tim (2007-01-08). "CCK & Views the ultimate combination, part 1". The Venture Skills Blog. http://blog.venture-skills.co.uk/2007/01/08/cck-views-the-ultimate-combination-part-1/. Retrieved 2009-04-08. "Two modules particularly important to typical Drupal installations"
- ↑ Safuto, Robert (2007-07-30). "Drupal CCK and Views Tutorial". Awakened Voice Learning Center. http://learn.awakenedvoice.com/2007/07/30/drupal-cck-and-views-tutorial/. Retrieved 2009-04-08.
- ↑ "Field API". 2009. http://drupal.org/node/361849. Retrieved 2009-05-08.
- ↑ "PHPTemplate theme engine". drupal.org. http://drupal.org/phptemplate. Retrieved 2009-04-08.
- ↑ "XTemplate theme engine". drupal.org. http://drupal.org/node/6493. Retrieved 2009-04-08.
- ↑ "How does Drupal compare to Mambo? discussion thread". drupal.org. 2005-01-17. http://drupal.org/node/15689#comment-25704. Retrieved 2009-04-08.
- ↑ Drupal themes
- ↑ Drupal Theme Garden
- ↑ 38.0 38.1 Message Error, Why running the White House Web site on Drupal is a political disaster waiting to happen Chris Wilson. Slate_(magazine) October 27, 2009
- ↑ 39.0 39.1 Hagopian, Peter (2008-07-10). "Drupal Addresses Security In 6.3, Usability in 7". Information Week. http://www.informationweek.com/blog/main/archives/2008/07/drupal_addresse.html. Retrieved 2009-04-08.
- ↑ Scollan, Becca; Abby Byrnes, Malia Nagle, Paul Coyle, Cynthia York, Maleka Ingram (2008-05-01). "Drupal Usability Research Report" (PDF). http://groups.drupal.org/files/DrupalUsabilityResearchReport.pdf. Retrieved 2009-04-08.
- ↑ Lal, Kieran (2008-06-26). "Drupal usability tests from the University of Baltimore with community solutions". drupal.org. http://drupal.org/usability-test-university-baltimore-community-solutions. Retrieved 2009-04-08.
- ↑ 42.0 42.1 Buytaert, Dries (2008-07-03). "Usability, usability, and usability". http://buytaert.net/usability-usability-and-usability. Retrieved 2009-04-08.
- ↑ Buytaert, Dries (2008-03-10). "First results from usability testing". http://buytaert.net/first-results-from-usability-testing. Retrieved 2009-04-08.
- ↑ "Report from Formal Drupal" (PDF). 2008-03-03. http://buytaert.net/files/usability-testing-minnesota.pdf. Retrieved 2009-04-08.
- ↑ Howard, Brian C. (2007-01-25). "Harnessing Drupal for Citizen Journalism". NewAssignment.Net. http://newassignment.net/blog/brianchoward/jan2007/24/harnessing_drupa. Retrieved 2009-04-08.
- ↑ "CMS Review: Drupal". Live-CMS.com. http://www.live-cms.com/reviews/Drupal/. Retrieved 2009-04-08.
- ↑ Buytaert, Dries (2006-05-26). "Backward Compatibility". http://buytaert.net/backward-compatibility. Retrieved 2009-04-08.
- ↑ Buytaert, Dries (2006-07-27). "The pain before the pay-off". http://buytaert.net/the-pain-before-the-payoff. Retrieved 2009-04-08.
- ↑ Drupal's Upgrade Instructions (end-user)
- ↑ "Joomla 1.5 & Drupal 6.1 Performance Comparison". http://www.alldrupalthemes.com/blog/joomla-15-drupal-61-performance-comparison.html.
- ↑ "Is Drupal Slow & Bloated?". http://www.nixer.org/is-drupal-slow-bloated.
- ↑ "Is Drupal the right tool for the job?". http://drupal.org/node/346217.
- ↑ "Authenticated User Page Caching (Authcache)". drupal.org. http://drupal.org/project/authcache. Retrieved 2009-09-23.
- ↑ Buytaert, Dries (2006-08-11). "Drupal vs Joomla performance". http://buytaert.net/drupal-vs-joomla-performance. Retrieved 2009-05-20.
- ↑ "Speed up a Drupal web site by enabling MySQL query caching". nadeausoftware.com. 2007-03-07. http://nadeausoftware.com/articles/2007/03/speed_drupal_web_site_enabling_mysql_query_caching. Retrieved 2009-06-21.
- ↑ Book on Drupal Performance & Scalability
- ↑ "Caching in Drupal 6". drupal.org. 2008-07-28. http://drupal.org/node/288488. Retrieved 2009-06-21.
- ↑ "Drupal 6 vs Drupal 7 performance and comments vs nodes". CivicActions.com. 2009-05-19. http://civicactions.com/blog/2009/may/19/drupal_6_vs_drupal_7_performance_and_comments_vs_nodes. Retrieved 2009-06-21.
- ↑ Drupal security team: past, current and future
- ↑ Drupal Security team
- ↑ 61.0 61.1 61.2 "Security advisories". drupal.org. http://drupal.org/security. Retrieved 2009-04-28.
- ↑ Drupal security team
- ↑ Drupal Security RSS feed
- ↑ "Contributed modules". drupal.org. http://drupal.org/security. Retrieved 2009-04-28.
- ↑ "Acquia FAQ". Acquia. http://acquia.com/products-services/acquia-frequently-asked-questions#FAQmain1. Retrieved 2009-04-08.
- ↑ TurnKey Drupal Appliance
- ↑ Easier setup with a Drupal software appliance
- ↑ Official Open Atrium website
- ↑ Open Publish Official website
- ↑ "Predictions for 2004 discussion thread". drupal.org. http://drupal.org/node/4877#comment-7552. Retrieved 2009-04-08.
- ↑ Tattlerapp Official website
- ↑ Pressflow
- ↑ Drupal.org
- ↑ Bogle, Bonnie. "DrupalCon DC By the Numbers: Community, Profit, and Sustainability". drupalcon.org. http://dc2009.drupalcon.org/news/drupalcon-dc-numbers-community-profit-and-sustainability. Retrieved 2009-04-08.
- ↑ Drupal.org forums
- ↑ Drupal.org mailing lists
- ↑ Drupal Groups
- ↑ Drupal IRC channels on FreeNode
- ↑ Language specific communities
- ↑ "Thoughts on the Whitehouse.gov switch to Drupal". Oreilly. http://radar.oreilly.com/2009/10/whitehouse-switch-drupal-opensource.html. Retrieved 2009-11-27.
- ↑ "WhiteHouse.gov Goes Drupal". TechPresident. http://techpresident.com/blog-entry/whitehousegov-goes-drupal. Retrieved 2009-11-27.
- ↑ "Case Study: United Nations World Food Programme (WFP.org)". Phase2 Technology. http://www.phase2technology.com/project/world-food-programme-wfporg-cms. Retrieved 2009-11-27.
- Beighley, Lynn (2009). Drupal for Dummies. New York: For Dummies. ISBN 978-0-470-55611-5.
- Douglass, Robert T.; Mike Little and Jared W. Smith (2005). Building Online Communities With Drupal, phpBB, and WordPress. New York: Springer Verlag/Apress. ISBN 1-590-59562-9.
- Graf, Hagen (2006) (in German). Drupal. Community-Websites entwickeln und verwalten mit dem Open Source-CMS. Munich, Germany: Addison-Wesley. ISBN 3-827-32321-5.
- Mercer, David (2006). Drupal: Creating Blogs, Forums, Portals, and Community Websites. Birmingham, England: Packt Publishing. ISBN 1-904-81180-9.
- Peacock, Michael (2008). Selling Online with Drupal e-Commerce. Birmingham, England: Packt Publishing. ISBN 978-1-847194-06-0.
- Roswell, Marjorie (2009). Drupal 5 Views Recipes. Birmingham, England: Packt Publishing. ISBN 978-1847196965.
- Shreves, Ric (2007). Drupal 5 Themes. Birmingham, England: Packt Publishing. ISBN 1-847-19182-7.
- VanDyk, John K.; Matt Westgate (2007). Pro Drupal Development. New York: Springer Verlag/Apress. ISBN 1-590-59755-9.
- VanDyk, John K. (2008). Pro Drupal Development, Second Edition. New York: Springer Verlag/Apress. ISBN 1-430-20989-5.
- Herremans, D. (2009). Drupal 6: Ultimate Community Site Guide. Switzerland. ISBN 978-2-839-90490-2.