11 | | 4. Import the pre-configured Drupal database and grant permissions for SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE_TMP_TABLE, and LOCK_TABLES to an appropriate user (e.g. drupal_boinc) on drupal_db_name@localhost. |
| 11 | 4. ~~Import the pre-configured Drupal database and~~ grant permissions for SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE_TMP_TABLE, and LOCK_TABLES to an appropriate user (e.g. drupal_boinc) on drupal_db_name@localhost. |
| 16 | |
| 17 | = Configure System Features = |
| 18 | |
| 19 | The Drupal integration system contains a number of //Features//, which are custom meta packages that provide some specific type of functionality. These might be as simple as providing text for a single link or menu, or as complex as pulling together community contributed modules, custom code, site configurations, and content in order to significantly enhance the site wide experience. |
| 20 | |
| 21 | The purpose of Features is to allow for simple deployment of modules and configurations. Rather than install each Drupal module by hand and "replay" any configurations that are required, enabling a Feature automatically satisfies all dependencies required for its logical function and sets default configurations as appropriate. Deployment of Features is best handled on the command line by using drush. |
| 22 | |
| 23 | == Drush Setup == |
| 24 | |
| 25 | Drush is a Drupal shell program that provides a command line interface to Drupal and is thus scriptable. While some Linux distributions may have a drush package in their repositories, it is best to get the current package via pear (if php-pear is not installed, install it using the appropriate methods for the distribution): |
| 26 | {{{ |
| 27 | # pear channel-discover pear.drush.org |
| 28 | # pear install drush/drush |
| 29 | }}} |
| 30 | |
| 31 | Note: If channel-discover fails, try running "pear upgrade" first. |
| 32 | |
| 33 | == Enable BOINC Features == |
| 34 | |
| 35 | The Features module must be enabled, if it isn't already, or corresponding drush extensions will not be available: |
| 36 | {{{ |
| 37 | # drush en features |
| 38 | }}} |
| 39 | The memory_limit setting for the PHP command line interface may need to be increased beyond the default for drush to function |
| 40 | Once drush is set up, BOINC features can be enabled by first creating symbolic links in sites/all/modules/features-enabled pointing back to the feature module under sites/all/features and then using the following drush command: |
| 41 | {{{ |
| 42 | # drush en [feature...] |
| 43 | }}} |
| 44 | This will automatically determine which additional features or modules are required and prompt for installation thereof. In some cases, it may be necessary to then force an update from file for all features to revert any "overrides" that exist (if any functionality provided by a feature already existed in the site database, it will need to be "reverted" to what is provided by the feature): |
| 45 | {{{ |
| 46 | # drush fr-all |
| 47 | }}} |
| 48 | This command will ensure that all changes in code are applied to the site database. Similarly, when feature code is changed in git, a specific feature or set of features can be updated with the drush fr [feature] command. |
| 49 | |
| 50 | == Manual Changes Required == |
| 51 | |
| 52 | === URL Aliases === |
| 53 | |
| 54 | Required URL aliases include: |
| 55 | |
| 56 | * account -> dashboard |
| 57 | * account/dashboard -> dashboard |
| 58 | |
| 59 | === Menu Configuration === |
| 60 | |
| 61 | Ensure that the Account menu is present and correct. It should contain the following menu items: |
| 62 | |
| 63 | * Dashboard |
| 64 | * Profile |
| 65 | * Account Info |
| 66 | * Preferences |
| 67 | |
| 68 | If "Dashboard" does not exist, it should be created with the same path as the parent (account/dashboard). |
| 69 | |
| 70 | Disable "My bookmarks," which is created by the Flag module, but is not used. |