CiviCRM is an open source constituent relationship management (CRM) solution. It has been compared to Sugar CRM and Vtiger, the difference being that CiviCRM is designed specifically for advocacy, non-profit, and non-governmental organizations.
CiviCRM can integrate with Drupal, Joomla, or WordPress content management systems. I’m a Joomla guy, and document here my experiences installing CiviCRM (most recently, 4.3) on Joomla — locally and remotely, on Linux, BSD, and Windows.
IS CiviCRM A GOOD FIT FOR YOU?
CiviCRM is a monster, so begin by insuring it is a good fit for your needs. To think of it as a Joomla extension is misleading: it is in fact a full-fledged CRM quite a bit larger and more complicated than Joomla itself. Its size and complexity are wholly justified given its feature set and the needs of its intended users, but don’t commit yourself to the care and feeding of an 800 pound beast if you have modest needs that can be met by easier solutions. Two references that can help you evaluate CiviCRM’s appropriateness for your organization are:
- the “Introduction” and “Getting Prepared” chapters in the online book Understanding CiviCRM
- chapters 1 and 2 of Using CiviCRM (Joseph Murray and Brian Shaughnessy, Packt Publishing, 2011)
CiviCRM won’t work on cheap hosting. I had an installation running adequately on Pair Networks shared hosting, but Pair is a top-tier host and this was a modest installation. Always use a top quality host with CiviCRM experience, and if you start with shared hosting make sure there is a painless upgrade path to VPS or dedicated hosting.
You will invest considerable time and/or money in installation, configuration, and training before your organization will see benefits. You and your organization should accept this fact before beginning.
IS JOOMLA A GOOD FIT FOR YOU?
If you go with CiviCRM, consider using Drupal rather than Joomla. This is the advice CiviCRM’s developers give. This is not to suggest that we Joomla users get a second-rate product or poor support, but surely the developers know which platform is better suited for their product. Additionally, much of CiviCRM’s documentation is Drupal-centric, and many forum participants use and know Drupal more than Joomla.
If I haven’t scared you away, let’s begin.
PREPARATION, DOWNLOAD, AND INSTALLATION
The following is abridged from CiviCRM’s Joomla installation guide; refer to it for additional information. As newer versions of CiviCRM are released, documentation is likewise updated and assigned new URLs. This article provides links to documentation I’ve used, but you should insure that all documentation you refer to corresponds to the CiviCRM version you are using.
Per the installation guide, insure your PHP settings are at least:
memory_limit = 128M register_globals = Off max_execution_time = 600
Download the latest stable joomla-alt version of CiviCRM and the MD5 sum file. If you require CiviCRM in a language or localization other than U.S. English, then also download the localization package labeled l10n.
Check the integrity of the downloaded files. For example, on one local box, md5sum -c civicrm-4.2.9.MD5SUMS.
Many remote hosts have PHP builds without zip functionality, which CiviCRM requires. The alt version gets around this by providing built-in zip functionality. I avoid problems by always using the alt version.
On one remote installation I used SSH and wget to download the files directly into the server:
% cd public_html/example.com/tmp/ % wget http://downloads.sourceforge.net/project/civicrm/civicrm-stable/4.0.7/civicrm-4.0.7-joomla-alt.zip % wget http://downloads.sourceforge.net/project/civicrm/civicrm-stable/4.0.7/civicrm-4.0.7-l10n.tar.gz
Note that CiviCRM is not installed in the usual manner of most Joomla extensions. Be prudent and back up your Joomla installation before continuing.
Unpack the CiviCRM installation file in Joomla’s temporary directory. How you do this depends on where you are installing CiviCRM:
On a local server
Copy the CiviCRM installation package to Joomla’s temporary directory. Change the owner of the installation package to be the same user that you originally installed Joomla as. Become that user and unpack it. On one local installation that was done thus:
$ su # cd /var/www/html/joomla1.5/tmp/ # cp /home/USER/Downloads/civicrm-3.3.5-joomla.zip . # chown apache: civicrm-3.3.5-joomla.zip # su apache $ unzip civicrm-3.3.5-joomla.zip
Confirm that the new directory com_civicrm/ has been created.
On a remote server
SSH into your hosting account, cd to Joomla’s temporary directory, and unpack:
% cd public_html/example.com/tmp/ % unzip civicrm-4.0.7-joomla-alt.zip
Confirm that the new directory com_civicrm/ has been created.
On any server
Once unpacked on your local or remote server, open the Joomla backend and go to Extensions – Extension Manager. Find the “Install from Directory” field. Specify the full path into the com_civicrm/ directory and press “Install”.
You should see the message “Install Component Success”. Follow the instructions as shown.
If the installation fails with the error message “Your PHP version is missing zip functionality,” then you should have used the alt installer. As your mother used to say, I told you so. Follow these instructions to clean up your installation, then try again with the alt installer.
For additional help with installation, see the troubleshooting section of the Joomla extension installation notes.
Optionally, install localizations as desired.
Depending upon your needs, you may want to create a corresponding CiviCRM contact for each of your Joomla users. In Administer – System Settings – CMS Database Integration, change the Joomla Users Table Name to match your installation. If you don’t yet have Joomla users set up — perhaps this is a new Joomla installation — create the Joomla users. Once you have Joomla users set up, then in Administer – Users and Permissions – Synchronize Users to Contacts, press “OK” to make it so.
On every installation I’ve done, CiviCRM’s change log timestamps were indicating the server’s local time rather than the users’, despite Joomla being properly configured for the users’ timezone (Site – Global Configuration – Server – Location Settings) and local time being indicated correctly by Joomla. To correct this, I added the following:
- To .htaccess: SetEnv TZ America/Tegucigalpa
- To php.ini: date.timezone = “America/Tegucigalpa”
Naturally, you will want to look up your timezone and replace mine with yours. I changed both files, but perhaps only one needs to be changed. It took several minutes for the changes to take effect.
Configure CiviCRM as needed.
Joomla’s one-click extension upgrade feature does not apply to CiviCRM, and it must be upgraded manually.
If CiviCRM is not what you are looking for, there are alternatives.
My CiviCRM notes