Für Drupal 6 gibt es inzwischen genug ausgereifte Erweiterungen, dass ich nun schon eine Weile diese neueste stabile Release als Basis für neue Webprojekte verwende. Da hat sich auch Erfahrung angesammelt, was man bei der Wahl des Hosting-Providers bzw. der Konfiguration seines Systems beachten sollte.

Safe-Mode

Dies betrifft alle Drupal-Versionen, weil es kein Drupal-Problem ist.

"Safe Mode ist der Versuch, Sicherheitsprobleme bei gemeinsam genutzten Servern zu lösen." Es wird verhindert, dass andere Benutzer die eigenen PHP-Skripte ausführen können, indem im Safe-mode gefordert wird, dass nur Skripte mit derselben Benutzerkennung ausgeführt werden dürfen.
"Da es auf Ebene des Webservers bzw. des Betriebssystems keine praktischen Alternativen gibt, wird Safe Mode nunmehr von vielen Leuten, vor allem von Providern, eingesetzt." Quelle und mehr Infos unter http://de.php.net/features.safe-mode

Dies ist insbesondere bei preiswerten Hosting-Angeboten und einfacheren Providern der gängige Weg, aber auch ein Verfahren mancher besorgter Benutzer.

Problematisch für Drupal wird das, wenn man ein files Verzeichnis braucht, in das alle Uploads von Benutzern durch den Webserver ("wwwrun") gespeichert werden. Der Webserver braucht Schreibrechte dafür, was am Zweckmäßigsten gelöst wird, indem das files-Verzeichnis denselben Eigentümer wie den Eigentümer des Webserver-Prozesses bekommt (i.d.R. "wwwrun"). Wenn aber alle anderen PHP-Dateien unter "normalem" Benutzernamen laufen, kommt es im Safe-Mode beim Zugriff auf files zum Konflikt.

Es gibt diverse Lösungsansätze, diese Beschränkung zu umgehen:

  • Alle Dateien unter wwwrun ablegen,
  • files-Verzeichnis mit Schreibrechten für alle ausstatten (AUTSCH!) oder eine UNIX-Gruppe anlegen, die "wwwrun" einschließt, und files diese Gruppe mit Gruppenschreibrechten zuordnen (ideal)

Auf den Upload von Dateien sollte man und Drupal 6 nicht mehr verzichten, weil es viele komfortable Funktionen (Setup, Übersetzungen, Modulinstallation, Backup/Restore, usw) gibt, auf die man nicht verzichten sollte.

.htaccess

Davon abgesehen, dass Dateien mit einem Punkt vorne unter Unix (Linux) bedeuten, dass sie versteckt sind, und daher manchmal beim Kopieren auf den Host "vergessen" werden, steckt hier ein wesentliches Feature drin, nämlich "Clean urls" (also suchmaschinenfreundliche Dateipfade). Theoretisch könnten hier noch viele andere Modifikationen des Webservers Apache gespeichert sein.

Liegt die Datei im Rootverzeichnis der Drupal-Website, so heißt das noch lange nicht, dass sie beachtet wird. Es gehört vielerorts zur Sicherheitseinstellung, solche Dateien zu ignorieren. Nowendig für Clean URLs ist somit, dass man in seinem httpdocs-Verzeichnis auch .htaccess-Dateien benutzen kann. Auf dem eigenen Webhost kann man das in den Konfigurationsdateien des Webservers einstellen, bei einem Provider ist man auf diesen und sein Vertrauen zu seinen Kunden angewiesen. Andernfalls sind Clean URLs nicht möglich.

MySQL Uploadbeschränkung erhöhen

Übersetzungen werden in Drupal 6 durch das Einlesen einer Übersetzuungsdatei gleich bei der Aktivierung des Moduls in MySQL eingespielt. Das passiert ganz automatisch. Allerdings sind die Dateien meist größer als der Standardwert, den MySQL als Dateigröße akzeptiert.

Wegen der Batchverarbeitung und der Verarbeitung von Übersetzungen als BLOBs kann es zu Problemen beim Sprachimport kommen, wenn mysqld zu klein beim Datenimport eingestellt ist. Standardwert ist nur 1MB.

Um diesen Wert zu erhöhen, ändert man die folgende Variable entweder in seiner MySQL-Konfigurationdatei (es gilt dann für alle Websites auf dem Host), oder in der lokalen .htaccess-Datei. Letztere Änderung ist quasi ein Patch an der originalen .htaccess-Datei, der bei jedem Update der Drupal-Installation wiederholt werden sollte.

Am besten ändert man in /etc/my.cnf:


[mysqld]
max_allowed_packet = 16M

Es lohnt sich, diese Änderung schon vor dem ersten Setup durchzuführen, um Fehler beim Sprachimport der mitgelieferten Module zu vermeiden.

PHP 5.2

Noch keine offizielle Beschränkung, aber Drupal 7 wird klar PHP5 fordern.

Ein paar beliebte Module (filefield, ImageField, ImageAPI, u.a.) fordern allerdings in ihrer Drupal-6-Version bereits schon PHP5, und zwar sogar die Version 5.2.x. Allein die Kenntnis, dass php5 vorhanden ist, reicht also nicht aus. Auch aus Sicherheitsgründen sollten man PHP 5.2 der 5.1 Version klar vorziehen.

Erlaubte SQL Kommandos

Drupal 6 benutzt im Gegensatz zu Drupal 5 keine LOCK TABLE und CREATE TEMPORARY TABLES Kommandos mehr, die viele Provider nicht erlauben. Dadurch kann Drupal auch auf einfach gestrickteren Hosts laufen.

Hinweis: Die Drupal-Installdatei gibt Hinweise, mit welchen Rechten ein Datenbankbenutzer für Drupal ausgestattet werden muss:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
ON databasename.*
TO 'username'@'localhost' IDENTIFIED BY 'password';

Mir selbst ist kein Provider bekannt, der diese Voraussetzungen nciht erfüllt. Drupal 6 ist in diesem Punkt deutlich pflegeleichter als Drupal 5.