Menu

CRM-Server installieren

Alles Wichtige zur Installation von 1CRM

Webserver für 1CRM vorbereiten

So richten Sie den perfekten CRM-Server ein

In dieser Anleitung erfahren Sie, wie Sie einen Webserver für das CRM-System 1CRM installieren und einrichten. 1CRM ist webbasiert, d. h. Sie können sich das CRM-System wie eine Website vorstellen, die auf einem Webserver platziert werden muss. Befindet sich 1CRM auf einem geeigneten Webserver, dann können Sie den 1CRM-Installationsassistenten in Form einer Webadresse aufrufen, z. B. mein-webserver.de/1CRM.

Diese Anleitung basiert auf Ubuntu 16.04 LTS. Momentan ist Ubuntu Server 18.04 die aktuelle LTS-Version und wir empfehlen PHP 7.0 als Basis für 1CRM. Die Anleitungen werden wir so bald wie möglich aktualisieren.
Achtung! Die Schritt-für-Schritt-Anleitung ist keine Garantie für einen funktionierenden oder sicheren CRM-Server, da diese beiden (sehr wünschenswerten) Eigenschaften entscheidend von einer Vielzahl von externen Parametern abhängen.

CRM-Server mit Ubuntu und ISPConfig einrichten

Wie bereits im Artikel über den perfekten Server für ein CRM-System beschrieben, setzen wir bei der Verwaltung unserer Server auf Ubuntu LTS und ISPConfig als Verwaltungsoberfläche.

Mit diesem Howto gehe ich etwas weiter in die Tiefe und setze ein gewisses Linux-Grundwissen voraus. Damit Sie den CRM-Server auch später sinnvoll verwalten können, ist ein wenig Linux-Wissen hilfreich und sogar dringend erforderlich, wenn Sie den Server später über das Internet erreichbar machen wollen.

Was ist ISPConfig?

ISPConfig steht für Internet Service Provider Configuration und ist eine Open-Source-Software zur Verwaltung der für Webserver relevanten Dienste wie ftp, E-Mail, MySQL und Firewall. Mit ISPConfig lassen sich auch Kunden von Webhostern verwalten und damit deren Internet-Domains, E-Mail-Konten etc. ISPConfig bringt nicht nur Vorteile für spezialisierte Webhoster. Wenn Sie es im Intranet als Basis des CRM-Systems verwenden, können Sie über ISPConfig alle Einstellungen des Webservers verwalten und ohne großen Aufwand ein Testsystem einrichten und z. B. auch Backups verwalten.

Das brauchen Sie für Ihren CRM-Server

Meistens ist es bei uns so, dass z. B. ein Mailserver bereits existiert, genau wie der DNSDNS steht für Domain Name System und übersetzt die sprechende Adresse einer Webseite, z. B. www.meine-domain.de/meine-webseite, in eine IP-Adresse aus Ziffern, z.B. 91.208.45.221.. FTP wollen wir auf unseren Servern gar nicht haben, daher reduziert sich die Einrichtung im Vergleich zu einem vollständigen Webserver-System mit ISPConfig auf:

  • den Webserver und Mysql,
  • einen Basis-MTA zum Mailversand,
  • ISPConfig und
  • noch einige nützliche weitere Werkzeuge.


1. Betriebssystem installieren: Ubuntu Server

Holen Sie sich die aktuelle LTS-Version des Ubuntu Servers. Installieren Sie Ubuntu von einer CD oder einem USB-Stick. Wählen Sie die Basispakete aus und den openssh-Server.

Nach der Installation von Ubuntu updaten Sie das System mit folgenden Linux-Befehlen:

# System updaten
apt update 
apt upgrade

Um den neuen Kernel zu aktivieren, starten Sie neu mit folgendem Befehl:

# Ubuntu neustarten
reboot

2. Den Server für ISPConfig vorbereiten

Damit sich ISPConfig einwandfrei installieren lässt, sollten Sie Ubuntu mit den folgenden Einstellungen konfigurieren.

Switchen Sie von der Systemshell (Dash) auf Bash als Default-Shell

ISPConfig hat mit der Ubuntu-Standard-Shell Dash Probleme und lässt sich nur mit der Bash-Shell installieren. Bash konfigurieren Sie, indem Sie die Systemshell abwählen.

dpkg-reconfigure dash
das oder bash?

Ubuntu: Dash als Shell vermeiden! Wählen Sie Nein! Dann nutzen Sie stattdessen automatisch Bash.

Deaktivieren Sie AppArmor

AppArmor ist eine Sicherheitssoftware, mit der sich Zugriffe von Programmen über das Netzwerk kontrollieren lässt. An sich eine gute Sache. Doch leider führt der Einsatz von AppArmor immer wieder zu Problemen: Zugriffe, die wir haben wollen, werden als negativ eingestuft und gesperrt. Aus diesem Grund deaktivieren wir AppArmor und schützen uns an anderer Stelle mit einer sinnvoll konfigurierten Firewall.

# AppArmor deaktivieren und entfernen
service apparmor stop 
update-rc.d -f apparmor remove 
apt remove apparmor apparmor-utils 

Stellen Sie die automatische Zeitsynchronisation über NTP ein

# Automatische Zeitsynchronisation installieren
apt -y install ntp ntpdate

Installieren Sie den MTAMTA steht für Mail Transfer Agent. Diese Software brauchen Sie, um E-Mails über den Server empfangen und senden zu können. Postfix, MariaDB, OpenSSL und den Rootkit-Scanner RKHunter

apt -y install postfix postfix-doc mariadb-client mariadb-server openssl rkhunter binutils
Postfix für Ihren Einsatz richtig konfigurieren

Wenn Sie Postfix installieren, öffnet sich ein Fenster, das Sie zur Konfiguration des E-Mail-Dienstes aufruft. Was Sie hier auswählen, hängt davon ab, ob Ihr CRM-Server nur lokal erreichbar sein soll oder auch über eine öffentliche IP, sprich über das Internet.

A) Server soll nur lokal erreichbar sein: Wählen Sie Smarthost.
B) Server soll öffentlich übers Internet erreichbar sein: Wählen Sie Internet-Site.

damit der Mailversand aus der CRM Lösung klappt

MariaDB über das Netz erreichbar machen

In der Standard-Konfiguration lässt MySQL einen Netzwerk-Zugriff nur über den Localhost zu. Damit die CRM-Datenbank über das Netz erreichbar ist, konfigurieren Sie MariaDB folgendermaßen:

# Konfigurationsdatei mit dem Editor Vi aufrufen
vi /etc/mysql/mariadb.conf.d/50-server.cnf

Ändern Sie die Datei folgendermaßen:

[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure
#bind-address = 127.0.0.1
[...]

Anschliessend starten Sie MySQL neu:

service mysql restart
Passwort und Benutzerrechte der MariaDB konfigurieren
mysql_secure_installation

Enter current password for root (enter for none): <– press enter
Set root password? [Y/n] <– y
New password: <– Enter the new MariaDB root password here
Re-enter new password: <– Repeat the password
Remove anonymous users? [Y/n] <– y
Disallow root login remotely? [Y/n] <– y
Reload privilege tables now? [Y/n] <– y


3. Webserver installieren: NGINX statt Apache

Bei dieser Anleitung setze ich nicht auf den Standard-LAMP-Stack, sondern ersetze den Apache durch NGINX. Mit NGINX haben wir hervorragende Performance-Erfahrungen in Kombination mit PHP 5.5 und 1CRM als CRM-System gemacht.

Teilweise erreicht die unten beschriebene Konfiguration etwa 40 % mehr Geschwindigkeit als unsere Apache-Fcgi-PHP Konfigurationen. Eine allgemeine Aussage kann man hiervon jedoch nicht ableiten. Wir werden die unterschiedlichen Systeme aber natürlich im Auge behalten und weitere Erfahrungen berichten.

NGINX installieren

# NGINX installieren 
apt install -y nginx
# NGINX starten
service nginx start

PHP 7.0 installieren

Alternatives Repository für aktualisierte PHP-Pakete installieren:

#PHP-Installation vorbereiten
apt install -y python-software-properties 
add-apt-repository -y ppa:ondrej/php 
apt update 
apt upgrade



#PHP installieren
apt -y install php7.0-opcache php7.0-fpm php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap php7.0-cli php7.0-cgi php-pear php-authp php7.0-mcrypt mcrypt imagemagick php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring php7.0-soap

Optional PHP 7.1:

apt -y install php7.1-opcache php7.1-fpm php7.1 php7.1-common php7.1-gd php7.1-mysql php7.1-imap php7.1-cli php7.1-cgi php7.1-mcrypt php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-xsl php7.1-zip php7.1-mbstring php7.1-soap

Ein paar Module müssen manuell aktiviert werden:

phpenmod mcrypt 
phpenmod mbstring 
phpenmod imap 
phpenmod soap 

Um die Perfomance zu verbessern, installieren Sie APC als PHP-Cache:

apt install -y php-apcu 

Für FPM müssen zwei Einstellungen in der PHP-Konfiguration angepasst werden, memory_limit und die Upload-Grössen werden später von 1CRM benötigt:

vi /etc/php/7.0/fpm/php.ini 
[...] 
cgi.fix_pathinfo=0 
[...] 
date.timezone="Europe/Berlin"
[...] 
memory_limit = 512M 
[...] 
post_max_size = 200M 
[...] 
upload_max_filesize = 100M 
[...] 

Danach müssen Sie php-fpm neustarten:

service php7.0-fpm reload 

Letsencrypt installieren

add-apt-repository ppa:certbot/certbot 
apt update 
apt install certbot 

Quota installieren und aktivieren

apt install -y quota quotatool 

Hierzu muss die Datei /etc/fstab angepasst werden:

# mount -o remount / 
# quotacheck -avugm 

Fehlermeldungen sind dabei normal:

quotaon -avug 

Um geChrootete SSH-Benutzer zu ermöglichen Jailkit installieren

apt -y install build-essential autoconf automake1.11 libtool flex bison debhelper binutils 
cd /tmp 
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz 
tar xvfz jailkit-2.19.tar.gz 
cd jailkit-2.19 
./debian/rules binary 
cd .. 
dpkg -i jailkit_2.19-1_*.deb 
rm -rf jailkit-2.19*

Fail2ban installieren

apt install -y fail2ban

4. ISPConfig installieren

Stellen Sie vorher sicher, dass NGINX läuft:

service nginx restart

ISPConfig, die Verwaltungsoberfläche für den Server:

1. Die neueste Version von ISPconfig installieren:

cd /tmp
wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/
php -q install.php

2. Da nicht alle möglichen Dienste für ISPConfig installiert wurden, sondern nur die erforderlichen für einen CRM-Web-Server, verwenden wir den Expert-Modus. Bei den Fragen nach der Diensteinstallation müssen Sie teilweise mit Nein antworten:

Configure Mail (y,n) [y]: n
Force configure pureftpd (y,n) [y]: n
Configure DNS Server (y,n) [y]: n
Configure Web Server (y,n) [y]: y
Force configure OpenVZ (y,n) [y]: n
Configure Firewall Server (y,n) [y]: n
Force configure Metronome XMPP Server (y,n) [y]: n

Danach ist ISPConfig über https://ihr.server.de:8080 erreichbar. Das Standard-Passwort „admin“ für den Benutzer admin sollte so schnell wie möglich geändert werden!

Es gibt ein hervorragendes Handbuch für ISPConfig, das Till Brehm und Falko Timme für 5 € verkaufen – bitte schlagen Sie zu und unterstützen Sie die Weiterentwicklung von ISPConfig:  https://www.howtoforge.com/download-the-ispconfig-3-manual.


5. 1CRM-Server konfigurieren

Um jsmin und die API unter 1CRM ausführen zu können, muss die nginx vhost Konfiguration etwas angepasst werden. Diese muss vor der Bearbeitung in den custom-Konfigurationsordner kopiert werden.

cd /usr/local/ispconfig/server
cp conf/nginx_vhost.conf.master conf-custom/
vi conf-custom/nginx_vhost.conf.master

ISPConfig bindet PHP im Standard über die Verwendung eines @php-Templates ein. Dieses entfernen wir und verwendenden stattdessen einen regulären Ausdruck, der auch ein Routing über eine PHP-Datei erlaubt, wie es z.B. jsmin oder diverse PHP-Frameworks machen. HHVM entfernen wir komplett aus der Konfiguration, da es nicht installiert wurde. Das Diff sieht wie folgt aus:

Dieses Template wird von ISPConfig als Vorlage beim Anlegen neuer Vhosts verwendet.

Noch Fragen? Dann besuchen Sie uns auf Xing

Werden Sie Teil der 1CRM-Community

Die 1CRM-Usergroup bringt Anwender aus den unterschiedlichsten Bereichen mit anderen Anwendern und Entwicklern zusammen. In der Xing-Gruppe erhalten Sie aktuelle Informationen zur CRM-Lösung 1CRM, z. B. Produkt-Updates, neue Features, Webinar-Termine und können sich mit anderen CRM-Anwendern austauschen. Stellen Sie sich und Ihr Geschäft gerne im Forum „Vorstellungsrunde“ vor und schildern Sie kurz, wie Sie 1CRM einsetzen.

1CRM-Anwender und -Entwickler beantworten Ihre Fragen

Interesse an 1CRM? So installieren Sie das CRM-System …

1CRM On-Premises installieren

1CRM installieren Sie auf einem Webserver. Prüfen Sie die Systemanforderungen und folgen Sie den Anweisungen des Installationswizards.

Der perfekte CRM-Server

Der perfekte Webserver für Ihr CRM-System Windows, Linux, Apache und PHP – das sollten Sie beachten 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,...

1CRM Startup Edition lokal installieren mit XAMPP

1CRM Startup Edition auf Ihrem PC installieren 1CRM mithilfe von XAMPP auf Windows installieren Sie haben sich die 1CRM Startup Edition heruntergeladen? Sie möchten die CRM-Software installieren, aber sie wissen nicht wie? Vorneweg: Für 1CRM brauchen Sie unbedingt...