So installieren Sie SuiteCRM mit Nginx auf CentOS 7

SuiteCRM ist eine Open-Source-CRM-Software (Customer Relationship Management) auf Basis von PHP. Es ist Teil der beliebten CRM-Software SugarCRM und wurde immer beliebter, nachdem das Team hinter dem letzteren beschlossen hat, die Entwicklung der kostenlosen Version einzustellen. SuiteCRM wurde auf der BOSSIE 2015 und 2016 als beste Open Source CRM-Software nominiert.

In diesem Tutorial zeigen wir Ihnen, wie Sie SuiteCRM mit Nginx als Webserver installieren und konfigurieren. Die CRM-Software läuft unter dem LEMP-Stapel mit aktiviertem HTTPS. Und zu diesem Zweck werden wir CentOS 7 als Hauptbetriebssystem verwenden.

Was wir tun werden

  1. Nginx Webserver installieren
  2. Installation und Konfiguration von PHP-FPM
  3. MariaDB installieren und konfigurieren
  4. SuiteCRM herunterladen und konfigurieren
  5. SuiteCRM über das Web-Installationsprogramm installieren
  6. Endgültige Konfiguration

Voraussetzungen

  • CentOS 7 Server
  • Root-Rechte

Schritt 1 – Nginx Webserver installieren

Der erste Schritt, den wir tun müssen, um den Server zu verbinden und den Basisstapel für SuiteCRM zu installieren. Verbinden Sie sich mit dem Server über SSH mit dem folgenden Befehl:

ssh root@hakase-labs.co

Nachdem wir uns als Root-Benutzer angemeldet haben, müssen wir ein Drittanbieter-Repository auf unserem System installieren. Insbesondere müssen wir das EPEL (Extra Package for Enterprise Linux) Repository auf dem System installieren, bevor wir Nginx installieren können.

Installieren Sie das EPEL-Repository mit dem Befehl yum wie folgt:

yum -y install epel-release

Jetzt können wir den Nginx-Webserver auf dem System installieren.

yum -y install nginx

Wenn die Installation abgeschlossen ist, starten Sie den Dienst und aktivieren Sie ihn automatisch zum Startzeitpunkt mit dem Befehl systemctl, wie unten gezeigt.

systemctl start nginx
systemctl enable nginx

Der Nginx-Webserver ist nun installiert, und standardmäßig läuft er auf Port 80. Überprüfen Sie es mit netstat- oder curl-Befehlen.

netstat -plntu
curl -I localhost

Vergewissern Sie sich, dass sich der Port 80 im Status’LISTEN‘ befindet und der Befehl curl 200 HTTP-Statuscode in seiner Ausgabe anzeigt.

Überprüfen Sie, ob Nginx auf den richtigen Ports hört.

Schritt 2 – Installation und Konfiguration von PHP-FPM

In diesem Schritt werden wir PHP-FPM Version 7 auf dem CentOS 7 Server installieren und konfigurieren. Standardmäßig bietet centOS kein Repository für die neue PHP-Version 7. Daher müssen wir ein anderes Repository für die Installation von PHP-FPM 7 hinzufügen.

Fügen Sie dem System mit dem Befehl rpm das neue PHP 7-Repository ‚webtatic‘ hinzu.

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installieren Sie nun PHP 7-Pakete und Erweiterungen mit dem Befehl yum, wie unten gezeigt.

sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml

Wenn die Installation abgeschlossen ist, bearbeiten Sie die standardmäßige Konfigurationsdatei’php.ini‘ mit vim.

vim /etc/php.ini

Ändern Sie die maximale Größe der Upload-Datei für die SuiteCRM-Installation auf 100 MB. Zumindest benötigt SuiteCRM mehr als 6 MB.

upload_max_filesize = 100M

Entkommentieren Sie die folgende CGI-Zeile und ändern Sie den Wert auf 0.

cgi.fix_pathinfo=0

Entkommentieren Sie für die Sitzungspfad-Konfiguration die Zeile und ändern Sie den Pfad zu’/var/lib/session‘, wie unten gezeigt.

session.save_path = "/var/lib/php/session"

Das ist es. Das ist es. Speichern Sie die Änderungen und verlassen Sie vim.

Erstellen Sie nun ein neues Verzeichnis für den Sitzungspfad und ändern Sie die Eigentumsberechtigungen des Verzeichnisses auf’nginx‘ Benutzer und Gruppe.

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session

Als nächstes müssen wir die php-fpm-Konfiguration bearbeiten. Gehen Sie dazu in das Verzeichnis ‚/etc/php-fpm.d‘ und bearbeiten Sie die Konfigurationsdatei www.conf.

cd /etc/php-fpm.d/
vim www.conf

Ändern Sie nun die Benutzer- und Gruppenlinie auf’nginx‘.

user = nginx
group = nginx

Anstatt den Systemport zu verwenden, wird PHP-FPM unter der Unix-Socket-Datei ausgeführt.

Ändern Sie die Zeile „listen“:

listen = /var/run/php-fpm/php-fpm.sock

Stellen Sie die Berechtigung für die Unix-Socket-Datei und das Eigentum an der Socket-Datei wie unten gezeigt ein.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Das ist es. Das ist es. Speichern Sie die Änderungen und verlassen Sie den Editor.

Starten Sie nun den PHP-FPM-Dienst und fügen Sie ihn hinzu, um ihn automatisch zum Bootzeitpunkt zu starten.

systemctl start php-fpm
systemctl enable php-fpm

Damit wird PHP-FPM installiert und die Socket-Datei ausgeführt.

Du kannst dies mit dem Befehl netstat überprüfen:

netstat -pl | grep php

Stellen Sie sicher, dass Sie die Datei php-fpm.sock sehen.

Konfiguriert PHP-FPM

Schritt 3 – MariaDB installieren und konfigurieren

In diesem Schritt werden wir MariaDB installieren, dann starten und aktivieren, damit es jedes Mal beim Systemstart starten kann. Und schließlich werden wir eine neue Datenbank und einen neuen Benutzer für die SuiteCRM-Installation erstellen.

Installieren Sie mariadb aus dem CentOS-Repository mit dem folgenden Befehl yum.

yum install -y mariadb mariadb-server

Starten Sie den MariaDB-Dienst und aktivieren Sie ihn, um die Bootzeit mit den folgenden Befehlen zu starten.

systemctl start mariadb
systemctl enable mariadb

Damit ist MariaDB nun installiert und läuft. Nun müssen wir das Root-Passwort mit dem Befehl’mysql_secure_installation‘ konfigurieren.

mysql_secure_installation

Sie werden nach der Konfiguration gefragt, geben Sie’Y‘ ein und drücken Sie’Enter‘.

Set root password? [Y/n] Y
 New password:
 Re-enter new password:

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Daher wurde das MariaDB Root-Passwort konfiguriert.

Als nächstes müssen wir eine neue Datenbank und einen neuen Benutzer für die SuiteCRM-Installation erstellen. Melden Sie sich dazu mit dem Benutzer’root‘ und Ihrem Passwort in der MySQL-Shell an.

mysql -u root -p

Erstellen Sie eine neue Datenbank namens’suitecrm_db‘ und einen neuen Benutzer’crmadmin‘ mit dem Passwort’hakase-labs123′. All dies kann mit den folgenden mysql-Abfragen durchgeführt werden.

CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;

Damit ist die Datenbankkonfiguration für die SuiteCRM-Installation abgeschlossen.

SuiteCRM-Datenbank erstellen

Schritt 4 – SuiteCRM herunterladen und konfigurieren

In diesem Schritt werden wir einige Aufgaben für die SuiteCRM-Installation durchführen. Wir werden den SuiteCRM-Quellcode herunterladen, Firewalld konfigurieren, neue SSL-Letsencrypt generieren und den virtuellen Host von nginx für SuiteCRM konfigurieren. Also lasst uns anfangen.

SuiteCRM herunterladen

Wenn noch nicht geschehen, installieren Sie git auf Ihrem System mit dem Befehl yum unten.

yum -y install git

Gehen Sie nun in das Verzeichnis’/opt‘ und laden Sie den SuiteCRM-Code mit dem Befehl git herunter, wie unten gezeigt.

cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm

SuiteCRM herunterladen

Danach erstellen Sie ein Cache-Verzeichnis, ändern Sie die Berechtigungen für einige Dateien und Verzeichnisse im suitecrm-Verzeichnis und ändern Sie dann den Besitzer des gesamten suitecrm-Codes in nginx‘ Benutzer und Gruppe.

cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm

Der suiteCRM-Code wurde also auf den Server im Verzeichnis’/opt/suitecrm/‘ heruntergeladen.

Verzeichnisse erstellen

Firewalldatei konfigurieren

Wenn auf Ihrem Server keine Firewalld läuft, installieren Sie diese mit dem folgenden Befehl.

yum -y install firewalld

Starten Sie den Dienst und aktivieren Sie ihn zum Startzeitpunkt.

systemctl start firewalld
systemctl enable firewalld

Als nächstes müssen wir neue Ports HTTP und HTTPS öffnen. Es wird für den Zugriff auf SuiteCRM verwendet. Führen Sie dazu die folgenden Firewall-cmd-Befehle aus.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

Laden Sie nun die Firewall-Regeln mit dem folgenden Befehl neu.

firewall-cmd --reload

Konfigurieren der Firewall

So wurde nun der Firewalld ein neuer HTTP- und HTTPS-Port hinzugefügt. Wenn Sie die Detailkonfiguration sehen möchten, führen Sie den folgenden Befehl aus.

firewall-cmd --list-all

Firewall-Einstellungen auflisten

Neue SSL-Letsenverschlüsselung generieren

In diesem Tutorial werden wir SSL für den SuiteCRM-Zugang verwenden. Und dafür werden wir kostenlose SSL-Zertifikate von letsencrypt verwenden.

Um neue SSL letsencrypt Zertifikate zu generieren, müssen wir zuerst das letsencrypt Kommando-Tool’certbot‘ auf unserem System installieren. Es ist im CentOS-Repository verfügbar. Installieren Sie certbot mit dem folgenden Befehl yum.

yum -y install certbot

Wenn die certbot-Installation abgeschlossen ist, generieren Sie eine SSL-Zertifikatsdatei für den suiteCRM-Domainnamen’suitecrm.hakase-labs.co‘.

Führen Sie den folgenden Befehl aus, um SSL-Zertifikatsdateien zu erzeugen.

certbot certonly --standalone -d suitecrm.hakase-labs.co

Sie werden nach der E-Mail-Adresse für die Verlängerung der Benachrichtigung gefragt – geben Sie Ihre E-Mail-Adresse ein und drücken Sie zum Fortfahren die Eingabetaste.

Geben Sie für das Letsencrypt TOS ‚A‘ ein, um zuzustimmen, und drücken Sie erneut die Eingabetaste. Und für die Abfrage der E-Mail-Adresse für die Freigabe geben Sie „N“ ein und drücken Sie die Eingabetaste.

Erstellen eines SSL-Zertifikats

Wenn die Zertifikatsgenerierung abgeschlossen ist, erhalten Sie das Ergebnis wie folgt.

SSL-Zertifikat erfolgreich erstellt

Neue Zertifikatsdateien werden im Verzeichnis ‚/etc/letsencrypt/live/domain.com‘ erzeugt.

SuiteCRM Nginx Virtueller Host konfigurieren

Gehen Sie in das Nginx-Konfigurationsverzeichnis ‚/etc/nginx‘ und erstellen Sie mit dem Vim-Editor eine neue Datei suitecrm.conf im conf.d-Verzeichnis.

cd /etc/nginx/
vim conf.d/suitecrm.conf

Dort fügen Sie den virtuellen SuiteCRM Nginx-Host unten ein.

 # Server Config - hakase-labs
 server {
     listen 80;
     server_name suitecrm.hakase-labs.co;
# Automatically redirect to HTTPS
return 301 https://$host$request_uri;
}

# Nginx SSL for SuiteCRM
server {

server_name suitecrm.hakase-labs.co;

# Enable http2
listen 443 http2 ssl;

# SSL Config
ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

client_max_body_size 50M;

index index.php index.html index.htm;
root /opt/suitecrm;

location / {
root /opt/suitecrm;
index index.php index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;

location = /50x.html {
root /usr/share/nginx/html;
}

## Images and static content is treated different
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
access_log off;
expires max;
root /opt/suitecrm;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ /\.ht {
deny all;
}

}

Das ist es. Das ist es. Speichern Sie die Änderung und verlassen Sie Vim.

Testen Sie nun die nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt. Danach starten Sie den Dienst neu.

nginx -t
systemctl restart nginx

Damit ist die nginx-Konfiguration für die SuiteCRM-Installation abgeschlossen.

Nginx für SuiteCRM konfigurieren

Schritt 5 – SuiteCRM Web Installer

Öffnen Sie Ihren Webbrowser und besuchen Sie den SuiteCRM-Domänennamen:’suitecrm.hakase-labs.co‘.

Sie werden zur HTTPS-Verbindung install.php weitergeleitet und erhalten die Seite über die GNU AFFERO Lizenz. Aktivieren Sie das Kontrollkästchen „Ich akzeptiere“ und klicken Sie auf „Weiter“.

SuiteCRM Web-Installation

Stellen Sie auf der Seite Systemumgebung sicher, dass alle Ergebnisse“OK“ sind.

Voraussetzungen prüfen

Und klicken Sie auf’Weiter‘, um fortzufahren.

Als nächstes kommt die Konfiguration von Admin und Datenbank. Geben Sie Ihre Datenbankinformationen ein, wie z.B. dbname, dbuser und dbpassword. Geben Sie für die Admin-Konfiguration Ihren Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort ein.

Datenbankeinstellungen

Scrollen Sie nach unten und klicken Sie auf „Weiter“, um die Installation von SuiteCRM fortzusetzen.

Warten Sie einen Moment, wenn die Installation abgeschlossen ist, und Sie werden wie unten gezeigt auf die Login-Seite weitergeleitet.

SuiteCRM-Anmeldung

Geben Sie auf dieser Seite den Admin-Benutzer und das Passwort ein und klicken Sie dann auf die Schaltfläche „Anmelden“.

Und Sie erhalten das SuiteCRM Dashboard wie unten gezeigt.

SuiteCRM dashboard

So wurde SuiteCRM installiert.

Schritt 6 – Endgültige Konfiguration

In diesem letzten Schritt müssen wir dem Cronjob eine Konfiguration hinzufügen.

Grundsätzlich müssen wir einen neuen Cron als nginx-Benutzer und -Gruppe anlegen.

sudo crontab -e -u nginx

Und fügen Sie die folgende Konfiguration ein.

*    *    *    *    *     cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1

Speichern und beenden.

Das ist es. Das ist es. Die SuiteCRM-Installation mit Nginx-Webserver auf CentOS 7 ist abgeschlossen.

Referenz

Das könnte Dich auch interessieren …