Skip to content
Snippets Groups Projects

Development requirements

Languages and Services

  • Unix-like environment (Linux, OS X, or a virtual machine)
  • PHP v5.3+
  • MySQL v5.1+
  • NodeJS
  • Git
  • Recommended: Apache HTTPD v2.2+
  • Recommended: Ruby/Rake

Command Line

There are many ways to install MySQL, PHP, and other dependencies -- for example, apt-get and yum can download packages automatically; php.net and mysql.com provide standalone installers; and MAMP/XAMPP provide bundled installers.

Civi development should work with most packages -- but there's one proviso: the command-line must support standard commands (php, mysql, node, git, bash, etc).

Some packages are configured properly out-of-the-box. (Linux distributions do a pretty good job of this.) Other packages require extra configuration steps (e.g. Setup Command Line PHP for MAMP).

In subsequent steps, the download script will attempt to identify misconfigurations and display an appropriate message.

Buildkit

The developer docs reference a large number of developer tools, such as drush (the Drupal command line), civix (the CiviCRM code-generator), and karma (the Javascript tester).

Many of these tools are commonly used by web developers, so you may have already installed a few. You could install all the tools individually -- but that takes a lot of work.

civicrm-buildkit provides a script which downloads the full collection.

Installing buildkit on Ubuntu

If you have a new installation of Ubuntu 12.04 or 14.04, then you can download everything -- buildkit and the system requirements (git, php, apache, mysql, etc) -- with one command. This command will install buildkit to ~/buildkit:

curl -Ls https://civicrm.org/get-buildkit.sh | bash -s -- --full --dir ~/buildkit

Note:

  • When executing the above command, you must NOT run as root. (Doing so will produce incorrect permissions.) Instead, you must have sudo permissions.
  • The --full option is opinionated; it specifically installs php, apache, and mysql (rather than hvm, nginx, lighttpd, or percona). If you try to mix --full with alternative systems, then expect conflicts.

Installing buildkit on other systems

If you already installed the requirements (git, php, etc), then you can download buildkit to ~/buildkit with these commands:

git clone https://github.com/civicrm/civicrm-buildkit.git buildkit
cd buildkit/bin
./civi-download-tools
export PATH="$PWD:$PATH"

Upgrading buildkit

If you have previously downloaded buildkit and want to update it, run:

cd buildkit
git pull
./bin/civi-download-tools