
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 1.5% 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. Modules are plugin or addon in the core drupal system to give extra features or options.


A note about FTP: If FTP is not enabled for your server, and you try to install via URL, you may receive an error message. Drupal will not be able to diagnose the problem, only tell you that there is one. It's up to you to determine whether your server is properly configured for FTP.
Please note: Especially for sites with a lot of additional modules, many people have begun to further divide the modules folder, to help stay organized. A typical way of doing this would be:
Please 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.
Tip: 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.
Tip: To keep up-to-date on any issues and fixes related to your newly installed module(s), you can create a user account on Drupal.org (if you haven't done so all ready) and then subscribe to the feed of each module you are using.
http://example.com/admin/modules, and click the link 'Install new module.'sites/all/modules folder. (See Update manager for more information about what the that core module can do.) The next screen gives you two links. Click 'Enable newly added modules' and skip down to the 'Enable and configure' section.
tar -zxvf modulename-drupalversionnumber.tar.gz
You should see a list of files extracted into a folder.
Transfer your files with SFTP or FTP to the desired modules folder in your Drupal installation (or if you are using version control, add and commit them to your code repository). 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). Contributed modules belong in sites/all/modules. If you are running a multi-site installation of Drupal, use sites/my.site.folder/modules for 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.sites/all/modules/contrib for all contributed modules.sites/all/modules/custom for all custom modules.sites/all/modules/features if you have additional modules that were created usingFeatures.http://example.com/admin/modules. Check the 'Enabled' box next to the module and then click the 'Save Configuration' button at the bottom. Note: If you are updating an existing module, you'll need to click 'update script' at the top of the page or load http://www.example.com/update.php, then click 'Continue' (after making a backup of both your database and 'sites' folder).
You can also do this on the Permissions page (Administer > People > Permissions). Scroll down to see if the module appears in the list and, if it does, give the appropriate permissions to desired roles.Source: drupal.org