Menu

Der perfekte CRM-Server

Der perfekte Server für ein CRM-System ist natürlich immer dem Wandel der Zeit und den individuellen Anforderungen und Ideen unterworfen. Deshalb zeigt diese Anleitung, welche Lösung wir Ende 2014 verwenden, um einen Server für das CRM-System 1CRM aufzusetzen.

Voraussetzungen

Zielgruppen: Admin
Produkte: 1CRM On-Premises

Dieser Ratgeber wird aktuell bearbeitet und die hier beschriebenen Informationen könnten bereits veraltet sein.

Erste Frage: Windows oder Linux für das CRM?

Diese Frage wird häufig sehr emotional ausdiskutiert.

Wir bevorzugen Linux, weil das System damit meist schlanker und damit performanter ausfällt. Hinzu kommt, dass die für unsere CRM-Systeme erforderlichen Komponenten Apache, MySQL und PHP quasi zur Basisaustattung jeder Linux-Server-Distribution gehören. Diese Setups haben sich seit Jahren bewährt.

Für ein Produktivsystem unter Windows sollte man voraussichtlich statt dem Apache-Webserver einen aktuellen IIS von Microsoft einsetzen. OSX als Betriebssystem geht natürlich auch – 1CRM in Kanada setzt sehr auf Mac-Minis als Server – die Komponenten sind dieselben wie unter Linux, lediglich die Diversität an Hardware oder Virtualisierungslösungen fehlt.

 

Nächste Glaubensfrage: Welche Linux Distribution?

In der Vergangenheit haben wir oft auf SuSE und SLES (SuSE Linux Enterprise Server) gesetzt und auch hervorragende Erfahrungen mit dem Supportteam in Nürnberg gesammelt. Red Hat wäre sicher auch eine gute Option gewesen, hat sich aber nie angeboten. Seit einigen Jahren verwenden wir unterdessen nahezu ausschließlich die LTS-Server-Variante von Ubuntu, aktuell 14.04. LTS bedeutet Long Term Support und garantiert für die im Zweijahresrhythmus erscheinende Server-Distribution 5 Jahre Sicherheitsupdates. Erste Erfahrungen hatten wir mit Ubuntu 08.04 LTS in 2008 – bei diesen Servern hat auch das Distributionsupdate auf eine aktuelle Version ohne grössere Komplikationen geklappt.

Indianer, PHP und die Sicherheit

Jeder, der schon einmal einen Webserver unter Apache aufgesetzt hat, weiß (oder sollte wissen), dass es für jedes Problem viele verschiedene Lösungen gibt. Das heißt, das Thema Glaubensfrage ist leider mit der Wahl der Distribution nicht erledigt. Wie oben geschrieben, gehört Apache, MySQL und PHP als sogenannter LAMP-Stack zur Basisausstattung von Ubuntu, daher lässt es sich auch schön einfach über einen Befehl installieren:

# tasksel

Hiermit erhält man über die Konsole eine Auswahl ausgegeben, um Basiskomponenten des Ubuntu-Servers einzurichten, unter anderem das Paket LAMP-Server.

Der perfekte CRM-Server - LAMP-Server unter Ubuntu installieren

PHP 5.5 wird mit tasksel unter Ubuntu 14.04 als Apache-Modul installiert – das funktioniert, bringt aber einige Stolperfallen mit sich:

  • 1. Stolperfalle: Die erste betrifft z.B. die SugarCRM Community Edition, die PHP in der Version 5.5 (noch?) nicht unterstützt.Lösung: Abhilfe schafft hier z.B. der Einsatz von Ubuntu 12.04 LTS oder das Kompilieren einer eigenen PHP-Version.
  • 2. Stolperfalle: Bei der Verwendung von PHP als Apache-Modul werden PHP-Skripte mit dem Apache-Systembenutzer (www-data) ausgeführt, d.h. dieser braucht auch Schreib- und Lese-Rechte auf Verzeichnisse und Dateien im www-Verzeichnis. Der erste Impuls vieler Benutzer, die das erste Mal auf dieses Problem stoßen, ist ein chmod 777 /var/www -R. Leider gibt dieser Befehl nicht nur dem Apache Lese- und Schreibrecht sondern erlaubt faktisch jedem, der Zugriff zum System hat, alles mit den Dateien zu machen – eine ganz schlechte Idee!Lösung: Der richtigere Weg ist es, www-data als Eigentümer der PHP-Dateien zu konfigurieren. Das funktioniert z.B. mit „chown www-data:www-data /var/www/* -R“
  • 3. Stolperfalle: Wenn PHP als Apache-Modul läuft, wird die PHP-Engine auch bei der Auslieferung von Bildern und anderem statischen Content immer geladen. Hierdurch steigt der Hauptspeicherbedarf des Servers, wobei das bei den aktuellen Speicherpreisen auch vernachlässigt werden kann.
  • 4. Stolperfalle: Dadurch das die PHP-Dateien alle dem Apache Benutzer gehören sollten, ist eine Abgrenzung mehrerer CRM-Systeme auf einem Server (z.B. Test- und Livesystem oder auch mehrere Mandanten mit eigenem CRM-System) nur schwer realisierbar.

Das heißt für unseren perfekten CRM-Server, dass weitere Komponenten und Konfigurationsschritte ins Spiel kommen. Konkret ist das PHP über FCGI. Hierdurch können wir auf einem Server mehrere PHP-Versionen installieren, die jeweils unter einem eigenen Benutzer, unabhängig vom Apache, laufen. Kombiniert mit Apache vHosts, die es erlauben mehrere Domains unter einem Apachen zu nutzen, ist das eine perfekte Lösung um Test- und Live-CRM (oder auch andere PHP-Applikationen) auf einem Server getrennt voneinander zu betreiben. Da die Konfiguration von vHosts mit PHP über FCGI nicht ganz trivial und damit potentiell fehleranfällig ist, lassen wir uns hierbei von der Hosting-Plattform ISPconfig unterstützen, die es erlaubt, neue vHosts über eine Web-Oberfläche zu konfigurieren.

Die hervorragende Anleitung, Der Perfekte Server Ubuntu 14.04 mit ISPconfig, dient als Vorlage für unseren eigenen Installationsvorgang. Einige Komponenten wie Mail, DNS und meist auch FTP, sind für einen CRM-Server irrelevant. ISPconfig funktioniert aber auch, wenn man die Schritte auslässt. Die Anleitung für mehrere PHP-Versionen ist eine gute Basis um ältere oder neuere Versionen zu kompilieren und in ISPconfig zu integrieren.