Installation of CiviCRM on Drupal

1. Server Requirements

CiviCRM for Drupal has been developed and tested by our team on the following ‘recommended’ platforms:

  • Linux
  • Apache 2.1
  • PHP 5.3.x
  • MySQL 5.x with INNODB enabled
  • Drupal 7.x

2. Drupal Installed

If you do not have the required version of Drupal installed, refer to:

  • Drupal Installation Guide
    Path for Drupal
    The rest of these instructions assume that you have Drupal installed in /var/www/drupal. Adjust paths as needed.

Verify Drupal Database Settings

You will need to know the database settings for your Drupal installation prior to running the CiviCRM installer:

You can look up these values in your Drupal settings.php file (located by default in your <drupal_root>/sites/default directory)

$db_url = 'mysql://dbuser:dbpassword@localhost/drupal';

In the above example:

Setting

Value

Database Server localhost
Drupal Database Name drupal
Database User Name dbuser
Database User Password dbpassword

3. Download and Un-tar CiviCRM Code

All CiviCRM code and packages used by CiviCRM (such as PEAR libraries) are included in the compressed CiviCRM distribution files (‘tarballs’). Follow these steps to download and install the codebase:

  • Download the appropriate tarball file from here with your browser. Tarball file-names include the CiviCRM version. For example, civicrm-4.4.x-drupal6.tar.gz.
  • Copy or ftp the tarball file to your Drupal installation’s /sites/all/modules directory, not the drupal/modules directory, to follow best practice and prepare for future Drupal core upgrades. You may have to change the “File Permissions” setting of /sites/all directory to allow for “Write” Access. Just remember to change it back to default when done.
Downloading Directly to Your Server with wget
If you have command-line access, you may prefer to download the tarball file directly to your server using wget:

// Move into Drupal's modules directory
cd /var/www/drupal/sites/all/modules
// wget the file (modify this line to use the current tarball file name for the version you want)
wget http://sourceforge.net/projects/civicrm/files/civicrm-stable/4.4.x/civicrm-4.4.x-drupal6.tar.gz/download

* Un-tar (unpack) the codebase into the drupal/sites/all/modules directory.

// Move to the drupal/sites/all/modules directory (if not already there)
cd /var/www/drupal/sites/all/modules
// Un-tar the file (modify this line with the actual downloaded filename)
tar -zxvf civicrm_download_file.tgz

* You should now have a drupal/sites/all/modules/civicrm directory with a number of directories below it (including bin, CRM, sql and templates).

4. If Using Localization, Download and Un-tar the Localization Files

Follow these steps to download and install the files that contain strings for languages other than American English:

  • Download the appropriate tarball file from here with your browser. Tarball file-names include the CiviCRM version, and l10n (that’s lower case ell-ten-en). For example, civicrm-4.4.x-l10n.tar.gz.
  • Copy or ftp the tarball file to your Drupal installation’s /sites/all/modules directory, not the drupal/modules directory, to follow best practice and prepare for future Drupal core upgrades. You may have to change the “File Permissions” setting of /sites/all directory to allow for “Write” Access. Just remember to change it back to default when done.
Downloading Directly to Your Server with wget
If you have command-line access, you may prefer to download the tarball file directly to your server using wget:

// Move into Drupal's modules directory
cd /var/www/drupal/sites/all/modules
// wget the file (modify this line to use the current tarball file name for the version you want)
wget http://sourceforge.net/projects/civicrm/files/civicrm-stable/4.4.x/civicrm-4.4.x-l10n.tar.gz/download

* Un-tar (unpack) the language files into the drupal/sites/all/modules directory.

// Move to the drupal/sites/all/modules directory (if not already there)
cd /var/www/drupal/sites/all/modules
// Un-tar the file (modify this line with the actual downloaded filename)
tar -zxvf civicrm_download_file.tgz

* You should now have a drupal/sites/all/modules/civicrm/l10n directory with a number of directories below it (including bin, CRM, sql and templates).

5. Run the Installer

The installer will verify that you’ve downloaded the correct version of CiviCRM, and will check your server environment to make sure it meets CiviCRM requirements. It will then create and populate a database for CiviCRM as well as create your CiviCRM settings file (civicrm.settings.php).

  • Login to your Drupal site with Administrator level permissions.
  • Point your web browser to the following URL:

http://<your_drupal_home>/sites/all/modules/civicrm/install/index.php

  • You should see the CiviCRM Installerscreen.
    • Initially, you will see a red bar with the message “These database details don’t appear to be correct.” This is expected as you haven’t entered your database settings yet.
    • If you see other errors, check the Requirements details at the bottom of the page for more information. You will need to correct any issues before continuing.
  • Fill in the CiviCRM Database Settings.
    Where Should I Store CiviCRM Data?
    CiviCRM may be configured to use your existing Drupal database, or a separate (new) database. Using a separate database is generally preferred – as it makes backups and upgrades easier. The installer will create a new database for CiviCRM automatically if you enter a database name that doesn’t already exist on your database server AND the database user you enter has permission to create databases. In case the installer does not automatically create a new database, simply create a new one following the same process as creating a new database for Drupal. Note that if you plan to use the Drupal Views module to display CiviCRM data within your Drupal pages, and if you are going to use separate databases for Drupal and CiviCRM, you need to ensure that your Drupal database user has SELECT permissions for your CiviCRM database.
  • Fill in the Drupal Database Settings for your existing Drupal database (as noted in step 2 above).
    Loading Sample Data
    The Installer includes an option to load a set of sample contact, group, and relationship data by default. Sample data can provide a useful head-start in learning to use CiviCRM. However, if you do NOT want the sample data to be loaded, just uncheck Load sample data under Other Settings.
  • Select the appropriate language for the base installation. You will be able to add other languages after the installation for multi-lingual sites.
  • Click the Check Requirements and Install CiviCRMbutton.
    • The installer will configure your databases, create the settings file and redirect you to your Drupal Home page.
    • If you still see a red bar with the message “These database details don’t appear to be correct.” – check the Database Details section below your settings for specific errors and problems. Once you correct these problems, click “Recheck requirements” to verify your settings before continuing.
    • If you are on a Windows machine and get the message “The user account used by your web-server needs to be granted write access to the following directory in order to configure the CiviCRM settings file:
      C:<drupal path>/sites/default” even after changing directory permission in Explorer, seehttp://forum.civicrm.org/index.php/topic,5056.msg23720.html#msg23720 for instructions how to change the permissions using CMD.
    • Once you see the green “You’re ready to install!” message – you can click Check Requirements and Install CiviCRM
  • Return to Drupal and enable the CiviCRM module
    • http://<your_drupal_home>/admin/build/modules 
    • Check the box next to CiviCRM, then scroll to the bottom of the page and click the “Save configuration” button.

6. Review Permissions

Note that Drupal tries to create the /files/ directory (and make it writeable), but only when saving admin/settings. Same holds for /temp directory, and a /uploads/ directory in the CiviCRM module root. On a brand-new Drupal install, this directory may be missing. Even on an existing installation, if file permissions are not set properly, the directory may be missing. If enabling the civicrm module generates errors regarding the files directory, you must create it (writeable) manually. Refer to Step 2 for instructions on directories to create and permissions to set.

* Go to Administer » User management » Permissions

  • *- Verify that the Roles that you want to have access to CiviCRM have the appropriate permissions checked. CiviCRM is installed with a number of fixed permissions (such as “edit contacts” and “administer CiviCRM”).
Permissions for the Anonymous Role
Many sites want anonymous visitors to have access to certain CiviCRM functionality. These permissions are enabled during installation for the Anonymous role. You should review them and modify if needed based on your requirements:

  • access all custom data : If you plan on collecting “custom” data from visitors in standalone forms or as they make a contribution – enable this permission.
  • access CiviMail subscribe/unsubscribe pages : If you are planning on using CiviMail, enable this permission to allow anonymous users to subscribe and unsubscribe from mailing lists via the web.
  • access uploaded files : If you plan on allowing visitors to upload or view photos or other files – enable this permission.
  • make online contributions : If you plan on soliciting online contributions from visitors, enable this permission for the “anonymous” role.
  • profile listings and forms : If you plan on collecting name and address or other information from visitors, enable this permission for the “anonymous” role.
  • view event info and register for events : If you plan to use CiviEvent and want to allow un-authenticated visitors to view event information and register for events online – enable these permissions for the “anonymous” role.
  • view event participants : Enable this permission to allow anonymous users to access participant listing pages for events.

7. Create CiviCRM Contacts for Existing Drupal Users

Once installed, CiviCRM keeps your Drupal Users synchronized with corresponding CiviCRM contact records. The ‘rule’ is that there will be a matched contact record for each Drupal user record. Conversely, only contacts who are authenticated users of your site will have corresponding Drupal user records.

When CiviCRM is installed on top of an existing Drupal site, a special CiviCRM Administrative feature allows you to automatically create CiviCRM contacts for all existing Drupal users:

  • Login to your Drupal site with an administrator-level login
  • Click the CiviCRM link in the main navigation block
  • If your Drupal site makes use of the db_prefix setting (in settings.php – cf. Step 2, above), in de top bar click Administer » System Settings » CMS Database Integration, and update the box for the Drupal Users Table Name so that it includes the prefix.
  • Click Administer in the menu bar
  • Click Users and Permissions from the drop-down menu, then select Synchronize Users to Contacts

8. Review the Configuration Checklist

The Configuration Checklist provides a convenient way to work through the settings that need to be reviewed and configured for a new site. You can link to this checklist from the installation success page AND you can visit it at any time from Administer » Administration Console » Configuration Checklist.

9. Test-drive CiviCRM

There should now be a CiviCRM link in your Drupal menu. Click that link and the CiviCRM Menu, Shortcuts, Search and New Individual Blocks should appear.

You can now explore CiviCRM end-user features and begin configuring CiviCRM for your site/organization needs. Refer to the Administrator Guide for information on configuration tasks and options. Tips for creating CiviCRM Profiles (forms), custom data fields and programming custom data manipulation are included in the Drupal installation and configuration example document.

Trouble-shooting Resources

Review the Installation and Configuration Trouble-shooting section of our wiki for help with problems you may encounter during the installation.

You can often find solutions to your issue by searching the installation support section of the community forum OR the community mailing list archives, and you can check out the Installation section of our FAQs.

If you don’t find an answer to your problem in those places, the next step is to post a support request on the forum.

Comments are closed.