10

I am new to the developer/code side of CiviCRM and attending the Dev training at CiviCON. I saw a post on StackOverflow about installing buildkit but haven't seen it re-posted here. I would appreciate a little more detailed steps on installing buildkit so I am prepared for the training.

I am using a Mac and it has also been recommended to me that I use MAMP. Would I install buildkit inside MAMP?

15

As Kurund pointed out, the general instructions are at https://github.com/civicrm/civicrm-buildkit . Follow those instructions to download the all the tools.

There are a few details that may not be well represented yet in the documentation:

  1. As the main developer behind buildkit, I use it mostly in MAMP (and a bit in Debian and Ubuntu).

  2. Buildkit runs several things on the command-line, so you need to make sure that the command-line is setup with the right version of php. By default, OSX uses its built-in version of php, but MAMP's version is generally better. See: http://wiki.civicrm.org/confluence/display/CRMDOC/Setup+Command-Line+PHP

  3. I suggest putting buildkit in your home directory (e.g., git clone https://github.com/civicrm/civicrm-buildkit.git ~/buildkit). This is where all the tools will go. The source-code for CMS+Civi may go somewhere else (more in a moment).

  4. After downloading buildkit, you'll need to setup a site with Civi. You can choose among two distinct workflows:

    • gitify: You install CMS+Civi manually and then run gitify to load the bleeding-edge Civi code.
      • Where: You can put the code anywhere. In MAMP, /Applications/MAMP/htdocs is probably easiest.
      • Pro: You can use any tools or processes you want to setup Apache, MySQL, CMS, etc.
      • Pro: Your configuration is custom. You control everything directly.
      • Con: Your configuration is custom. It's hard for other developers to reproduce, and it doesn't match the official test/demo environments.
      • Con: If you need to create multiple sites, you have to do all setup work repeatedly.
      • Con: If you want to work with the automated tests or schema, then you'll need to do several extra configuration steps.
      • Summary: gitify is generally best for light development with a single build.
      • Next step: Setup Apache+MySQL as you normally would. Install a CMS (Drupal/WordPress) and CiviCRM using tarballs or zip files. Then, run gitify with no arguments. It will display a help screen with some examples.
    • civibuild: You run a command like civibuild create d46 --url http://d46.localhost; the command automatically configures Apache+MySQL, downloads Drupal, downloads Civi v4.6, and installs them.
      • Where: All builds will get placed under buildkit's folder. For example, the "d46" build might be ~/buildkit/build/d46.
      • Pro: Setting up new sites is automated. It's easy to create several different sites using a mix of CMS's and versions.
      • Pro: Your configuration is standardized. It matches the official test/demo environments.
      • Pro: Each site is automatically configured to run the automated tests.
      • Con: Your configuration is standardized. Loading things to match your personal preferences requires more work.
      • Con: The upfront configuration can be difficult/unforgiving - buildkit needs access to the internals of Apache and MySQL. Generally, it's based on a philosophy of "fail early, fail hard".
      • Summary: civibuild is generally best for heavy development.
      • Next step: See the detailed tutorials at https://github.com/civicrm/civicrm-buildkit/blob/master/doc/civibuild.md or https://buildkit-ui.civicrm.org/#/welcome .
  5. If you go the civibuild route, then will need to prep the system by running amp config, which will present some questions and instructions for the local system. In a default MAMP configuration, some good values are:

    • db_type: mysql_dsn
    • mysql_dsn: mysql://root:root@127.0.0.1:8889 (or sometimes :3306)
    • perm_type: osxAcl (or none)
    • perm_user: www
    • hosts_type: file
    • httpd_type: apache
    • httpd_restart_command: /Applications/MAMP/Library/bin/apachectl graceful
  6. In any workflow, buildkit has better support for Drupal- or WordPress-based dev-sites. There's some experimental code to support Joomla-based dev-sites, but the Civi-Joomla installer is difficult to automate, and it probably won't be resolved until http://forum.civicrm.org/index.php/topic,35050.0.html gets some real attention.

3

Using MAMP should be fine. You might also have to install git. For detailed instructions on buildkit please check:

https://github.com/civicrm/civicrm-buildkit

https://buildkit-ui.civicrm.org/#/welcome

0

Point 6 above perhaps explains why Joomla seems to be getting less support than Drupal or WordPress. I have a local Joomla environment, but it is probably not correctly configured for development. I was trying to improve that environment, but couldn't find instructions as to how to do it in Joomla.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.