CRM-17280 - contribution detail report: error when sorting by custom contrib field
[civicrm-core.git] / docs / requirements.md
CommitLineData
6ac045aa
TO
1# Languages and Services
2
3 * Unix-like environment (Linux, OS X, or a virtual machine)
4 * [PHP v5.3+](http://php.net/)
5 * [MySQL v5.1+](http://mysql.com/)
6 * [NodeJS](https://nodejs.org/)
7 * [Git](https://git-scm.com/)
8 * Recommended: Apache HTTPD v2.2+
9 * Recommended: Ruby/Rake
10
11# Command Line
12
13There are many ways to install MySQL, PHP, and other dependencies -- for
14example, `apt-get` and `yum` can download packages automatically; `php.net`
15and `mysql.com` provide standalone installers; and MAMP/XAMPP provide
16bundled installers.
17
18Civi development should work with most packages -- but there's one proviso:
19***the command-line must support standard commands*** (`php`, `mysql`,
20`node`, `git`, `bash`, etc).
21
22Some packages are configured properly out-of-the-box. (Linux distributions
23do a pretty good job of this.) Other packages require extra configuration
24steps (e.g. [Setup Command Line
25PHP](http://wiki.civicrm.org/confluence/display/CRMDOC/Setup+Command-Line+PHP)
26for MAMP).
27
544a4677
TO
28In subsequent steps, the download script will attempt to identify
29misconfigurations and display an appropriate message.
6ac045aa
TO
30
31# Buildkit
32
33The developer docs reference a large number of developer tools, such as
34`drush` (the Drupal command line), `civix` (the CiviCRM code-generator), and
35`karma` (the Javascript tester).
36
37Many of these tools are commonly used by web developers, so you may have
38already installed a few. You could install all the tools individually --
39but that takes a lot of work.
40
41[civicrm-buildkit](https://github.com/civicrm/civicrm-buildkit) provides
544a4677
TO
42a script which downloads the full collection.
43
44### - Option #1: Full Stack Ubuntu (Opinionated)
45
46If you have a new installation of Ubuntu 12.04 or 14.04, then you can download everything -- buildkit and the system
47requirements (`git`, `php`, `apache`, `mysql`, etc) -- with one command. This command will install buildkit to `~/buildkit`:
48
49```bash
50curl -Ls https://civicrm.org/get-buildkit.sh | bash -s -- --full --dir ~/buildkit
51```
52
53Note:
54
55 * When executing the above command, you must ***NOT*** run as `root`. (Doing so will produce incorrect permissions.)
56 Instead, you must have `sudo` permissions.
57 * The `--full` option is opinionated; it specifically installs `php`, `apache`, and `mysql` (rather than `hvm`, `nginx`, `lighttpd`, or `percona`).
58 If you try to mix `--full` with alternative systems, then expect conflicts.
59
60
61### - Option #2: Other Systems
62
63If you already installed the requirements (`git`, `php`, etc), then you can download buildkit to `~/buildkit` with these commands:
6ac045aa
TO
64
65```bash
66git clone https://github.com/civicrm/civicrm-buildkit.git buildkit
67cd buildkit/bin
68./civi-download-tools
69export PATH="$PWD:$PATH"
70```
71
544a4677
TO
72### - Option #3: Upgrade
73
74If you have previously downloaded buildkit and want to update it, run:
6ac045aa
TO
75
76```bash
77cd buildkit
78git pull
79./bin/civi-download-tools
80```