GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie SuiteCRM mit Nginx unter CentOS 7

SuiteCRM ist eine auf PHP basierende Open-Source-CRM-Software (Customer Relationship Management). Es ist eine Abzweigung der beliebten CRM-Software SugarCRM und wurde immer beliebter, nachdem das Team hinter letzterer beschlossen hatte, die Entwicklung der kostenlosen Version einzustellen. SuiteCRM wurde bei 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 wird unter dem LEMP-Stack mit aktiviertem HTTPS ausgeführt. Und zu diesem Zweck verwenden wir CentOS 7 als Hauptbetriebssystem.

Was wir tun werden

  1. Nginx-Webserver installieren
  2. Installieren und konfigurieren Sie PHP-FPM
  3. MariaDB installieren und konfigurieren
  4. Laden Sie SuiteCRM herunter und konfigurieren Sie es
  5. Installieren Sie SuiteCRM über das Web-Installationsprogramm
  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 Basis-Stack für SuiteCRM zu installieren. Stellen Sie mit dem folgenden Befehl über SSH eine Verbindung zum Server her:

ssh [email protected]

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

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 so, dass er beim Booten automatisch ausgeführt wird, indem Sie den Befehl systemctl wie unten gezeigt verwenden.

systemctl start nginx
systemctl enable nginx

Der Nginx-Webserver ist jetzt installiert und läuft standardmäßig auf Port 80. Überprüfen Sie ihn mit den Befehlen netstat oder curl.

netstat -plntu
curl -I localhost

Stellen Sie sicher, dass sich Port 80 im Status „LISTEN“ befindet und der Curl-Befehl in seiner Ausgabe den HTTP-Statuscode 200 ausgibt.

Schritt 2 – PHP-FPM installieren und konfigurieren

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

Fügen Sie das neue PHP 7-Repository „webtatic“ mit dem rpm-Befehl zum System 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 Standardkonfigurationsdatei „php.ini“ mit vim.

vim /etc/php.ini

Ändern Sie die maximale Upload-Dateigröße 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

Kommentieren Sie für die Konfiguration des Sitzungspfads die Zeile aus und ändern Sie den Pfad wie unten gezeigt in „/var/lib/session“.

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

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

Erstellen Sie nun ein neues Verzeichnis für den Sitzungspfad und ändern Sie die Eigentümerrechte 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. Wechseln 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 Gruppenzeile auf „nginx“.

user = nginx
group = nginx

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

Ändern Sie die 'Listen'-Zeile:

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

Legen Sie die Berechtigung für die Unix-Socket-Datei und den Besitz der Socket-Datei wie unten gezeigt fest.

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

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

Starten Sie nun den PHP-FPM-Dienst und fügen Sie ihn hinzu, damit er beim Booten automatisch gestartet wird.

systemctl start php-fpm
systemctl enable php-fpm

Damit ist PHP-FPM installiert und führt die Socket-Datei aus.

Sie können dies mit dem netstat-Befehl ü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 ermöglichen, dass es jedes Mal beim Systemstart gestartet wird. 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 yum-Befehl.

yum install -y mariadb mariadb-server

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

systemctl start mariadb
systemctl enable mariadb

MariaDB ist also jetzt installiert und läuft. Jetzt 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

Das MariaDB-Root-Passwort wurde also 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 an der MySQL-Shell an.

mysql -u root -p

Erstellen Sie eine neue Datenbank mit dem Namen „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 Installation von SuiteCRM erledigen. Wir werden den SuiteCRM-Quellcode herunterladen, Firewalld konfigurieren, neue SSL-Letsencrypt generieren und den virtuellen nginx-Host für SuiteCRM konfigurieren. Fangen wir also an.

SuiteCRM herunterladen

Falls noch nicht geschehen, installieren Sie git auf Ihrem System mit dem folgenden Befehl yum.

yum -y install git

Gehen Sie nun in das Verzeichnis „/opt“ und laden Sie den SuiteCRM-Code mit dem unten gezeigten Git-Befehl herunter.

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

Erstellen Sie danach ein Cache-Verzeichnis, ändern Sie die Berechtigungen für einige Dateien und Verzeichnisse im suitecrm-Verzeichnis und ändern Sie dann den Eigentümer 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.

Firewalld konfigurieren

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

yum -y install firewalld

Starten Sie den Dienst und aktivieren Sie ihn so, dass er beim Booten ausgeführt wird.

systemctl start firewalld
systemctl enable firewalld

Als nächstes müssen wir die neuen Ports HTTP und HTTPS öffnen. Es wird für den SuiteCRM-Zugriff 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 jetzt die Firewall-Regeln mit dem folgenden Befehl neu.

firewall-cmd --reload

Jetzt wurden der Firewalld neue HTTP- und HTTPS-Ports hinzugefügt. Wenn Sie die detaillierte Konfiguration sehen möchten, führen Sie den folgenden Befehl aus.

firewall-cmd --list-all

Neues SSL-Letsencrypt generieren

In diesem Tutorial verwenden wir SSL für den SuiteCRM-Zugriff. Und wir werden für diesen Zweck kostenlose SSL-Zertifikate von letsencrypt verwenden.

Um neue SSL-Letsencrypt-Zertifikate zu generieren, müssen wir zuerst das Letsencrypt-Befehlstool „certbot“ auf unserem System installieren. Es ist im CentOS-Repository verfügbar. Installieren Sie certbot mit dem folgenden yum-Befehl.

yum -y install certbot

Generieren Sie nach Abschluss der Certbot-Installation eine SSL-Zertifikatsdatei für den suiteCRM-Domänennamen „suitecrm.hakase-labs.co“.

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

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

Sie werden nach der E-Mail-Adresse für die Verlängerungsbenachrichtigung gefragt. Geben Sie Ihre E-Mail-Adresse ein und drücken Sie die Eingabetaste, um fortzufahren.

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

Wenn die Zertifikatserstellung abgeschlossen ist, erhalten Sie das unten stehende Ergebnis.

Neue Zertifikatsdateien werden im Verzeichnis „/etc/letsencrypt/live/domain.com“ generiert.

Konfigurieren Sie den virtuellen SuiteCRM Nginx-Host

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

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

Fügen Sie dort unten den virtuellen SuiteCRM Nginx-Host 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. Speichern Sie die Änderung und beenden Sie Vim.

Testen Sie nun die nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt. Sobald dies erledigt ist, 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 rufen Sie den SuiteCRM-Domänennamen auf:„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“.

Vergewissern Sie sich auf der Systemumgebungsseite, dass alle Ergebnisse 'OK' sind.

Und klicken Sie auf „Weiter“, um fortzufahren.

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

Scrollen Sie nach unten und klicken Sie auf „Weiter“, um mit der Installation von SuiteCRM fortzufahren.

Warten Sie einen Moment, wenn die Installation abgeschlossen ist, und Sie werden wie unten gezeigt auf die Anmeldeseite 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.

SuiteCRM wurde also 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 erstellen.

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. Die SuiteCRM-Installation mit Nginx-Webserver auf CentOS 7 ist abgeschlossen.


Cent OS
  1. So installieren Sie Nginx unter CentOS 7

  2. So installieren Sie WordPress mit Nginx unter CentOS 7

  3. Installieren Sie Nginx mit ngx_pagespeed unter CentOS 7

  4. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7 / RHEL 7

  5. So installieren Sie Sitemagic CMS auf CentOS 7 – mit Nginx

So installieren Sie Nginx unter CentOS

So installieren Sie Nginx mit ngx_pagespeed unter CentOS

So installieren Sie Nginx mit PHP-FastCGI unter CentOS 6

So installieren Sie Magento mit Nginx unter CentOS 7

So installieren Sie Laravel mit Nginx unter CentOS 8

Wie installiere ich Nginx unter CentOS 7?