By Taylor Miles
What do the White House, NCAA, the Walt Disney Company, and University of Columbia all have in common?
They all use Drupal to power their respective websites.
That is extremely impressive, especially for something that started as a side project in college, but we'll get to the history in a minute.
Let's start by asking ourselves What Is Drupal? and What Can Drupal Do?
What is Drupal? Very high-level, Drupal is an open source CMS platform maintained and developed by over 600,000 developers and users.
What can Drupal do? According to its creator, Dries Buytaert, Drupal can do everything you can dream of.
Now, let's dive in so you can see how to easily start using it in your next website development project.
Brief Drupal History
Drupal started as a personal project of Dries in 1999. He wanted to create a small, internal website where he and his friends in college could discuss or share the things happening around their network.
After graduation, Dries decided to move the site online so that the group can still communicate with each other. He originally wanted the name “dorp.org” for the site because dorp means village in Dutch. But he made a minor typo error during the registration of the domain, so he got the name “drop.org” instead.
The small site morphed into a personal experimentation environment, where members discuss stuff related to web technologies. These ideas were then implemented to the site’s software. All these developments led to the first release of the software running on the drop.org website in 2001.
Dries called the software “Drupal”, a word taken from the English pronunciation of the word “druppel”, which means “drop” in Dutch.
Things You Can Build Using Drupal
We already mentioned several impressive sites using Drupal, and many top universities, such as Stanford, USC, Berkeley, and Colorado-Boulder use Drupal for education.
The real beauty of creating sites with Drupal is that you can do almost anything. It’s like an empty canvas where you can virtually do anything you want. Drupal experts say that Drupal is like a car on manual transmission, while other CMSs are on automatic.
Out of the box, Drupal already comes with basic website features like blogging, forums, and contact forms.
Many developers chose Drupal because they need to build enterprise-level sites that can scale to huge amount of traffic while maintaining performance and availability. There are also several free Drupal hosting platforms you can get started with, such as Pantheon if you're a developer.
Here are some of the sites that you can make out of Drupal:
- Social Networking Sites. Using the right social networking modules, you can create communities like Fanlala and GoingOn.
- Web/Mobile Applications. You can create consumer ratings applications like Angie's List or gamification platforms like Badgeville.
- Blogs. Creating a blog on Drupal is easy. After installation, you can already start your blog even without extra modules. The blog networks Wise Bread and Bond Lifestyle are using Drupal.
- News/Magazine Sites. If you’re building a news or magazine site for a large publication, Drupal is arguably the best option. New Republic, The Economist, and Maxim can attest to that.
The requirements for running Drupal varies with each version (Drupal 6.x, Drupal 7.x, Drupal 8.x). These are decided by the developers working on the Drupal Core. To install Drupal, you may need these system requirements:
- Disk Space. You may need at least 15 MB for a minimum install of Drupal. For a regular site with a lot of themes and modules installed, a total of 60 MB of space is required.
- PHP. For Drupal 6, you may have to use PHP version 4.4.0 or higher. Drupal 7 requires version 5.2.5 or higher, and Drupal 8 needs version 5.3.10 or higher.
- Web Server. You may use Apache, Microsoft IIS, or Nginx.
- Database. MySQL 4.1 or higher, PostgreSQL 7.1 for Drupal 6, and MySQL 5.0.15 or higher (with PDO), PostgreSQL 8.3 or higher (with PDO), SQLite 3.3.7 for Drupal 7.
Before you can proceed to the installation proper, you’ll have to download and extract the latest release of Drupal here. You can also get the previous versions of Drupal. Although, it’s important to note that you’ll have to use a recommended release of any Drupal core files. If you want to download non-English versions, you can do so at Drupal Translations.
Here are the steps to install Drupal:
- Upload Drupal file to server. Put the file in the “www” folder found on your web server’s list of folders. If you’re not sure where that is, you may ask your hosting provider for support.
- Create Database. Just like most CMS, Drupal also needs a database to store information. Most hosting providers offer a browser-based control panel (e.g., cPanel, Plesk) where you can find a “database wizard” that allows you to create databases easily. When creating the user for the database, check “All” privileges, and uncheck the privilege “Grant” if ever there’s one. Don’t forget to jot down the username, password, and database name because you’re going to use this later.
- Run the installation script. If you already have a database for your Drupal site, you can now begin the installation process by opening your domain name (i.e., http://www.yoursite.com) on a browser. Follow all the instructions shown in each step and fill-out all required information. To be safe, just click on the “Save and continue” button with the default settings. You may change these settings later on.
After The Installation
Congratulations on your first installation of Drupal! This means that we’ll now start dissecting the insides of this amazing CMS platform. If you want to use Drupal the less painful way, it’s important that you know and understand the system running behind the CMS.
With that said, here are the basic functionalities of Drupal:
The nodes are basically the building blocks of Drupal. Each post or page that you create is called a node. This feature is what differentiates Drupal from other CMSs, because you can build custom node types by using the module Content Construction Kit (CCK).
Simply put, instead of getting one standard tool for creating all content, you can create and customize your own depending on what you need.
For instance, if you need a content type for all “blog entries”, you can create one solely for that purpose. This means that all types of content will have its own specific node that you can choose. So, as a user, this gives you the flexibility that you need in creating and managing content.
For creating content easily, you can use the CKEditor Module, which is a WYSIWYG HTML editor that features powerful editing functions and a familiar MS Word interface.
If WordPress uses Plugins to extend its functionality, then Drupal relies on Modules. These modules, which are all non-commercial by the way, are everything that you need to create any website that you could imagine.
While other CMSs’ plugins or components comprised of a variety of paid and commercial types, Drupal’s contributed modules are all listed with a GPL license. And if a module is lacking in features or is not available, you can contact a module creator. Or better yet, you can build one for the community.
To install a contributed module, download the file first, upload, unzip it in the modules folder located at /sites/all/modules, and enable it. Make sure that you read the README installation instructions usually included in a module’s files. If you like tinkering things at the command line, you can also install modules using Drush.
Your Drupal installation already comes with core modules that can help you get started with a basic site right away. These core modules include Path, Menu, Blog, Comments, Search, Upload, Profile, and Tracker.
To organize every nodes in your site, Drupal uses a built-in taxonomy system to help you classify each content according to their categories. This system is another powerful core module that gives you the ability to display content the way you want it to be.
And to give you an idea of what taxonomy is in Drupal, think of it as the organizational keywords such as categories, tags, and metadata found in other CMS platforms like WordPress.
Almost all CMS softwares come with a RSS feed feature out of the box. While other platforms generate a single RSS feed for the entire site, Drupal, on the other hand, generates a wide variety of RSS feeds.
Aside from the site level RSS feed, usually found in http://www.yoursite.com/rss.xml, the categories that you made via the core taxonomy module will also have their own RSS feed individually. Most Drupal themes include a feed icon found at the bottom of the page where you can click to view the RSS feed for that category.
It’s worthy to note that the site level RSS feed will only reflect the post promoted on the homepage of your site. You can control how the feeds are displayed by changing the settings at admin/content/rss-publishing.
When installing contributed modules, it’s important that you check the permissions and set it according to your needs. This kind of power in Drupal is called user management. This is where you can control user roles, permissions, and settings.
Users are either added manually by you, as administrator, or through a signup form requesting for a user account. You can view all users by going to the “People” section of the admin area. You can also update user profiles, suspend an account, or delete a user permanently from your site.
If you already have a lot of users, you can sort or filter the user list, or just use the search feature to quickly find a particular person.
Images, audio, and videos are all managed in Drupal through modules. If you want to include images on your site, you have the Image Module, ImageField Module, and Gallery Module. For audio, there are the Audio Module and FileField Module.
And for third-party videos like YouTube or Vimeo, you can directly embed them to Drupal. You can also use the FlashVideo Module, FLV Media Player Module, or Kaltura Module if you want to directly upload videos to your site.
It’s important to note that some of the modules mentioned above are not supported by their maintainers anymore.
In Drupal 7, the Media Module is considered one of the best new modules for media management.
Search Engine Optimization (SEO)
SEO has become a must-have feature in any CMS platform today. Gone are the days when site owners don’t have any care on what goes in their URLs. If you want your site to be crawled by the spiders of major search engines, then you must have a SEO-friendly website. Luckily, there are many SEO modules to help hit the ground running..
Most CMS comes with default URLs that don’t adhere to the best SEO practices. And Drupal is no exception. You know by now that Drupal uses nodes in identifying pages. So the URL of a certain page on your site might be known as “node/123”.
This is where URL aliases come in. It’s a feature in Drupal where you can change the node and number part of a page’s path into something more friendly to search crawlers -- and humans. This means that http://www.yoursite.com/node/123 may become http://www.yoursite.com/myfirstpage.
You may do this on your site by going to Administer > Site Building > URL Aliases. Make sure you write down the number of the page (the one after “node/”) you want to change. Click on the “Add Alias” tab and enter the original path (e.g., “node/123”) in the top box. You can then add the desired name in the second box.
If you don’t want to change each node manually, then use the PathAuto Module. This module automatically generates URL aliases for each new content.
Drupal comes with a default theme upon installation. If you don’t fancy blue/black and white, then you can search for other themes submitted by Drupal contributors.
Once you’ve chosen a winner, download the theme, unzip, and upload the folder of the theme to sites/all/modules folder. Then go to Site building > Themes and activate the newly installed theme. Tweak the theme’s setting, if there’s any, to meet your desired output.
I’ve already emphasized in the opening paragraphs that Drupal is known for its security. But like any other software, Drupal is not perfect. There are many factors that make a CMS vulnerable.
That’s why it’s important that you do your part also in protecting your Drupal site. It’s recommended that you create an admin password that’s strong and change it every month or two. Use anti-spam tools like Akismet, Captcha, etc. For those unregistered/anonymous users of your site, you may want to only allow basic HTML for comments, forms, and other input fields.
Most importantly, always update Drupal core, themes, and modules when a new update is available.
As a new user to Drupal, you might find the software intimidating at first. However, the developers of the CMS platform are doing their best in making Drupal more user-friendly with each new version.
If you want to get started with Drupal right away (and on the right foot), you might want to read the “9 Things You Need For Drupal Development” by Pantheon, which is a Drupal hosting and development platform.
In Drupal 8 (D8), early testers of the development release package are positive with what the new version brings. Some of the modules mentioned above, like the CKEditor, are now included in the core modules. Also, the upcoming Drupal software is reportedly mobile-ready out of the box -- both on the front-end and admin areas.
D8 is expected to be released to the general public around September 2013. There are also more advanced Drupal features, such as Multidev, Multisite, and more than we will cover in a more advanced guide.
Have you used Drupal before? What are you thoughts? Or tips for us to add? Anything else we can help you with?