Last updated 12 October 2015. Created on 21 June 2006.
Edited by ashish_nirmohi, dhwani.addweb, gisle, 2020media. Log in to edit this page.

You can add third-party contributed modules to extend or alter Drupal's behavior.

(For Drupal 7, please see: Installing contributed modules (Drupal 7).)

Basic instructions

Obtain the module(s) as an archive and extract the files to your Drupal installation (normally into sites/all/modules), read the directions, and enable the module(s) on the Modules administration page (Administer > Site building > Modules).

Note that experienced Drupal site builders generally use command-line techniques like the UNIX wget command or drush. There is also a Plug-in Manager module that allows you to install other modules using your Drupal site's web interface.

Detailed Instructions

  1. Download the module. The module version must be compatible with your version of Drupal. Note that "Development snapshots" are modules that are in an active stage of development. They may be written for a previous/current/future version of Drupal, and they are considered unstable and should be handled with care. It's the safest to download the "Recommended" version.
  2. Extract the files. When you first get the module, it will appear in a compressed file format, either tar.gz or .zip. On Windows, use a program like 7-zip to extract it. On the Mac, you can use Stuffit Expander. For unix systems, use the command line:

    tar -zxvf modulename-drupalversionnumber.tar.gz After extracting the file, you should see a list of files inside a folder with the module's name.

  3. Upload the folder. Using SFTP (file transfer protocol) or Git (version control), upload your files to the desired modules folder in your Drupal installation. The modules folder at the top level of your Drupal installation is reserved for Drupal core modules (the ones that come with the original download of Drupal). So, you should generally create a sites/all/modules directory and put uploaded modules there. If you are running a multi-site installation of Drupal, you can create a modules folder under sites/ and put modules there that are specific to a particular site in your installation. Modules that will be shared between all sites should be placed in sites/all/modules.

    Note: You can only have one copy of a module with the same name in each Drupal site. The module's name is determined by the name of the .module file, not by the name of the directory.

  4. Read the directions. If the module has an installation file (usually INSTALL.txt and/or README.txt), read it for specific instructions. There are modules that require special treatment, and even modules that depend on other downloaded files to function properly. Sometimes the README file has no .txt extension. When you try to double-click on it, your computer doesn't know what program to use. In that case, open your favorite text editor first, and then open the file using the editor's 'file open' command.
  5. Enable the module. Navigate to Administer > Site building > Modules. Check the 'Enabled' box next to the module and then click the 'Save Configuration' button at the bottom. NOTE: If you're upgrading an existing module you'll need to browse to your update page at and click on 'run the database upgrade script'.
  6. Configure permissions. Some modules will require you set permissions to get them working (and available to all users). Permissions information may be in the instructions that came with the module. Usually, you will need to go to Administer > User management > Permissions (for Drupal 5 it's Administer > User management > Access control). Scroll down to see if the module appears in the list and if it does, give the appropriate permissions to desired roles.
  7. Adjust settings. Most modules will have some type of configuration page. It will vary from module to module but if not described in the README.txt file, it will usually be located under Administer > Site building or Administer > Site configuration. If you have trouble locating a module's settings page try navigating to and see if the module appears in the list. If it does, its configuration page(s) will be listed there. If all else fails, check the module's .module file for a 'modulename_menu' function; even if you're not a coder, the settings path, if there is one, should be pretty easy to discern.
  8. If you run into problems, search the module's issue queue and the forums. If your problem hasn't already been addressed, post a question or issue and someone will try to help you out.

Note: To keep up-to-date on any issues and fixes related to your newly installed module(s), you can create a user account (if you haven't done it already) and then subscribe to each module you are using.

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


LarsKramer’s picture

As an alternative to step 2 - 4 you might want to upload the compressed file and then extract the file on the server. Most shared hosts have a file manager which allows you to extract files just by clicking a button. And they also have a "view" or "edit" button which lets you check the readme text file.
In case of big modules (with many files), this approach is generally a lot faster, especially with a not so fast internet connection, because you only need to upload a single file.

Christie Ewen’s picture

Also see The Drupal Cookbook (for beginners). The "Adding modules and themes" section provides helpful details and one line command alternatives for advanced users.

Here's the link:

claning’s picture

I've been taught to always upload the .tar.gz files for modules, themes and Drupal core into an appropriate place on the server and to unzip them *on* the server.

I've seen mixed advice on whether it's okay to do it the other way around -- unzip the file on my computer and then upload the resulting folder to the server.

I know that the first way is possible because I've done it, although apparently not all FTP clients have an "unarchive" function built in. (I'm using Cyberduck) However I now have a client on a different hosting service, for whom this apparently doesn't work.

Comments? Bad experiences doing it one way or the other? Is it OK for some types of files and not others?

alainr345’s picture

Again, these instructions are very optimistic and narrow:
We did steps 1., 2. and 3 with ctools (yes, the right version for that Drupal version). We got to step 4. (by the way, there is no INSTALL.txt and/or README.txt or any other useful text file in the distribution, or on their project page for that matter). Then at step 5., we were stuck: no 'ctools' in 'Administer > Site building > Modules'. This thing worked ONLY when we did move the module files in the path of our website (sites/awebsite/ctools), which is in direct contradiction with what's written on this page. THAT works. Boys will be boys, programmers will be programmers... A.R.

Jay Adan’s picture

Actually, the instructions are pretty much spot-on. If, after following the instructions above, your install didn't work properly you might look for the root cause for this situation rather than assuming the instructions are wrong or incomplete.

ICIT’s picture

Just a note to item 2 above:

When installing the “Administration menu”, Administration menu modul (admin_menu-7.x-3.0-rc1), in to D7.8 the installation guide prompts the installer to use the zip-file - NOT extracted ones (which I tried to do).

When following the guidelines of the installation in the administration interface everything worked out fine (as it uses to do when following the guides, as far as I've experienced so far on my brand new path of using Drupal [and being as much a brand new CMS user as well] - and I must say I really like every bit of it, all the comprehensive and really pedagogical elaborated help texts and the friendly atmosphere that I hitherto met in the Drupal community).

N74JW’s picture

Where is sites/all/modules ? Using absolute paths instead of relative paths can be a big help to beginners like me. I am sure this location exists on my server but have spent hours looking and cannot find it.

It is NOT in: /var/www, /var/lib/drupal6, /etc/apache2

ronan.orb’s picture

@N74JW: When you extract drupal. There should be a *sites* subfolder in that folder structure. sites/all/modules therefore is below your drupal root. If *all* and *all/modules* is not there. Just create it.

zipdadog’s picture

To enable the module. Navigate to Administer > Modules. Check the 'Enabled' box next to the module and then click the 'Save Configuration' button at the bottom.