Last updated 22 May 2017. Created on 8 August 2010.
Edited by B_man, pbulebar, LeeHunter, Joyy. Log in to edit this page.

This page is written to help new drupal users to overcome the Drupal learning curve in a snap! I will update this page as I learn Drupal.

This page is developed based on information on and elsewhere in the net. External links to videos and Drupal sites are provided for additional informations.

  1. What is Drupal: Understand the system and unleash its potential
  2. Installation: Test driving Drupal on your PC
  3. Drupal Installation / Distribution Profiles to Jumpstart your full featured Drupal Site
  4. Drupal Information: Quick Links
  5. Learn Drupal: Drupal basics and terminology
  6. Learn Drupal: Core Modules and 50+ Example Contributed Modules
  7. Learn Drupal: Steps to build your site
  8. Learn Drupal: Learning about important modules - Views, Panels and CCK
  9. User management modules
  10. Publishing Workflow
  11. Drupal Website Hosting
  12. Resource Guides and Informational Pages

1. What is Drupal: Understand the system and unleash its potential

Drupal is a free and Open Source Content Management System (CMS) to maintain and publish an internet web site or a company/group intranet site.

If you are still wondering whether drupal is the best CMS out there then your search ends here. See it for yourself!

If you are an individual, thinking about Drupal for your website, then you will identify various methods to approach Drupal based on your skill set.
If you are comparing Drupal with other online website builders/editors then you can start learning Drupal by using it on by Acquia. It uses a visual method of theming and designing Drupal. If you don't want to work with Drupal 7 on DrupalGardens due its beta status and limitation in get support from contributed modules which are not ready for Drupal 7 yet, then you can download your copy of a stable drupal release on Alternatively you can download pre-selected sets of modules for a certain site, see step B of this page.

If you are an individual interested in just a blog site or looking for simple point-n-click CMS then there are other options available such as Wordpress (with Buddypress plugin), Ning, Wix, Squarespace, Yahoo, etc. With Drupal you have the advantage of structuring your site and building content with all the freedom you need to make it a unique experience for site visitors. However, you will be required to learn and familiarize yourself with it before you can truly use it to its full potential as a powerful CMS.

If you are a company or need more support then you can get support from sites such as , , , , , , , , or find many more here A typical website project may cost in excess of 10,000 or 15,000 USD with a duration of 12+ weeks or 150+hours.

2. Installing on your PC to test drive it

I recommend that you go ahead and install a Drupal copy on your local PC right now before reading any further!

Here are the steps:

  • Download XAMPP Lite from and install it on your C:\
  • Download the latest copy of Drupal from and Unzip it in C:\xampp\htdocs
  • Copy & paste the file "default.settings.php" in "c:\xampp\htdocs\drupal\sites\default", under the drupal directory, and rename it to "settings.php"
  • Run XAMPP Control Panel. Check “svc” box for Apache and click Apache Start. Do not click the “svc” box for MySql, but do click the START button for MySql. When both Apache and MySql change from “start” to “running”, click the “Admin” button next to MySql. Type a database name like "drupal" and create database. For added security you can browse to http://localhost/security/xamppsecurity.php and enter the MySQL username and password
  • In your browser go to http://localhost/drupal/install.php and follow the instructions. Enter your database name with the username "root". You can verify your database details at http://localhost/phpmyadmin

For a more step by step instructions see,

Alternatively, you can install WAMP and run Drupal.

3. Drupal Installation / Distribution Profiles to Jumpstart your full featured Drupal Site

Before we get into the world of drupal and how to control it to acheive your dream site up and running, lets explore the power of drupal installation/distribution profiles.

Installation profiles are Customized "distributions" that enable and configure a set of modules, content types and other settings that work together for a specific kind of site.

Distribution profile is a Drupal distribution pre-packaged with essential contrib modules.

Check out some examples here:

  • Acquia Drupal - A collection of essential Drupal software, packaged together to build dynamic community websites faster. Free Drupal with optional paid support. There is also a stack installer for test sites on PC. Check here,
  • Drupal Commons - a distribution coming to quickly build and customize external communities and social collaboration applications. Builds on Organic Groups module and sets up all social modules for you. Check here,
  • OpenPublish - a packaged distribution tailored to the needs of online publishers. A media rich set up for you. Check here, If you have installation problems try increasing "php_value max_execution_time" in the .htacess file in your Drupal folder, to something say 600 seconds.
  • Prosepoint - an online newspaper site for you. Check here,
  • Open Atrium - An intranet/extranet that allows teams to have their own conversations, weblogs, wiki pages, calendars, to-do lists, a shoutbox, and a dashboard to manage it all. Check here,
  • OpenScholar is a Drupal distribution pre-configured for higher education institutions. Universities and colleges are enabled to streamline the process of creating turnkey websites for professors, researchers, and students. Check here,
  • Openpublic - Open Government site install. Check here,
  • VoiceBox - an installation profile designed for use by community and grassroots media organizations; it also has uses within schools and learning organizations. Check here,
  • Drupal Gardens - not a distribution or installation profile but worth a mention here. Work on Drupal 7 through this online free web service from Acquia. You are limited to a set of contributed modules which is provided to all. You can visually theme and structure your website with the power of Drupal 7 (D7). You may at any time consider to migrate your website and enhance with further modules. However, most modules are not ready for D7 release yet. Check here,
  • Drupal Camp, Conference, Meet-up Site distribution. This By Them worked with LA Drupal organizers to design and develop for . Get the distribution from here,
  • Check here for more Drupal Distributions
  • Check here for more Drupal Installations

4. Drupal Information: Quick Links

Here are some links to get you to drupal information quickly. Links:

Drupal Video Tutorials:

  • Lullabot Videos (Recommended) - A better way to start your drupal experience by buying these excellent videos developed by the Lullabot Team. Useful videos for beginners would be "Understanding Drupal", "Site Building+Administering" & "CCK+Views".
  • : Great series of videos By Chris Shattuck on a variety of topics, from basic site configuration to building modules.
  • MustardSeed : Excellent videos by Bob from Mustardseed.
  • Drupal Therapy - Learn from these excellent free videos by Sean Effel, which are created to cover specific subjects.
  • BoldSource - See this excellent workshop video on Views 2. Views will be the singlemost powerful drupal module that you will use!
  • Got Drupal : Videos for every popular drupal topic by Matt Petrowsky
  • Direct Links to Highest Quality Videos from Drupalcon DC 2009
  • Drupal Love- 50 Drupal 6 videos to help you climb the Drupal learning curve. A structured list of drupal video tutorials from various sources of web.

5. Learn Drupal: Drupal basics and terminology

  • Node or Content Type: A node in Drupal is the generic term for a piece of content on your web site. Each node on your site has a Content Type. It also has a Node ID, a Title, a creation date, an author (a user on the site), a Body (which may be ignored/omitted for some content types), and some other properties. Some examples of nodes are ‘Pages in books’, ‘Discussion topics in forums’, ‘Entries in blogs’, ‘News article stories’, etc. By using modules such as the contributed Content Construction Kit (CCK) module, the core Taxonomy module, and the contributed Location module, you can add fields and other properties to your nodes.
  • Comments: Comments are another type of content you can have on your site (if you have enabled the core Comment module). Each comment is a typically small piece of content that a user submits, attached to a particular node. For example, each piece of discussion attached to a particular forum topic node is a comment.
  • User, Permission, Role: Every visitor to your site, whether they have an account and log in or visit the site anonymously, is considered a user to Drupal. Each user has a numeric user ID, and non-anonymous users also have a user name and an email address. Anonymous users have a user ID of zero (0). The user with user ID one (1), which is the user account you create when you install Drupal, is special. Other users on your site can be assigned permissions via roles. To do this, you first need to create a role, which you might call "Content editor" or "Member". Next, you will assign permissions to that role. Drupal permissions are quite flexible - you are allowed to assign permission for any task to any role.
  • Taxonomy: Drupal has a system for classifying content, which is known as taxonomy and implemented in the core Taxonomy module. You can define your own vocabularies (groups of taxonomy terms), and add terms to each vocabulary. Vocabularies can be flat or hierarchical, can allow single or multiple selection, and can also be "free tagging" (meaning that when creating or editing content, you can add new terms on the fly). Each vocabulary can then be attached to one or more content types, and in this way, nodes on your site can be grouped into categories, tagged, or classified in any way you choose.
  • Modules: A module is software (code) that extends Drupal features and/or functionality. Core modules are those included with the main download of Drupal, and you can turn on their functionality without installing additional software. Contributed modules are downloaded from the Modules download section of, and installed within your Drupal installation. You can also create your own modules; this requires a thorough understanding of Drupal, PHP programming, and Drupal's module API.
  • Themes: The theme controls how your site is displayed, including the graphic look, layout, and colors. A theme consists of one or more PHP files that define the HTML output of your site's pages, along with one or more CSS files that define the layout, fonts, colors, and other styles.
  • Region, Block, Menu: Pages on your Drupal site are laid out in regions, which can include the header, footer, sidebars, and main content section; your theme may define additional regions.

    Blocks are discrete chunks of information that are displayed in the regions of your site's pages. Blocks can take the form of menus (which are concerned with site navigation), the output from modules (e.g., hot forum topics), or dynamic and static chunks of information that you've created yourself (e.g., a list of upcoming events).

    There are three standard menus in Drupal: Primary Links, Secondary Links, and Navigation. Primary and Secondary links are built by site administrators, and displayed automatically in the page header of many themes (if not, you can enable their blocks to display them). Navigation is the catch-all menu that contains your administration menus, as well as links supplied by modules on your site. You can also create your own custom menus, and display them by enabling their blocks. In all cases a menu item will only be shown to a visitor if they have the rights to view the page it links to; e.g., the admin menu item is not shown to visitors who are not logged in.

6. Learn Drupal: Core Modules and 50+ Example Contributed Modules

    Creating new content/node types: Adding your own fields

  1. Content Construction Kit (CCK)

  2. Querying on various parameters (fields, arguments/conditions, relationship, sort criteria, filters etc) and presenting them


  4. Triggering different Conditions+Reactions on various Events

  5. Rules

  6. Groups, Forums, Projects

  7. Organic Groups
  8. Advanced Forum
  9. Case Tracker

  10. Notifications, Subscriptions, Newsletters

  11. Messaging and Notifications
  12. Simple News

  13. E-commerce / Shopping Cart

  14. Ubercart

  15. Adding various fields types into your node/content types

  16. Location + GMap
  17. Media
  18. Voting API + Fivestar
  19. Filefield (D6) / Filedepot (D6)
  20. Imagecache + Image Field (D6) OR Image (D6) + Image Assist
  21. Insert (to upload images as fields and insert as inline images into wysiwyg editor) + FileField Sources (to provide browse server for photos option to filefield/imagefield/insert) + IMCE(to use image browser with FileField Sources)
  22. Embedded Media Field
  23. Date module and Date API module
  24. Calender
  25. Hierarchical Select

  26. Adding bits of text via placeholders generating automatic/dynamic texts in various Forms, Email, etc

  27. Token

  28. Rich text user experience

  29. Wysiwyg API + CKEditor
  30. Better Formats
  31. MIME Mail

  32. Building dynamic layouts/web pages of various pieces of content

  33. Panels / Context layouts
  34. Composite Layouts / Display Suite
  35. Spaces

  36. Dashboard, Activity Feeds, Aggregate RSS/Atom feeds

  37. Activity / Heartbeat
  38. Homebox
  39. Administration Dashboard/Menu
  40. Author Pane
  41. Feeds

  42. Analytics, SEO, Sharing, Bookmarking, Monetizing

  43. Google Analytics / Clicky
  44. Adsense
  45. XML Sitemap
  46. Meta Tags (D7) / Nodewords (D6)
  47. Pathauto (automatically generates URL/path aliases)
  48. Global Redirect
  49. Add This button / Share This
  50. Facebook Connect / Drupal for Facebook

  52. Importing Contacts and Sending Invitation through Email / Social Channels

  53. Contact Importer + Invite

  54. Galleries and Modal Windows

  55. Views Slideshow
  56. Flex Slider
  57. EasyAccordion for Views (Horizontal Accordion) / Views Accordion (Vertical Accordion)
  58. Lightbox2

  59. Content Ordering/ Arbitrary List of Articles

  60. Nodequeue / DraggableViews / Flag (Flag Weights submodule)
  61. Quick Tabs

  62. Anti-Spam

  63. Mollom (free+paid options)
  64. CAPTCHA + reCAPTCHA + Hidden CAPTCHA / Spamicide + BOTCHA (free)
  65. Spam
  66. Wordfilter

  67. Other Utility Tools

  68. Webform (Creating various forms like Contact us, etc)
  69. Back-up and Migrate
  70. Printer, Email and PDF Versions
  71. Front Page
  72. Drupal Chat

  73. Opening multiple Forms in Model window (Requires coding)

  74. Chaos tool suite (ctools)
  75. Modal forms (with ctools)

  76. Copying various functionalities of one site to another

  77. Features

  78. Themes (Not a Module)

  79. Omega (Responsive theme)

Video hosting (External or Internal) Modules:
Depending whether you need to host your videos on your own server and use your own bandwidth, or host externally, you can use the modules in the way you need. There are cheap external space and bandwidth providers like Amazon S3. Where as there are free external video hosting sites for you like, Dailymotion, Youtube, and commercial ones as well. Note that in D7 there is an attempt to combine the needs of all media types such as image, video, audio, documents, etc in one combined Media module. However, it is only available for D7 version only.

  1. Embedded Media Module: Provides embed code options for users with a CCK filed in your content type. Provides embed code filter for various video/audio/image/presentation sharing sites including , Dialy Motion, YouTube, Slideshare, Odeo and many others.
  2. Media Mover: Video upload, encoding, and local or Amazon S3 storage/bandwidth options. Amazon S3 provide low cost external per GB storage rate and per GB bandwidth rates. Check pricing here, . Can be used along with 'Embedded Media Field' Module and 'Media: Youtube' module to upload videos and host them on Youtube (Aaron guided me out here in the Video Group in Drupal). Similar framework is available for 'Media:', 'Media: Dailymotion' but yet to implemented.
  3. FlashVideo: Video upload, encoding, and local or Amazon S3 storage/bandwidth options.
  4. Video: Video upload, encoding, and local or Amazon S3 storage/bandwidth options.
  5. Video Upload: Provides simple upload and embed features to users to Youtube.
  6. CDN2 Video: Video upload and embed for users, and provides external encoding and storage/bandwidth options with their servers at Offers Transcoding at $2.50/GB for all regular videos $4.00/GB for all hd videos; and Delivery at $0.50/GB for all data transferred.
  7. Vimeo: Provides simple upload and embed features to users to Vimeo. Free account with 500MB per week limit.
  8. Media: Provides all media related features for audio/video/image/document files, but only for D7. Has integration for external hosting provider plug-in but i guess with with embed code option.
  9. Blue Droplet Video: Upload and embed option for external hosting yet to be posted for D6.
  10. Multimedia Galleries: Provides upload and embed features to users to Has both free and paid services with limited storage space.
  11. Viddler: Provides upload and embed features to users to at $100 for initial 50 GB.
  12. Kaltura: External Fully Hosted platform. Service offers start at $299 per month.
  13. MediaFront: Free media player solution.

7. Learn Drupal: Steps to build your site

Steps to build a basic site with dynamic content:

  1. Learn Drupal, Familiarize with drupal administration & basic terminology, Learn important drupal modules such as CCK, Views, Panels, Taxonomy, Skinr, Blocks, Menus, etc.
  2. Plan your site. This should be the most important and time consuming step. Draw the functionalities (not the modules required) that is needed in your site.
  3. Plan your site structure, using Taxonomy / Organic Groups / NodeReference modules. You may use either one of them or a combination of them. Taxonomy is a preferred option since it is part of core and brings with itself inbuilt Views pages for each Taxonomy Term, apart from being truly scalable option. If you need to combine a group of content types to relate to a group of content then you can consider using CCK NodeReference. You can use Taxonomy Acess Control or Node Access Control to restrict certain user roles. If need to group some content types and provide community options such as mailing list, then consider Organic Groups module which has inherent feature to work with Messaging and Notifications module. With Organic Groups module you can create and associate any number of content types, For eg. Blog, Wiki, Events/Calender, To-do list, Documents, Discussion, Chat/Conference, etc.
  4. Make a live checklist to list and update of all activities you plan to implement in your drupal site. This will help you keep track of where you are in completing your site, and gives you a know-how of your site for future upgrades/changes
  5. Theme your site.
  6. Consider using a distribution/installation profile, if one of them matches your needs, or if you are starting for first time. This will also help to avoid a lot of media handling/ management activities, which can be confusing and cumbersome for first timers.
  7. Plan your website homepage, sub-pages. Build complex page layouts with views, panels, blocks.
  8. Create a new Content Type or use one of the existing ones like Page, Story. If creating new content types add fields as required. Note the fields you create are list able in your Views listings. You can also reference other Content Types / Nodes, in your new Content Type using CCK NodeReference.
  9. Set up WYSIWYG editor. Along with it you must set up allowed HTML filters ( admin/settings/filters) for it to work correctly.
  10. Check permissions after every module install.
  11. Set up primary Menu. You can also use Taxonomy Menu module to automate creating/updating your menu.
  12. Keep a checklist of things to do before going from an under construction site to a production site. Eg. Back and Migrate Module to migrate your site database, Site Testing, Set up caching to enable site to handle high page loads, Change localhost to your site name for some APIs like Google Maps in Gmaps module, Remove any dummy content created with Devel module, Remove switch user block created by devel module, etc.
  13. Set up user profiles, user registration workflow.

Optional: Additional features to enhance your site.

  1. Set up Invite and Contact Importer modules.
  2. Set up Voting API and Fivestar module.
  3. Set up Slideshow modules such as Views Slideshow.
  4. Set up Tabs module such as QuickTabs to fit more information in small space.
  5. Set up Featured posts to list in the order according to the administrator, like Nodequeue module.
  6. Set up Advertising modules like ‘Advertisement’ (Ad) module OR (Google) Adsense Module. Adsense modules is good for starters. Ad module is good for popular sites with ad marketing directly to advertisers.
  7. Set up Spam protection with external service like Mollom (free+paid options) OR CAPTCHA + reCAPTCHA + Hidden CAPTCHA / Spamicide + BOTCHA (free) OR Spam.
  8. Set up SEO related modules and site enhancements. (a) Set up XML Sitemap module. (b) Set up related posts module for more user activity on your site. (c) Set up 'Add This' module and PDF, Email & Print Module. (d) Set up site statistics module such as Google Analytics module. (e) Nodewords (D6) / Metatag (D7). (f) SEO Checklist. (f) WordFilter (creates an Input Filter to filter out bad words being posted on site).
  9. Set up Apache Solr or Faceted Search module.
  10. Build a more media rich site with Location+GMap Module (Check this tutorial by DrupalTherapy), Embedded Media Field Module, etc. Add fields in your content types. Use GMap in Views to display Map with particular content types over a region in the map.
  11. Set up externally or internally hosted Video in your site.
  12. Set up Contact Us form using Webform Module
  13. Set up date and time module, create calenders and Events (you can try drupal distribution/installation profiles for pre-setup).
  14. Chat room / Conferencing using DrupalChat / XMPP modules.

Further steps to build a more complex site:

  1. Using Views Arguments and Panels Pane Context to automate creation of your site sub-pages. Check out this great tutorial by DrupalEasy.
  2. Using Hierarchical Select (module) for Taxonomy to allow site users to create Taxonomy Terms from Level 2 onwards, in community managed sites.
  3. Using Rules or Actions+Trigger to automate site workflow. Eg. On new user registration assign groups, send notification. Use Pageroute module or Rules to automate workflow during user registration
  4. Set up Messaging and Notifications Modules (required for Organic Gorups module).
  5. Internationalize with Drupal and extend its core multilingual capabilities with additional modules

8. Learn Drupal: Learn important modules

1. Learn Views Module: Video

Check this learning session on Views.

2. Learn Panels Module: Video
Check this video from GotDrupal to get you started with Panels.

3. Understanding CCK: Video
Learn CCK Basics.

9. User Management Modules

User Profile:

  1. Content Profile(D6): Use this module to make profiles as nodes. It supports separate profiles for different roles. Will provide some sort of upgrade path to Profile 2 in D7. Content Profile also works with Auto Asign Roles Module, which provides various options for role/profile selection/assignment.
  2. Profile 2(D7): Users get two separate menu links "My account" and "My profile". Profile2 allows for creating multiple profile types, which may be assigned to roles. Supports private profile fields, which are only shown to the user owning the profile. Optionally, profile forms are shown during user account registration. With the new concept of entities in Drupal 7, this module supersedes content profile as general solution. However for any situations where profiles as nodes might be preferable, content profile for Drupal 7 will build upon profile2.
  3. Advanced Profile Kit(D6): Provides building blocks for putting together fancy user profile pages with Page Manager & Panels. Makes use of panels and views (Note: You can create Profile pages using either Panels or Context/Context Layouts, without this module. Refer Drupal Commons v2.0 distribution for a sample). Module maintainer says that there won't be a 7.x version unless someone else wants to take it over. Also that Profile2 and Page Manager don't play nice together so porting isn't even possible until that happens.
  4. Homebox (D6/D7): Allow users to have dashboards with blocks as widgets. Blocks in a Homebox page are resizeable, and reorderable by dragging. Homebox is currently used on for the 'Your Dashboard' feature. Integrates with Views 2 and its exposed Ajax filters.

User Login and Registration:

  1. Admin >> User Management >> Profiles (D6): Select which fields you want 'visible in user registration'.
  2. LoginToboggan(D6/D7): Allow users to login using either their username OR their e-mail address. Allow users to login immediately. Provide a login form on Access Denied pages. Customize the registration form. Redirect the user to a specific page. Integrates with Rules module to do various tasks.
  3. Pageroute(D6): Use the module to create a "route" which leads users through multiple pages, which can be e.g. a node creation form or a node display (using Content Profile module in D6). Profile setup for Drupal 6 works along side the pageroute module to provide additional page types.
  4. Multi-step user registration form using CTools form wizard: If the above pageroute+profile_setup modules doesn't work for, and if you know PHP programming then you can make use of Drupal's Form API (FAPI) and Ctools Form wizard API to build multi-step user registration form. See here.
  5. modal_forms (D7) / ajax_register (D6) / modalframe_contrib (D6): Enable user registration in a lightbox / ajax pop-up
  6. Register with Picture (D6) / user_reg_picture module (D6) / Profile pictures (D6): Enable user picture upload during registration

Social integration with User registration/Sending invites:

  1. Drupal for Facebook OR Similar other modules (D6/D7): Allow new users to login/register using their Facebook login. These modules provide much more than this functionality.
  2. Contact Importer (D6/D7) + Invite (D6) : Use this free solution to allow new users to send invites to their email contacts in Gmail/Yahoo, etc. Invite module can work along with User Relationships to automatically asign friend relation to users accepting the invite with the user inviting them.
  3. Gigya - Social optimization (D6/D7): Allow new users to login/register usign GIGYA's API which provides integration with many social websites such as Facebook/Twitter/etc. You can allow your users to send invites to their contacts as well. GIGYA provides upto 1000 members free, after which it is a commercial service with reportedly high costs (see here,
  4. Janrain Engage (formerly RPX) (D6/D7): Allow new users to login/register usign JANRAIN's API which provides integration with many social websites such as Facebook/Twitter/etc. It is not clear whether you can allow users to send invites or not. It is a commercial service, e.g. $10/mo./5000users, $1000/yr./10000users.

Assign role / different profile to users:

  1. Auto Assign Roles Module (D6): Provides various options for role/profile selection/assignment.
  2. Profile role (D6/D7): Relate profile field categories to particular roles, instead of all fields being related to all roles.
  3. Profile 2(D7): Profile2 allows for creating multiple profile types, which may be assigned to roles.

User Taxonomy in User Profiles:

  1. User Terms (D6): Allows a site administrator to assign taxonomy vocabularies to users (If you are using core profile in D6 and not Content profile), from which terms can be applied to users and shown on account pages.
  2. Profile Taxonomy (D6): Profile Taxonomy enables the assignment of taxonomy terms to user profiles. Same as User Terms module.
  3. Content Profile(D6): Since this module makes profiles as nodes, you can associate taxonomy to this node type.
  4. Profile 2(D7): This module provides a new, fieldable 'profile' entity - leverage the power of fields. In D6, taxonomy had to be associated to node types. However, in D7, taxonomy is a field and can be added to node/entity.

10. Publishing Workflow

How to set up publishing workflow so that admin / role-with-appropriate-permissions approves all content before being published.


  1. You may turn off "Published" option in your content type settings under workflow tab and create a (moderator) role able to publish, then create a View (only visible for moderators) with handy Fasttoggle integration for rapid moderation. If publishing needs to be available only for the site admin (user 1) then simply go to >> Site building >> Content >> Sort by unpublished content (you may want to enable Actions+Trigger or Rules to fire an email to admin when an unpublished content is created and send an email to contributor when it is published by admin).
  2. Using Workflow module (Tutorial:
  3. Using Rules module (Tutorial:
  4. Using Actions+Trigger modules (part of core in D6)
  5. Custom modules like: save_as_draft (for any user with adminster type permissions) / revision_moderation (for admins only) / modr8 / content_moderation
  6. Custom module like: 'revisioning' module (recommended by revision_moderation) - integrates with Rules / Workflow / Trigger / Module_Grants - See Tutorial here,

Example Workflow Scenario:

  1. User creates content, Saves as Draft (no action is taken). Keeps editing content until it is ready.
  2. User Clicks on 'Send to Admin for Review & Publsihing'. User may edit / may not edit until content gets published
  3. Admin/Moderator logs in and views Pending Approval Content List in the Dashboard or some path. Optionally Admin gets an email when new unpublished content is created.
  4. Admin/Moderator reviews and approves it as published. User gets email message that content is published (requires some condition & reaction or custom module to send email).
  5. Alternatively Admin/Moderator promts User that the Content Needs Work with log message / some message. User gets email to re-submit for publishing (requires some condition & reaction or custom module to send email).
  6. Optionally Admin may use Diff module to view changes from previous revisions submitted by User.
  7. Set up which Content Types/ Nodes require approval/publishing workflow.

Some preferred solutions:

  1. For simple workflow requirements like above (e.g. for Admin) you may consider Actions+Triggers modules
  2. For a more flexible and powerful solution use Rules module (Tutorial:

Publishing Workflow Using RULES and CCK

Refer attached file (see bottom of this article) for instructions.

11. Drupal Website Hosting

Types of hosting:

  • Shared web host (CPU, RAM, resources shared with 100s-1000s others on a single server). E.g. Godaddy, HostGator, A2Hosting, Yahoo Web Hosting (provides 1000emails @yoursite), etc.
  • VPS web host (Guaranteed CPU, RAM. One server shares multiple Virtual machines)
  • Cloud web host (Guaranteed CPU, RAM. Resources expandable, and not limited to one server). E.g. Rackspace, Amazon EC2, MediaTemple, GoGrid, etc.
  • Dedicated web host (A single or series of multiple server dedicated to your use). E.g. FDC server, LeaseWeb, etc.

Types of hosting services:

  1. Fully managed - LAMP/Kernel with updates, Security patches/updates, Optional control panel, Site installation/performance basic support. E.g. HostGator, Acquia, etc. Note: Check whether your need is supplied with Fully managed hosting package or not.
  2. Fully managed with Performance enhancement - Tools such as Varnish+APC+Memcache+ApacheSolr+Pressflow. E.g.,, Network Redux Enterprise VPS,, Acquia, DrupalConcept,,, etc. Mercury LAMP image iso install available with, though updates & security will be hard to manage.
  3. Partly managed - LAMP/Kernel with updates, Security patches/updates, Optional control panel, Optional initial site migration assistance
  4. Fully unmanaged - No software/LAMP install, Optional initial LAMP setup with optional cPanel/Plesk control panel, No LAMP/kernel updates, No security setup/updates, No site assistance, Full control over server. E.g. Linode, FDC server, LeaseWeb, etc.


  • CPU/Cores: Processor speed.
  • RAM: Depends upon site activity/authenticated users, Database queries, etc. 1GB+ recommended for starting sites.
  • Hard disk space: Depending on your site requirements. Text is stored in the MySql database, Images/videos/docs take up maximum space. Consider external hosting with embed option, e.g. for video hosting, GoogleDocs/Slideshare/Scribd for Docs hosting. See attachment for some estimation information. Type of Hard Disk option varies from normal HDD or enterprise level SSD/SAS drives, with option for software/hardware RAID-0/1/5/10 (stripping/mirroring) options. RAID can be used to combine number of hard disks or/and use for complete backup/redundancy of your site data to protect site data from disk failures.
  • Bandwidth: Depends upon number of site visitors - anonymous & authenticated. See above/ attached file. Option of Metered (limited by GB. e.g. 200GB, 1TB, 10TB, 100TB) or Unmetered (shared/dedicated 10Mbps/100Mbps/1000Mbps/2000Mbps port speeds).

See attached file for website resources estimate and comparison of website hosting service providers.

Click here to see hosting companies that support the Drupal project.

12. Resource Guides and Informational Pages

Resource Guides:

Informational Pages:

More to Come...

Experienced drupal users are welcome to edit / correct this page and make it more useful for new drupal users.

Looking for support? Visit the forums, or join #drupal-support in IRC.


chrisshattuck’s picture

Great tutorial, would it be useful to add some beginner resources on basic module development, since there's some basic things you just can't do without digging into code? There's a few videos at Build a that might useful for those getting started:

Feel free to delete or integrate this as you see fit. Thanks!

Learn virtually any aspect of Drupal on BuildAModule, where I've recorded over 2200 video tutorials.

Joyy’s picture

Thanks chrisshattuck!
For now, I will let it be in the comments. If you want you may go ahead and add it within the above tutorial itself.
Your videos are a great resource for someone to get into Drupal Module development. Such information in the form of video tutoring are hard to find!

johhan’s picture

Or you can buy the book:
"Drupal 7 Module Development"
It is writen by core developers of the Drupal.

There are some important changes in core of the Drupal 7 !, so it is nice to have the module development explanation, what includes NEEDED context.

Notice: The book is probably reachable in many other languages...
E.g. I myself have read it in Czech language (its name is there "Dupal. Programování modulů")


DirkGuitar’s picture

Thank you so much for this tutorial but i am stuck right at the beginning. I have follwed the steps until i have to click "admin" next to MySql but it doesn't seem to do anything. Please help...

Joyy’s picture

"For a more step by step instructions see here,"
Under Part III, see points D and E. Basically when both Apache and MySql change from “start” to “running” and after clicking the “Admin” button next to MySql, you will be directed to “phpMyAdmin” page in your default web browser. Here you have to create your Drupal site database and provide login information.
Drupal will ask for a database when you install it in the next step.

ernesto.loji’s picture

Thank you very much, I just installed Drupal to create a site for my friend's music school and I was really confused about all this Drupal stuff, this is really helpfull.

If i find a way to help you out, I will. :)

hsaraf’s picture

Hi there...

I started with the two books "Drupal in 24 hours" & "Using Drupal"... if you are a total starter, you may want to start with the first one (D24h) and then come over to UD for case studies...

Although UD offers a brief quick start chapter, this can get too fast paced for a total newbie (at least if was for me)... I found clear separation of topics in D24h to be very crisp and clear...

Also search the umpteen video tutorials on Vimeo and youtube... some other notable ones are yadadrop, gotdrupal, learndrupalbythedrop...

To be honest, Lullabot videos are great, BUT they are old... even though I am still subscribed to them... but they are very OLD... and Lullabot is slow to update videos for the latest versions... I also see them everywhere... which is good and bad... good because they are one of the best and solid quality stuff.... bad because they are busy with D7... and 2ed of the UD book... and the videos and on and on and on... so if you have the patience... then you must subscribe to the videos as well... [pls take this comment with the time in mind, the situation will change dramatically as soon as the D7 modules are stable and the UD 2ed book is released and as soon as the folks have more bandwidth... ; this is only at the time of this comment which is July 2011]

I am still a 3 month newbie... and am still looking for answers... and still looking for the right questions to ask... so it is not going to be a street walk... this is more going to be like a hike... you will enjoy the learning if you have an open mind... willing to commit mistakes... and share a smile...

Good Luck !!!

it_noor’s picture

Thanks alot ..
very important information for all users ..

kriyar’s picture

I really glad to read this post.
It's really useful for Drupal developer.

Many thanks! :D

someoneeelseisnew’s picture

Great info!

I inherited a site that is built on Drupal platform. it is used to create mobile apps and then the backend gives a url to submit to the apple/google play store.

my question is how on earth do i figure out what tool/suite/mod the original person use to set this up?

When i am logged into backend all i see are the regular Drupal backend editing tools. i can edit aspects of the pages in the app, but as a learning process, how do i track down how this starts?

VM’s picture

Discontinue the cross posting of the question. I highly suggest reading the forum posting tips @

tonykunliu’s picture

Thank you very much for this amazing post. This is probably the most informative post for Drupal Beginners (and advanced users)!!!