CiviCRM for Drupal 8 installation notes » History » Revision 12

« Previous | Revision 12/24 (diff) | Next »
Jon Goldberg, 04/13/2019 10:53 PM

{{last_updated_at}} by {{last_updated_by}}

CiviCRM for Drupal 8 installation notes

  • Make sure your composer version is up to date! The one that ships with civicrm-buildkit is quite old.
  • Run the composer command on David Snopek's blog post that fits your scenario (creating a new site vs. adding Civi to an existing D8 site).
    • New site is: composer create-project roundearth/drupal-civicrm-project:8.x-dev some-dir --no-interaction
  • Add the following to civicrm.settings.php (modify the last line for your actual CMS root, and paste this after CIVICRM_UF_BASEURL is defined):
$civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = CIVICRM_UF_BASEURL . '/libraries/civicrm/';                                                                                                     
$civicrm_paths['civicrm.root']['url'] = CIVICRM_UF_BASEURL . '/libraries/civicrm/';
$civicrm_setting['domain']['userFrameworkResourceURL'] = CIVICRM_UF_BASEURL . '/libraries/civicrm/';
$civicrm_paths['cms.root']['path'] = '/home/jon/local/drupal8test/web';


[Note there is an open MR to handle the first two steps in civicrm-composer-plugin, and the third step should be included in Civi 5.13.]
kcfinder (image browsing/upload within CKEditor) is currently broken. You need to do several things to fix.

  • First, copy it to libraries/civicrm: cp -r vendor/civicrm/civicrm-core/packages/kcfinder web/libraries/civicrm/packages/.
  • Your <webroot>/libraries/civicrm/settings_location.php must contain the correct path to the directory which contains civicrm.settings.php.
  • Apply this PR to <webroot>/libraries/civicrm/packages/kcfinder/integration/civicrm.php.

non-bootstrap scripts

  • To get extern scripts and bin/csv/import.php loading correctly, run this (to create a second settings_location.php):
cat << EOF > vendor/civicrm/civicrm-core/settings_location.php

define('CIVICRM_CONFDIR', dirname(dirname(dirname(__FILE__))) . '/sites');

Alternatively, set BOTH settings_location.php values to an absolute path, e.g. /home/jon/local/agbud8/htdocs/web/sites/default.

Updated by Jon Goldberg over 5 years ago · 12 revisions