wiki:DrupalServer

Version 72 (modified by admin, 4 years ago) (diff)

--

Drupal 7

Assuming you installed your VM from the DrupalServer image:

  • dpkg-reconfigure drupal7
    • use drupal as the name of the database user.
  • a2enconf drupal7
  • service apache2 reload
  • cd /etc/drupal7/sites/default
  • mv settings.php default.settings.php

Create a baseurl.php file with the site's domain name, and proxy settings:

<?php
$base_url = 'http://demo2.faikvm.com/drupal7';
$conf['reverse_proxy'] = TRUE;
$conf['reverse_proxy_header'] = 'HTTP_X_CLUSTER_CLIENT_IP';
$conf['reverse_proxy_addresses'] = array('10.0.2.51', '172.16.0.1');

Create a temporary settings.php including both dbconfig.php, and baseurl.php

<?php
include "base_url.php";
include "dbconfig.php";

Open up the web interface, and perform the install.

Solr

We're going to install solr-tomcat, since it has many less dependencies in debian.

  • apt-get install solr-tomcat

Add the hostname of the localhost to the '127.0.0.1' line in /etc/hosts.

Copy the drupal solr configurations into solr:

  • cd /usr/share/drupal7/modules/search_api_solr/solr-conf/3.x/
    • {{{cp *.xml protwords.txt stopwords.txt synonyms.txt solrcore.properties /usr/share/solr/conf/

Start solr:

  • /etc/init.d/tomcat7 start

Install the drupal modules for talking to solr.

Drupal7

  • cd /usr/share/drupal7/modules
    • wget https://ftp.drupal.org/files/projects/entity-7.x-1.6.tar.gz
    • tar -xzf entity-7.x-1.6.tar.gz
    • wget https://ftp.drupal.org/files/projects/search_api-7.x-1.17.tar.gz
    • tar -xzf search_api-7.x-1.17.tar.gz
    • wget https://ftp.drupal.org/files/projects/search_api_db-7.x-1.5.tar.gz
    • tar -xzf search_api_db-7.x-1.5.tar.gz
    • wget https://ftp.drupal.org/files/projects/search_api_solr-7.x-1.10.tar.gz
    • tar -xzf search_api_solr-7.x-1.10.tar.gz

Log into the web interface, and enable the 'Entity API', 'Database search', 'Search API', and 'Solr search' modules.

  • click on 'Configure' next to the 'Search API'.
    • Click on 'Add server'.
      • Pick a name and a description for your SOLR search provider.
      • Change the 'Service class' to 'Solr service'. the dropdowns below this section of the page will appear.
      • Change the 'Solr port' to 8080, for tomcat.
      • Accept the rest of the defaults, by clicking on 'Create server'.
    • Click on 'Add index'.
      • Pick a name and a description for your index.
      • Select 'Node' in the Item type dropdown.
      • Select the server created in the last step.
      • select the check box next to 'Index items immediately'.
      • Accept the rest of the defaults, by clicking on 'Create index'.
      • Go to the bottom of the next page, and select 'Add Related Fields'.
        • add the fields for author, and for the main body text.
      • select 'Content Type', 'Title', 'Date Created', 'Date Changed', 'Author', 'Author » User roles', and 'The main body text » Text'. make sure the Title has a higher priority than the Main Body Text.
      • Save Changes.

Drupal8

  • sudo apt-get install php5-gd php5-mysql ca-certificates apache2-mpm-prefork libapache2-mod-php5 mariadb-server
  • Make unstable available as a debian repository, then:
    • sudo apt-get install composer php5.6-curl php-curl
    • NOTE: composer is required for civicrm-drupal.
  • sudo a2enmod rewrite

Nick-old

From .tar.gz:

  • wget http://ftp.drupal.org/files/projects/drupal-8.0.0-rc1.tar.gz
  • cd /var/www/html/
    • tar -xzf ~/drupal-8.0.0-rc1.tar.gz

Change domain name in /var/www/html/drupal8/core/lib/Drupal/Core/DrupalKernel.php's initializeRequestGlobals(): $base_url="http://anacostia.faikvm.com";

Add the following after the line use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; in /var/www/html/drupal8/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php:

/* for CiviCRM Views Module. -- JEL */

use Symfony\Component\DependencyInjection\Exception\RuntimeException;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\Yaml\Exception\ParseException;
use Symfony\Component\Yaml\Parser as YamlParser;
use Symfony\Component\ExpressionLanguage\Expression;

Tip

From git:

  • cd /var/www/html
    • sudo git clone https://github.com/drupal/drupal.git drupal8

Common

  • sudo mkdir /var/www/html/drupal8/sites/default/files
  • sudo chown www-data.www-data /var/www/html/drupal8/sites/default/files
  • cd /var/www/html/drupal8/sites/default
    • add the following configuration changes in the appropriate places inside default.settings.php:
      $settings['reverse_proxy'] = TRUE;
      $settings['reverse_proxy_addresses'] = array('172.16.0.1', '10.0.2.51');
      
    • sudo cp default.settings.php settings.php
  • sudo chown www-data.www-data /var/www/html/drupal8/sites/default/settings.php
  • sudo chown www-data.www-data /var/www/html/drupal8/sites/default

Enable clean URLs

Nick-old

  • Add the following right before the closing tag of /etc/apache2/sites-available/000-default.conf
    <directory /var/www/html>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ drupal8/index.php [L]
    </directory>
    

Tip

  • Add the following right before the closing tag of /etc/apache2/sites-available/000-default.conf
    <directory /var/www/html>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ drupal8/?q=$1 [L,QSA]
    </directory>
    

common

  • Restart apache.
    • sudo service apache2 restart

Database Setup

  • mysql -u root -p
    • create database drupal8;
    • create user drupal;
    • GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, TRIGGER, CREATE TEMPORARY TABLES ON drupal8.* TO 'drupal'@'localhost' IDENTIFIED BY 'password';
      • Note that TRIGGER is required for CiviCRM, not drupal.
    • quit

Web Interface

Go to the URL of your Drupal8 server.

  • Yes, you have to continue anyway, due to drupal8 not detecting that clean URLs are available.
  • No, do not bother checking for updates. We are going to handle this manually.

CiviCRM

  • sudo mkdir /var/www/html/drupal8/libraries

Nick

  • cd /var/www/html/drupal8/libraries
    • wget http://dist.civicrm.org/by-date/latest/master/civicrm-4.7.beta1-drupal-20151103.tar.gz
    • tar -xzf civicrm-4.7.beta1-drupal-20151103.tar.gz
    • rm -rf /var/www/html/drupal8/libraries/civicrm/drupal

Tip

From git:

  • cd /var/www/html/drupal8/libraries
    • sudo git clone https://github.com/civicrm/civicrm-core civicrm
  • cd /var/www/html/drupal8/libraries/civicrm
    • sudo composer install
    • sudo git clone https://github.com/civicrm/civicrm-packages.git packages

CiviCRM-Drupal

From git:

  • cd /var/www/html/drupal8/modules/
    • sudo git clone -b 8.x-master http://github.com/civicrm/civicrm-drupal.git civicrm

Running the Code Generator

  • cd /var/www/html/drupal8/libraries/civicrm/
    • sudo ln -s ../../modules/civicrm/ drupal

Either:

  • cd /var/www/html/drupal8/libraries/civicrm/xml/
    • sudo php -d mysql.default_host="$PHP_MYSQL_HOSTPORT" -d mysql.default_user=$DBUSER -d mysql.default_password=$DBPASS GenCode.php schema/Schema.xml '' "drupal"

Or:

Installing packages with Bower

  • apt-get install npm
  • cd /var/www/html/drupal8/libraries/civicrm/
    • npm install bower
    • sudo nodejs ./node_modules/bower/bin/bower --allow-root install

Web Interface

  • under 'Extend', select the 'CiviCRM Core' extension, and scroll to the bottom of the page to 'Install'.
  • under 'Extend', select the 'CiviCRM Views' extension, and scroll to the bottom of the page to 'Install'.

Themes

Danland

Not yet ported. They say it will be, but... Email sent to developer, no response.

Civi Bartik

Reported working at one time.

  • cd /var/www/html/drupal8/themes/
    • git clone -b 8.x-1.x git://git.drupal.org/project/civi_bartik.git

Pre-Work Update Procedure

  • cd /var/www/html/drupal8/
    • sudo git remote update
    • sudo git pull
  • cd /var/www/html/drupal8/modules/civicrm/
    • sudo git remote update
    • sudo git pull
  • cd /var/www/html/drupal8/libraries/civicrm
    • sudo git remote update
    • sudo git pull
  • cd /var/www/html/drupal8/libraries/civicrm/packages/
    • sudo git remote update
    • sudo git pull

Reset Procedure

  • mysql -u root -p
    • drop database drupal8;
    • create database drupal8;
    • GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, TRIGGER, CREATE TEMPORARY TABLES ON drupal8.* TO 'drupal'@'localhost' IDENTIFIED BY 'password';
    • quit
  • cd /var/www/html/drupal8/sites/default/
    • sudo cp default.settings.php settings.php