Drupal Installieren

Als erstes muss man sich entscheiden, ob man nur Drupal Core installiert und alle Module selber zusammenstellt, oder ob man eine fixfertig vorkonfigurierte Distribution verwendet.

Für mein aktuelles Projekt hab ich mich für den Drupal Core entschieden.

Vorbereitungen

  • PHP register globals muss ausgeschaltet sein (register_globals = Off).
  • Die PHP Extension pdo und pdo-mysql (sofern du MySQL benutzt – sonst die entsprechende Extension wählen) muss installiert sein.

Installation

Gewünschte Distribution oder Drupal Core runterladen und Installationsprozess ausführen.

Multisite Installation

Man kann für verschiedene Projekte eine einzige Drupal Installation benutzen. Das hat den Vorteil, dass man bei Updates nur 1x den Update Prozess durchlaufen muss – und nicht 10x wenn man 10 verschiedene Drupal Installationen hat.

Wichtig dabei zu beachten ist, dass man dies nur machen sollte, wenn die Projekte dieselben Module benötigen. Spezialprojekte sollten weiterhin separat installiert werden.

Die Original und Detailierte Anleitung von Drupal für Multisite Installationen ist hier zu finden.

Vorgehen

  1. Drupal ganz normal installieren
  2. Sites einrichten:
cd sites/
mkdir example.com
cp default/default.settings.php example.com/settings.php

Die Site-Spezifischen Files gehören dann hier hin:

sites/example.com/settings.php
sites/example.com/themes/custom_theme
sites/example.com/modules/custom_module

Danach einfach die entsprechenden Domains aufrufen (example1.com, example2.com, etc) und jede Installation einzeln ausführen.

Die Module, die man für alle Domains zur Verfügung stellen möchte, kommen in das Verzeichnis:

sites/all/modules

 

Updates

Auch wenn man Multisites hat, müsste man nach einem Modul Update (also einfach das aktualisieren des einzelnen Module – Folders) für jede einzelne Seite das update.php ausführen.

Die Updates lassen sich aber auch einfacher und schneller über die Command Line durchführen. Dazu einfach das Tool drush verwenden.

Installation unter Freebsd:

cd /usr/ports/www/drush
make install clean

Mehrsprachige Seite gestalten

Hier die Anleitung für mehrsprachigen Content auf einer Drupal Seite.

Weitere Infos: http://drupal-translation.com/content/setup-multilingual-site

Module

Diese Module sollten in keiner Installation fehlen:

  • Views
    eins der wichtigsten Module überhaupt – denn Listen braucht man eigentlich immer. Weitere Infos…
  • Chaos tool suite (ctools)
    wird für Views (ab Drupal 7) benötigt.
  • Token
    Damit kann man im Text mit Placeholders arbeiten (wie z.b. [user] etc.) Dieses Modul wird jedoch auch für Pathauto benötigt.
  • Pathauto
    ermöglicht, dass die URLs sinnvoll aussehen: /category/my-node-title statt /node/123
  • Wysiwyg
    (optional) ist selber kein Editor. Bei diesem Modul handelt es sich um eine Schnittstelle, damit man den gewünschten Editor benutzen kann.
  • Google Analytics
    Fügt die nötigen Codes für Google Analytics zur Seite hinzu.
  • XML sitemap
    Notwendig für SEO Optimierungen.
  • Page Title
    Ebenfalls ein sinnvolles SEO Tool
  • Meta tags quick
    SEO Optimierungen
  • Meta Tag
    SEO Optimierungen
  • Administration Menu
    Einfach sehr hilfreich & übersichtlicher als die default Navigation.
  • Backup and Migrate
    Sagt bereits alles aus 🙂
  • CKEditor – WYSIWYG HTML editor
    Ist einfach angenehmer mit einem WYSISYG Editor zu arbeiten.

Eine Liste von Modulen, die ich mir noch genauer anschauen möchte:

Weitere Infos zu unverzichtbaren Modulen…

 Themes

 Themes entweder selber gestalten oder eines von vielen fertigen Designs wählen.

Konfiguration

TinyMCE

Man kann TinyMCE so konfigurieren, dass im Editor der Inhalt so dargestellt wird, wie es am Ende auch aussehen muss.

Admin > Konfiguration > Inhaltserstellung > WYSIWYG Profiles
Hier nun das gewünschte Format auswählen. Ich hab hier nur „Full HTML“ wo WYSIWYG Sinn macht.
Full HTML > Bearbeiten
admin/config/content/wysiwyg

Hier gibt es zwei Varianten:

  1. Site CSS & Admin CSS sind identisch
    Hier unter
    CSS > Editor CSS > Use Theme CSS auswählen
  2. Site CSS & Admin CSS sind unterschiedlich
    Hier unter
    CSS > Editor CSS > Define CSS auswählen.
    Dann unter
    CSS path > Die URL zum css File des Site Themes eingeben.

Drupal Upgraden

Bei Minor Version Upgrades:

  1. Backup von Drupal machen (DB & Files)
  2. Aktuellste Version Downloaden
  3. Archiv extracten und UPDATE.TXT durchlesen (falls bei diesem Release spezielle Handlungen durchzuführen wären).
  4. Das /sites Verzeichnis bei dem soeben extracteten Archiv löschen.
  5. Seite in Maintenance Mode setzen (Konfiguration -> Entwicklung -> Wartungsmodus)
  6. Alle Dateien und Verzeichnisse der bisherigen Drupal Installtion löschen (ja, wirklich!) AUSSER dem /sites Verzeichnis sowie eventuellen Custom Dateien, die Du sonst noch hinzugefügt hast.
  7. Nun alle Files der aktuellsten Version (ausser dem gelöschten /sites Verzeichnis) auf den Server laden.
  8. Jetzt auf der Seite einloggen
  9. update.php ausführen (example.com/update.php)
  10. Maintenance Modus wieder deaktivieren.

Für weitere Infos:

Eigene Distribution erstellen

Hat man Drupal einmal wie gewünscht installiert & konfiguriert, kann man sich für zukünftige Installationen viel Arbeit ersparen, indem man entweder eine eigene Distribution erstellt, oder z.B. Module wie Features verwendet.

Diverses Tipps

Login Formular wird nicht angezeigt.

Wenn man sich unter domain.ch/admin einloggen möchte, kommt lediglich „Zugriff verweigert“ aber man kann sich nicht einloggen. Um Loginformular sichtbar zu machen, folgende URL aufrufen:

http://domain.ch/?q=user

Man kann das Login Formular auch dauerhaft zusammen mit der „Zugriff verweigert“ Seite anzeigen lassen. Dazu einfach wie folgt vorgehen:

  1. Erstelle eine „Zugriff verweigert“ Seite. node/add/page
  2. Nun folgenden Text einfügen: „Sie haben keine Zugriffsberechtigung für diese Seite. Bitte nutzen Sie das Login Formular. Falls Sie das Login Formular nicht sehen können, sind Sie bereits eingeloggt, haben jedoch keine ausreichende Berechtigung, diese Seite zu  öffnen.“
  3. Speichere nun diese Seite
  4. Kopiere nun die URL der Seite. In meinem Fall ist dies content/zugriff-verweigert
  5. Gehe nun Struktur > Blöcke (admin/structure/block) und verschiebe den Block „Benutzeranmeldung“ zum „Inhalt“. Danach speichern.
  6. Nun den Block „Benutzeranmeldung“ Konfigurieren. Bei den Sichtbarkeitseinstellungen unter „Diesen Block nur auf den aufgelisteten Seiten anzeigen “ > „Nur die aufgelisteten Seiten“ auswählen. Und hier die URL einfügen, die wir vorher kopiert haben. In meinem Beispiel ist es content/zugriff-verweigert
  7. Nun gehen wir nach Konfiguration > System > Website-Informationen (admin/config/system/site-information) und dort bei der 403 Fehlerseite geben wir nun wieder den Pfad zur Seite ein. content/zugriff-verweigert und speichern.
  8. Nun testen ob’s klappt. Also ausloggen und z.B. Admin Seite aufrufen. Nun sollte das Loginformular erscheinen. domain.com/admin

Registry Rebuild

Nach Updates, manuellen Folder Umbenennungen etc. kann es manchmal zu solchen Fehlermeldungen kommen, dass man nicht einmal mehr update.php ausführen kann. Das ist oft der Fall, wenn man z.B. bei Multidomain Sites einen Subdomain wechselt/umbenannt hat und dann die Pfade nicht mehr mit denen überein stimmen, die in der Datenbank gespeichert sind.

Hier hilft das Tool Registry Rebuild. Weitere Infos dazu auf der Projekt Page.

Wenn man noch die Upload Verzeichnisse geändert hat, hilft noch diese Mysql Query:

UPDATE files SET filepath = REPLACE(filepath,'path/to/search','path/to/replace'); 

Fehler nach dem Ändern von DOCUMENT ROOT

Wenn man Drupal in ein neues Verzeichnis auf dem Server verschiebt, kommt es zu Problemen und Fehlermeldungen. Wie z.B.

Fatal error: require_once(): Failed opening required '/www/sitename.com/doc/includes/database/query.inc' (include_path='.:/www/server/SH_includes/_PEAR/share/pear:/www/server/SH_includes') in /www/sitename.com/doc/includes/database/select.inc on line 8

Nachdem das Web am neuen Ort ist, ist es wichtig, folgende Schritte durchzuführen:

1) PHP restart – das ist sehr wichtig, denn PHP scheint die alten Verzeichnisstrukturen in gewissen Fällen zu cachen

/usr/local/etc/rc.d/php-fpm restart

2) Cache löschen (mit drush)

drush -l http://www.sitename.com -r /www/sitename.com/drupal cache-clear

3) Registry Rebuild – am besten ebenfalls über die Shell ausführen.

cd sites/all/modules/registry_rebuild
php registry_rebuild.php

Nun sollte die Site wieder fehlerfrei laufen.

Fehler: Trying to get property of non-object in locale_language_url_fallback()

Nach einem Settings Import kann es zu diesem Fehler kommen:

Notice: Trying to get property of non-object in locale_language_url_fallback() (line 347 of /www/sitename.com/drupal/includes/locale.inc).

Das betrifft vorallem Sites mit mehrsprachigem Inhalt. Wenn man im File locale.inc auf Zeile 347 nachschaut, sieht man, dass er versucht die default Language auszugeben:

return $default->language;

anscheinend wurde diese jedoch nicht gesetzt.

Lösung

Im Admin unter

admin/config/regional/language

muss eine „Standard“ Sprache ausgewählt sein!
Und nach dem Ändern der Standard Sprache dran denken, den Cache zu löschen!

PHP Notice Meldungen abschalten

Entweder im php.ini

error_reporting = E_ALL & ~E_NOTICE

Oder im File sites/default/settings.php folgende Zeile einfügen

ini_set('error_reporting', E_ALL & ~E_NOTICE);

Alternativ auch per .htaccess

php_value error_reporting 6135

 

Flattr this!

  • *

    Du kannst diese HTML tags verwenden: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Kommentar-Feed für diesen Beitrag
nach oben