Drupal

In der Regel kann man eine Drupal-Site mit einem Projekt gleichsetzen, Projekte nutzen eine Versionsverwaltung, immer häufiger ist dies Git.

Je mehr ich Git nutze, je weniger nutze ich die Möglichkeiten der klassischen Drupal-Multisite-Funkionalität, dem Teilen von Drupal-Core und Contributed-Modules über viele Drupal-Sites hinweg.

Im folgenden möchte ich diese (Verzeichnis-)Struktur innerhalb des Git-Repositories beleuchten und in diesem Zusammenhang Ansätze von spezielleren Drush-Konfigurationsdateien zeigen, welche sich in Drupal-Projekten für mich etabliert haben, ein Teil hiervon ist Drupal-7 spezifisch.

example.com/
 |-- drupal
 | `-- sites
 | |-- all
 | | |-- modules
 | | | |- features
 | | | |- contrib
 | | | `- custom
 | | `-- themes
 | |-- default
 | | |-- default.settings.php
 | | |-- files
 | | |-- themes
 | | `-- settings.php
 | |-- example.sites.php
 | `-- sites.php
 |-- dumps
 | `-- 20120615-185144.sql
 |-- etc
 | |-- apache2
 | | `-- sites-available
 | | `-- example.com
 | `-- drush
 | |--- aliases.drushrc.php
 | |--- git.drushrc.php
 | `--- example.drushrc.php
 |-- privatefiles
 | `-- IMG_6445.JPG
 `-- salt
   `-- salt.txt

  • drupal

    Die Drupal Code-Basis und DocumentRoot des Webservers.

  • dumps

    Hier liegen die Datenbankdumps

  • etc

    Projektrelevante Konfigurationsdateien, relativ zur Wurzel des Dateisystems.

  • privatefiles

    Dateien die über Drupal verwaltet werden, (Ziel beim Hochladen: Private Dateien).

  • salt

    Beinhaltet in der Datei salt.txt, den aus settings.php ausgelagerten Salt

Drush Multi ist eine Erweiterung für die Drupal Shell aka drush. Die eigentliche Kernkomponente, welche aus einem Shellskript hervorgegangen ist, behandelt Drupal-Updates von Drupal-Multisite-Umgebungen.

Rudimente für ein Drupal-Deployment mit

  • Lokaler Entwicklungumgebung
  • Stage-Umgebung
  • Live / Produktionsumgebung

unter Verwendung, der in Drupal-7 neu eingeführten Multisite-Features in der Datei sites.php, Drush-Aliases und einer speziellen settings.php, die in diesem Fall versioniert wird.

sites.php -- Verzeichnis Aliase in Drupal 7.x

Die in Drupal 7.x neu eingeführte Datei sites.php stellt erstmalig Verzeichnis-Aliase für Drupal-Multisites zur Verfügung. So ist es jetzt möglich mit verschiedenen Domains bzw. VirtualHosts ein bestimmtes Verzeichnis innerhalb von sites anzusprechen, ohne über z.B. Symbolische Links zu gehen, was in vorgigen Drupal-Versionen zur Folge haben konnte, daß Datei- oder Modulpfade beim "umbiegen" von der Dev-Site example.mydomain.de auf die Live-Site example.com divergent sind.

 
// sites/sites.php
// (LOCAL) DEV SITE
$sites['example.localhost'] = 'example.com';

// STAGE SITES
$sites['stage-example.mydomain.de'] = 'example.com';
$sites['stage.example.com'] = 'example.com';

// LIVE SITE $sites['example.com'] = 'example.com';
 
@see /path/to/drupal7/sites/example.sites.php
Repeatition of my session features+ during DUB´s "Drupal-Deployment theme night" @ this years Drupalcamp, drupalcity.de, 2011-09-18, this time in english.

This session was intended as an introduction and a motivation to use Features module for deployment and re-usable patterns.

"A Presentation about Monsters, Features and The Plus" or
  • "How to create modules as a non-programmer"
  • "Features: The first step towards Apps"
  • "Share your Drupal genius the easy way: Features"
  • "YAFS: Yet another Features session"
  • "A VCS called FTP"... [1] [2]
features+ Session #dcb11 Foto: © Sven Culley, sense-design.de
features+ Session #dcb11Foto: © Sven Culley, sense-design.de

/me während meiner Session features+ am 2011-09-18 @ drupalcity.de

Gestern bei der DUB, Themenabend Deployment und nicht physisch anwesend: Eine Skypesession zu Features, Features Erweiterungen, Drupal Installationsprofilen, Drush und dem Plus... Skypesession: features+ Foto: Ronald "rokr" Krentz,

features+ Session @ DUB

Foto: © Ronald "rokr" Krentz

/me via Skype, features+ Session zum Deployment Themenabend der Drupal User Group Berlin, 2011-07-07, remote.

Slides der Präsentation "Drupal 6.x, Drupal 7.x -- Scratching the surface" zum Themenabend Drupal7 der Drupal User Group Köln/Bonn am 15.06.2011. Mein Ziel war es Drupal6 und Drupal7 oberflächlich aber technisch gegenüberzustellen bzw.

No Software Patents!

Folie "No Software Patents!" von David Axmark's Keynote auf den DrupalDevDays München im Mai 2010.

@luckow + ich, SCRUM @ #DrupalDevDays Munich 2010Foto: beta.robot, by-nc-sa, http://www.flickr.com/photos/beta-robot/4591718950/

Luckow & /me, #DrupalDevDays @ Scrum aus der Praxis, 2010-05-09, Munich.