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
- Nginx Webserver installieren
- Installation und Konfiguration von PHP-FPM
- MariaDB installieren und konfigurieren
- SuiteCRM herunterladen und konfigurieren
- SuiteCRM über das Web-Installationsprogramm installieren
- 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 [email protected]
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.
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.
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.
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
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.
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
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
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.
Wenn die Zertifikatsgenerierung abgeschlossen ist, erhalten Sie das Ergebnis wie folgt.
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.
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“.
Stellen Sie auf der Seite Systemumgebung sicher, dass alle Ergebnisse“OK“ sind.
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.
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.
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.
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.