Skip to content

Development requirements

Languages and Services

  • Required
    • Unix-like environment (Linux, OS X, or a virtual machine)
    • PHP v7.2+ including the following extensions: bcmath curl gd gettext imap intl imagick json mbstring openssl pdo_mysql phar posix soap zip
    • MySQL v5.7.5+ or MariaDB 10.0.2+, including both client and server
    • NodeJS v8+
    • Git
  • Recommended (for civibuild / amp):
    • Apache HTTPD v2.2 or v2.4 including the mod_rewrite module and, on SUSE, possibly mod_access_compat (This list may not be exhaustive.)

Please also see this Installation Guide page for more details on server configuration requirements to deploy CiviCRM installations using buildkit.

Command Line

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

Civi development should work with most packages -- with a priviso: the command-line must support standard command names (eg git, php, node, mysql, mysqldump, etc).

Some environments (e.g. most Linux distributions) are configured properly out-of-the-box. Other environments (e.g. MAMP and XAMPP) may require configuring the PATH.


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.