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

Installieren Sie Mattermost mit PostgreSQL und Nginx auf CentOS 7

Mattermost ist eine selbstgehostete Open-Source-Slack-Alternative. Mattermost ist moderne Kommunikation hinter Ihrer Firewall.

Als Alternative zu proprietärem SaaS-Messaging bringt Mattermost Ihre gesamte Teamkommunikation an einen Ort und macht sie überall durchsuchbar und zugänglich.

Mattermost ist „Slack-kompatibel, nicht Slack-beschränkt“ und unterstützt eine Obermenge der eingehenden und ausgehenden Webhook-Integrationen von Slack, einschließlich der Kompatibilität mit bestehenden Slack-Integrationen. Aus Ihren bestehenden Slack-Teams können Sie Benutzer, den Verlauf öffentlicher Kanäle und sogar Farbeinstellungen für Themen in Mattermost importieren.

Namen, Variablen und Konten, die in diesem HowTo verwendet werden

lokale IP des Servers:192.168.2.100
FQDN des Servers:mattermost.example.com
Name der mattermost-Datenbank:mattermost
Benutzer für den Zugriff auf die mattermost-Datenbank:mmuser
Passwort für Benutzer innerhalb der Datenbank: DBAss47slX3

Voraussetzungen

Dieses Howto erklärt die Installation von Mattermost auf CentOS7 mit PostgreSQL als Datenbank-Backend. Für die Zwecke dieses Handbuchs gehen wir davon aus, dass wir alles auf einem einzigen Server installieren, aber für erfahrene Benutzer wäre es einfach, die Teile zu zerlegen und jede Komponente (z. B. den Datenbankserver) auf einem anderen Computer zu installieren. Die Installation wurde mit dem Benutzer root durchgeführt aber Sie könnten natürlich einen sudo-aktivierten Benutzer verwenden , auch.

Wir gehen außerdem davon aus, dass der Server eine IP-Adresse von 192.168.2.100 hat und dieses DNS wird zu mattermost.example.com aufgelöst . Also überall in diesem HowTo, wo Sie 192.168.2.100 lesen oder mattermost.example.com Ersetzen Sie es durch die IP-Adresse Ihres Servers.

Bevor Sie beginnen können, benötigen Sie eine Mindestinstallation von CentOS7. Stellen Sie nach der Installation sicher, dass Sie E-Mail richtig eingerichtet haben (Postfix-Konfiguration), damit Ihr System E-Mails senden kann (z. B. über einen Smarthost oder eine ähnliche Lösung).

Bitte führen Sie einige kleine Überprüfungen durch, bevor Sie fortfahren:

Versuchen Sie, eine E-Mail von einem Terminal auf Ihrem Server zu senden:

[[email protected] ~]echo -en "Betreff:Testmail\n\nDies ist ein Test\n" | sendmail [E-Mail-geschützt]

(Ersetzen Sie [email protected] durch eine E-Mail-Adresse, an die Ihr Server senden können sollte). Stellen Sie sicher, dass Sie eine E-Mail vom System erhalten haben!

Namensauflösung für mattermost.example.com überprüfen

Versuchen Sie von einem anderen Computer (nicht dem Server, den wir einzurichten versuchen), Mattermost.example.com zu pingen. Sie sollten ein positives Ergebnis erhalten:

C:\>ping mattermost.example.com 
Pinging mattermost.witron.com [192.168.2.100] mit 32 Byte Daten:
Antwort von 192.168.2.100:Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.2.100:Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.2.100:Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.2.100:Bytes=32 Zeit<1ms TTL=64

Ping-Statistiken für 192.168.2.100:
Pakete:Gesendet =4, Empfangen =4, Verloren =0 (0 % Verlust),
Ungefähre Roundtrip-Zeiten in Millisekunden:
/>Minimum =0ms, Maximum =0ms, Durchschnitt =0ms

Internetverbindung überprüfen

Wir werden nun das Paket wget installieren (das wir später benötigen).

[[email protected] ~] yum -y install wget 

und verwenden Sie es, um unsere öffentliche IP zu bestimmen. Damit wir unsere Internetverbindung prüfen können.

[[email protected] ~] wget http://ipinfo.io/ip -qO - 
46.101.122.124

Das Ergebnis sollte Ihre öffentliche IP-Adresse sein.

Überprüfen Sie den Firewall-Status und deaktivieren Sie ihn vorerst

Bitte prüfen Sie, ob Ihre CentOS7-Installation über eine Firewall verfügt aktiviert. Sie können dies überprüfen, indem Sie

eingeben
[[email protected] ~] systemctl status firewalld 

Wenn es so etwas wie

anzeigt

Aktiv:aktiv (läuft) seit ...

Bitte schalten Sie es aus und deaktivieren Sie es mit diesen 2 Befehlen.

[[email protected] ~] systemctl stop firewalld 
[[email protected] ~] systemctl disable firewalld

Am Ende dieses Tutorials finden Sie Anweisungen zum erneuten Aktivieren von firewalld und zum korrekten Einrichten für die Arbeit mit Mattermost.

Wenn Sie alle oben genannten Prüfungen bestehen oder wissen, dass Sie ein brauchbares System für dieses Tutorial haben, können Sie jetzt fortfahren.

PostgreSQL-Datenbankserver installieren

Wir werden PostgreSQL als Datenbank-Backend für Mattermost verwenden. Installieren Sie es mit dem folgenden Befehl:

[[email protected] ~] yum -y install postgresql-server postgresql-contrib 

Nach der Installation müssen wir die Datenbank initialisieren.

[[email protected] ~] postgresql-setup initdb 
Datenbank wird initialisiert ... OK

Starten Sie dann PostgreSQL und aktivieren Sie es für den automatischen Start.

[[email protected] ~]# systemctl start postgresql 
[[email protected] ~]# systemctl aktiviert postgresql
Symlink von /etc/systemd/system/multi-user.target.wants/postgresql.service zu /usr/lib/systemd/system/postgresql.service erstellt.

Bitte vergewissern Sie sich, dass PostgreSQL läuft, indem Sie.

ausführen
[[email protected] ~]# Systemctl-Status postgresql 

Es sollte etwas Ähnliches melden (stellen Sie sicher, dass Active:active (running) vorhanden ist irgendwo im Text).

? postgresql.service - PostgreSQL-Datenbankserver
Geladen:geladen (/usr/lib/systemd/system/postgresql.service; aktiviert; Herstellervoreinstellung:deaktiviert)
Aktiv:aktiv (läuft) seit Fr 04.03.2016 11:37:50 MEZ; Vor 44 Sekunden
Haupt-PID:17660 (postgres)
CGroup:/system.slice/postgresql.service
??17660 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
??17661 Postgres:Logger-Prozess
??17663 Postgres:Checkpointer-Prozess
??17664 Postgres:Writer-Prozess
??17665 Postgres:Wal Writer-Prozess
?? />??17666 Postgres:Autovacuum Launcher Process
??17667 Postgres:Stats Collector Process

Mär 04 11:37:48 Mattermost Systemd[1]:PostgreSQL-Datenbankserver wird gestartet...
März 04 11:37:50 Mattermost Systemd[1]:PostgreSQL-Datenbankserver gestartet.
März 04 11:37:59 Mattermost Systemd[1]:PostgreSQL-Datenbankserver gestartet.

Mattermost-Datenbank und Datenbankbenutzer erstellen

PostgreSQL hat automatisch einen Benutzer und eine Gruppe mit dem Namen postgres erstellt . Wir verwenden den Benutzer postgres um sich mit der Datenbank-Engine zu verbinden und eine Datenbank und einen Benutzer einzurichten, der darauf zugreifen kann.

Starten Sie eine Eingabeaufforderung als Benutzer postgres :

[[email protected] ~]# sudo -i -u postgres 

Ihre Eingabeaufforderung ändert sich nun zu:

-bash-4.2$

Verbinden wir uns jetzt mit dem Datenbankserver.

-bash-4.2$ psql 
psql (9.2.15)
Geben Sie "help" ein, um Hilfe zu erhalten.
postgres=#

Innerhalb des PostgreSQL-Prompts erstellen wir nun eine Datenbank mit dem Namen ‚mattermost‘.

postgres=# DATENBANK ERSTELLEN wichtig; 
DATENBANK ERSTELLEN

Jetzt erstellen wir einen Benutzer 'mmuser ' mit dem Passwort 'DBAss47slX 3'.

postgres=# ERSTELLE BENUTZER mmuser MIT PASSWORT 'DBAss47slX3 '; 
ROLLE ERSTELLEN

Gewähren Sie dem Benutzer Zugriff auf die Mattermost-Datenbank, indem Sie Folgendes eingeben:

postgres=# GEWÄHRE ALLE PRIVILEGIEN AUF DER DATENBANK, was am wichtigsten für mmuser ist; 
GRANT
postgres=#

Wir können dann die PostgreSQL-Eingabeaufforderung verlassen indem Sie Folgendes eingeben:

postgres=# \q 
-bash-4.2$

Und verlassen Sie dann die Shell, die wir als Benutzer 'postgres gestartet haben ' mit.

-bash-4.2$ beenden 
abmelden
[[email protected] ~]#

Zugriff auf die PostgreSQL-Datenbank von localhost über Benutzername/Passwort zulassen

Später möchte unsere wichtigste Instanz mit der PostgreSQL-Datenbank sprechen und sich mit Benutzername und Passwort authentifizieren. Um dies zu ermöglichen, müssen wir die PostgreSQL-Konfiguration geringfügig ändern. Öffnen Sie die Datei:

vi /var/lib/pgsql/data/pg_hba.conf

mit einem Editor wie vi oder nano und ändern Sie die Zeile:

host    all             all             127.0.0.1/32            ident

zu:

host    all             all             127.0.0.1/32            md5 

Speichern Sie die Datei und starten Sie Postgresql neu.

[[email protected] ~]# systemctl reset postgresql 

Wir sollten überprüfen, ob wir das richtig gemacht haben, indem wir uns mit unserem zuvor erstellten Benutzer und Passwort mit dem Datenbankserver verbinden (verwenden Sie Ihr Passwort, wenn Sie auf Ihrem Server ein anderes verwendet haben):

[[email protected] ~]# psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password 
Passwort für Benutzer mmuser:
psql (9.2.15)
Geben Sie "help" ein, um Hilfe zu erhalten.

mattermost=> \q
[[email protected] ~]#

Unser PostgreSQL-Server und unsere Datenbank sind jetzt bereit für Mattermost!

Mattermost herunterladen und extrahieren

Lassen Sie uns eine Kopie des Mattermost-Servers direkt aus ihrem Github-Repository herunterladen (zum Zeitpunkt der Erstellung dieses Tutorials war Version v2.0.0 die aktuelle Version) mit wget.

[[email protected] ~]# cd 
[[email protected] ~]# wget -q "https://github.com/mattermost/platform/releases/download/v2.0.0/mattermost.tar.gz" -O mattermost.tar .gz

Lassen Sie uns nun das Archiv extrahieren und die extrahierten Dateien an ihrem Zielort ablegen (in diesem Fall verwenden wir /opt/mattermost).

[[email protected] ~]# tar -xvzf mattermost.tar.gz 
[[email protected] ~]# mv mattermost /opt


Installieren von Mattermost

Erstellen Sie einen Benutzer, der den Mattermost-Daemon ausführt

Wir werden Mattermost später als Dämon ausführen. Dazu richten wir auf unserem System einen neuen Benutzer mit dem Namen 'mattermost ein '. Es wird später die wichtigste Instanz ausführen. Führen Sie den folgenden Befehl aus, um einen Systembenutzer und eine Gruppe „mattermost“ zu erstellen ':

[[email protected] ~]# useradd -r mattermost -U -s /sbin/nologin 

Erstellen Sie einen Datenspeicherordner für Mattermost

Mattermost möchte einige seiner Daten speichern, z. hochgeladene Dateien etc. in einem Ordner. Also müssen wir diesen Ordner erstellen. Es kann sich irgendwo auf der Festplatte befinden, muss aber für den Benutzer 'mattermost zugänglich sein '. Ich habe mich für '/opt/mattermost/data' entschieden. Erstellen Sie den Ordner mit dem folgenden Befehl:

[[email protected] ~]# mkdir -p /opt/mattermost/data 

Eigentümer des Mattermost-Verzeichnisses festlegen

Jetzt setzen wir die Gruppe und den Eigentümer des wichtigsten Verzeichnisses auf unseren zuvor erstellten Benutzer und unsere Gruppe:

[[email protected] ~]# chown -R mattermost:mattermost /opt/mattermost 
[[email protected] ~]# chmod -R g+w /opt/mattermost

Konfigurieren Sie die Datenbankverbindung für mattermost

Um Mattermost mitzuteilen, wie es sich mit unserer PostgreSQL-Datenbank verbinden soll, müssen wir seine Konfigurationsdatei bearbeiten:

/opt/mattermost/config/config.json 

Bitte finden Sie den Abschnitt 'SqlSettings ' und an unsere Bedürfnisse anpassen:

VOR

"SqlSettings":{
"DriverName":"mysql",
"DataSource":"mmuser:[email protected](dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8",
"DataSourceReplicas":[],
"MaxIdleConns":10,
"MaxOpenConns":10,
"Trace":false,
"AtRestEncryptKey":" 7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"
},

NACH

"SqlSettings":{
"DriverName":"postgres ",
"DataSource":"postgres://mmuser:[email protected]:5432/mattermost?sslmode=disable&connect_timeout=10 ",
"DataSourceReplicas":[],
"MaxIdleConns":10,
"MaxOpenConns":10,
"Trace":false,
"AtRestEncryptKey" :"7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"
},

Sie können den AtRestEncryptKey beibehalten so wie es ist!

Konfigurieren Sie die E-Mail-Konnektivität für mattermost

Auch hier müssen wir die Konfigurationsdatei bearbeiten

/opt/mattermost/config/config.json 

Suchen Sie den Abschnitt „E-Mail-Einstellungen“ und ändern Sie ihn gemäß unseren Anforderungen:

VOR

 "EmailSettings":{
"EnableSignUpWithEmail":true,
"EnableSignInWithEmail":true,
"EnableSignInWithUsername":false,
"SendEmailNotifications":false,
/> "RequireEmailVerification":false,
"FeedbackName":"",
"FeedbackEmail":"",
"SMTPUsername":"",
"SMTPPassword":" ",
"SMTPServer":"",
"SMTPPort":"",
"ConnectionSecurity":"",
"InviteSalt":"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",
"PasswordResetSalt":"vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",
"SendPushNotifications":false,
"PushNotificationServer":
},

NACH

 "EmailSettings":{
"EnableSignUpWithEmail":true,
"EnableSignInWithEmail":true,
"EnableSignInWithUsername":false,
"SendEmailNotifications":false,
/> "RequireEmailVerification":false,
"FeedbackName":"",
"FeedbackEmail":"",
"SMTPUsername":"",
"SMTPPassword":" ",
"SMTPServer":"127.0.0.1 ",
"SMTPPort":"25 ",
"ConnectionSecurity":"",
"InviteSalt":"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",
"PasswordResetSalt":"vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",
"SendPushNotifications":false,
"PushNotificationServer":""
},

Wir verwenden 127.0.0.1 und Port 25 weil wir unsere lokale Postfix-Installation verwenden, die bereits so konfiguriert ist, dass sie E-Mails nach außen senden kann. Wenn Ihr Setup hier abweicht, müssen Sie die richtigen Werte einstellen!

Konfiguriere Mattermost so, dass es nur auf der internen Schnittstelle (127.0.0.1) lauscht

Standardmäßig lauscht die Mattermost-Serverinstanz auf allen Schnittstellen auf Port 8065 (:8065). Da wir einen Nginx-Server vor Mattermost setzen wollen, ändern wir dieses Verhalten so, dass er nur auf localhost (127.0.0.1:8065) ​​lauscht.

Ändern Sie einfach die Zeile

        "ListenAddress":":8065",

zu

        "ListenAddress":"127.0.0.1 :8065",

in der Datei config.json.

Testen Sie den Mattermost-Server

Wir können jetzt testen, ob unser Mattermost-Server starten würde, indem wir ihn über die Befehlszeile ausführen. Bitte stellen Sie sicher, dass Sie dies als Benutzer 'mattermost' tun. Wenn Sie dies aus Versehen als 'root' gemacht haben, müssen Sie die Berechtigungen für den wichtigsten Ordner erneut korrigieren!

[[email protected] ~]# su - mattermost -s /bin/bash 

Letzte Anmeldung:Freitag, 4. März 12:47:52 MEZ 2016 auf pts/0
su:Warnung:Verzeichnis kann nicht nach /home/mattermost geändert werden:Keine solche Datei oder Verzeichnis
-bash-4.2$

Wechseln Sie nun in das wichtigste Installationsverzeichnis:

-bash-4.2$ cd /opt/mattermost/bin/ 

Und führen Sie Mattermost von der Befehlszeile aus:

-bash-4.2$ ./platform 

Die Ausgabe sollte etwa so aussehen:

[2016/03/04 13:00:10 CET] [INFO] Geladene Systemübersetzungen für 'en' von '/opt/mattermost/i18n/en.json'
[2016/03/04 13 :00:10 MEZ] [INFO] Aktuelle Version ist 2.0.0 (5950/Sa Feb 13 15:42:01 UTC 2016/c71c5cef632c7dc68072167c6fe091a60835fa02)
[04.03.2016 13:00:10 MEZ] [INFO ] Enterprise Enabled:false
[04.03.2016 13:00:10 MEZ] [INFO] Aktuelles Arbeitsverzeichnis ist /opt/mattermost/bin
[04.03.2016 13:00:10 MEZ] [INFO] Geladene Konfigurationsdatei aus /opt/mattermost/config/config.json
[04.03.2016 13:00:10 MEZ] [INFO] Server wird initialisiert...
[ 04.03.2016 13:00:10 MEZ] [INFO] SQL-Master-Datenbank anpingen
[04.03.2016 13:00:10 MEZ] [INFO] SQL-Replica-0-Datenbank anpingen
[ 04.03.2016 13:00:10 MEZ] [DEBG] Löschen aller ungenutzten Funktionen der Vorabversion
[04.03.2016 13:00:10 MEZ] [INFO] Das Datenbankschema wurde auf Version gesetzt 2.0.0
[04.03.2016 13:00:10 MEZ] [DEBG] Benutzer-API-Routen werden initialisiert
[04.03.2016 13:00:10 MEZ] [DEBG] Team-API wird initialisiert Strecken
[04.03.2016 13:00:10 MEZ] [DEBG] Kanal-API-Routen werden initialisiert
[04.03.2016 13:00:10 MEZ] [DEBG] Post-API-Routen werden initialisiert
[04.03.2016 13:00:10 MEZ] [DEBG] Web-Socket-API-Routen initialisieren
[04.03.2016 13:00:10 MEZ] [DEBG] Datei-API-Routen initialisieren
[ 04.03.2016 13:00:10 MEZ] [DEBG] Befehls-API-Routen initialisieren
[04.03.2016 13:00:10 MEZ] [DEBG] Admin-API-Routen initialisieren
[2016/ 04.03. 13:00:10 MEZ] [DEBG] OAuth-API-Routen initialisieren
[04.03.2016 13:00:10 MEZ] [DEBG] Webhook-API-Routen initialisieren
[03.2016/ 04 13:00:10 MEZ] [DEBG] Initialisierung von Präferenz-API-Routen
[04.03.2016 13:00:10 MEZ] [DEBG] Initialisierung von Lizenz-API-Routen
[04.03.2016 13 :00:10 CET] [DEBG] Parsen von Server-Templates unter /opt/mattermost/api/templates/
[04.03.2016 13:00:10 CET] [DEBG] Initialisieren von Webrouten
[ 04.03.2016 13:00:10 MEZ] [DEBG] Verwendung des statischen Verzeichnisses unter /opt/mattermost/web/static/
[04.03.2016 13:00:10 MEZ] [DEBG] Parsing-Vorlagen unter /opt/mattermost/web/templates/
[04.03.2016 13:00:10 MEZ] [INFO] Server wird gestartet...
[04.03.2016 13:00:10 CET] [INFO] Server hört auf 127.0.0.1:8065
[04.03.2016 13:00:10 CET] [INFO] RateLimiter ist aktiviert
[04.03.2016 13:00 :10 CET] [DEBG] Suche nach Sicherheitsupdate von Mattermost
[04.03.2016 13:00:10 CET] [EROR] Fehler beim Abrufen von Sicherheitsupdate-Informationen von Mattermost.

Stoppen Sie den Mattermost-Server mit Strg+C

und verlassen Sie dann die Shell, die wir als Benutzer 'mattermost' gestartet haben, mit:

-bash-4.2$ beenden 
abmelden
[[email protected] ~]#

Wenn Ihre Mattermost-Instanz nicht startet, lesen Sie die Ausgabe sorgfältig durch. Ich hatte selbst viele Probleme, weil ich ein einfaches Komma in config.json vergessen habe. Stellen Sie außerdem sicher, dass Sie keine Sonderzeichen in Ihrem dbuser-Passwort verwenden, insbesondere kein '@ ' Schild. Das hat mich am Anfang verrückt gemacht!

Wenn Sie den obigen Befehl versehentlich als 'root ausgeführt haben ' und das könnte auch funktionieren, müssen Sie die Berechtigungen für den wichtigsten Ordner neu festlegen. Verwenden Sie diesen Befehl, wenn Sie auf diesen Fehler gestoßen sind:

[[email protected] ~]# chown -R mattermost:mattermost /opt/mattermost 

Wenn alles geklappt hat, können wir jetzt fortfahren.

Richten Sie Mattermost als Daemon ein

Um Mattermost als Daemon einzurichten, erstellen Sie eine Datei

/etc/systemd/system/mattermost.service 

mit folgendem Inhalt:

[Unit]
Description=Mattermost
After=syslog.target network.target

[Service]
Type=simple
WorkingDirectory=/ opt/mattermost/bin
User=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid

[Installieren]
WantedBy=multi-user.target

Laden Sie dann die Daemon-Dateien neu mit:

[[email protected] ~]# systemctl daemon-reload 

Wir können jetzt starten/stoppen/aktivieren/deaktivieren diesen Service, wie wir es gewohnt sind.

Lassen Sie uns also Mattermost starten, seinen Status abrufen und ihn dann als Dienst aktivieren (Autostart).

Mattermost-Daemon starten

[[email protected] ~]# systemctl start mattermost.service 

Wichtigsten Status prüfen

[[email protected] ~]# systemctl status mattermost.service 
? mattermost.service - Mattermost
Geladen:geladen (/etc/systemd/system/mattermost.service; deaktiviert; Herstellervoreinstellung:deaktiviert)
Aktiv:aktiv (läuft) seit Fr 04.03.2016 14:03:40 MEZ; Vor 4s
Haupt-PID:18573 (Plattform)
CGroup:/system.slice/mattermost.service
??18573 /opt/mattermost/bin/platform
...
...

Stellen Sie sicher, dass es aktiv (läuft) ist !

Dämon für Autostart aktivieren

[[email protected] ~]# systemctl enable mattermost.service 
Symlink von /etc/systemd/system/multi-user.target.wants/mattermost.service zu /etc/systemd/system/mattermost.service erstellt.

Jetzt machen wir zur Sicherheit einen Test, ob Mattermost auf 127.0.0.1:8065 lauscht, indem wir den folgenden Befehl ausführen:

[[email protected] config]# curl -s "http://127.0.0.1:8065" | grep -b "2015 Mattermost" 

Wir sollten eine einzelne Zeile erhalten, die „2015 Mattermost“ enthält.

11343:       © 2015 Mattermost , Inc.

Wenn ja, können wir sicher sein, dass die Mattermost-Serverinstanz läuft und wir können fortfahren.


Beheben Sie SELinux-bezogene Berechtigungsprobleme

Auf CentOS7 ist SELinux standardmäßig aktiviert. Wir könnten es ganz ausschalten, aber es ist besser, es neu zu konfigurieren und unseren Mattermost-Server ausführen zu lassen.

Geben Sie einfach die folgenden 2 Befehle ein, um die SELinux-Berechtigungen zu reparieren:

[[email protected] config]# chcon -Rt httpd_sys_content_t /opt/mattermost/ 
[[email protected] config]# setsebool -P httpd_can_network_connect 1

Nginx-Server einrichten

Wir werden einen Nginx-Server vor unsere Mattermost-Serverinstanz stellen.

Die Hauptvorteile sind:

  • Portzuordnung :80 zu :8065
  • Standardanforderungsprotokolle
  • weitere Optionen bei späterer Umstellung auf SSL

Epel-Repository aktivieren

Nginx befindet sich nicht in den Standard-Repositories von CentOS. Also müssen wir zuerst das Epel-Repository aktivieren. Dies ist eine einfache Aufgabe, geben Sie einfach ein:

[[email protected] config]# yum -y install epel-release &&yum update 

nginx installieren

Nachdem wir das Epel-Release aktiviert haben, können wir nginx einfach mit dem folgenden Befehl installieren:

[[email protected] config]# yum -y install nginx 

Dies installiert Nginx und alle seine Abhängigkeiten.

nginx konfigurieren

Es gibt viele Möglichkeiten, Nginx zu konfigurieren. Dieses Tutorial zeigt nur, wie man ein sehr einfaches Setup für Nginx erstellt, das nur unseren Mattermost-Server auf Port 80 hostet.

Nginx-Standardkonfigurationsdatei ändern

Erstellen Sie eine Sicherungskopie der aktuellen nginx.conf durch Ausführen von:

[[email protected] config]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak 

Ersetzen Sie dann /etc/nginx/nginx.conf mit diesem Inhalt:

# Weitere Informationen zur Konfiguration finden Sie unter:
# * Offizielle englische Dokumentation:http://nginx.org/en/docs/
# * Offizielle russische Dokumentation:http://nginx. org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx. pid;

events {
worker_connections 1024;
}

http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/ access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;

include /etc/nginx/mime.types;
default_type application/octet-stream;

# Modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d laden.
# Siehe http://nginx.org/en/docs/ngx_core_module.html#include
# für weitere Informationen ormation.
include /etc/nginx/conf.d/*.conf;

server {
server_name mattermost.example.com;
location / {
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X- Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Optionen SAMEORIGIN;
proxy_pass http ://127.0.0.1 :8065;
}
}
}

Bitte stellen Sie sicher, dass Sie den korrekten Hostnamen verwenden, wie weiter oben in diesem Dokument angegeben.

Um sicherzustellen, dass wir keine Syntaxfehler in unseren Konfigurationsdateien haben, führen Sie den folgenden Befehl aus, um die Syntax zu überprüfen:

[[email protected] config]# nginx -t 
nginx:Die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist in Ordnung
nginx:Konfigurationsdatei /etc/nginx/nginx.conf Test erfolgreich

Nginx als Daemon starten und aktivieren

Nginx starten

[[email protected] config]# systemctl start nginx 

Status prüfen

[[email protected] config]# systemctl status nginx 

Stellen Sie sicher, dass es mindestens eine Zeile mit folgendem Inhalt ausgibt:

...
Aktiv:aktiv (läuft) ...
...

Als Daemon aktivieren

[[email protected] config]# systemctl enable nginx 
Symlink von /etc/systemd/system/multi-user.target.wants/nginx.service zu /usr/lib/systemd/system/nginx.service erstellt.

Wenn alles geklappt hat, sollte jetzt eine funktionierende Mattermost-Installation hinter Nginx laufen. Überprüfen Sie es, indem Sie die folgende URL in Ihrem Browser öffnen:

http://mattermost.example.com

Der Mattermost-Anmeldebildschirm sollte erscheinen!

Jetzt können Sie mit der Einrichtung Ihrer Mattermost-Installation fortfahren, indem Sie Ihre E-Mail-Adresse eingeben und ein Konto erstellen.

Firewalld

Zu Beginn dieses Tutorials haben wir firewalld deaktiviert. Wenn Sie es wieder aktivieren möchten, aber Port 80 offen halten möchten (den wir derzeit für Mattermost über Nginx verwenden), gehen Sie einfach wie folgt vor:

Firewalld starten und erneut aktivieren

[[email protected] config]# systemctl start firewalld 
[[email protected] config]# systemctl enable firewalld
Symlink von /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service zu /usr/lib/systemd/system/firewalld.service erstellt.
Symlink von /etc/systemd/system erstellt /basic.target.wants/firewalld.service nach /usr/lib/systemd/system/firewalld.service.

Port 80 in der Firewall öffnen

[[email protected] config]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
Erfolg
[[email protected] config]# firewall-cmd --reload
Erfolg

Jetzt sollte Ihre Mattermost-Installation erreichbar sein, sogar Firewalld läuft!

Zusammenfassung

Ich hoffe, Sie fanden dieses Tutorial nützlich und es hat funktioniert. In einer Produktionsumgebung sollten Sie Zertifikate für Ihre Mattermost-Website erstellen/verwenden und https über Nginx aktivieren. Dies kann leicht erreicht werden, indem dieses Howto leicht modifiziert wird.


Cent OS
  1. So installieren Sie Nginx unter CentOS 8

  2. Installieren Sie Nginx mit ngx_pagespeed unter CentOS 7

  3. So installieren und konfigurieren Sie Postgres 13 auf Centos 8

  4. So installieren Sie Varnish und phpMyAdmin auf einem CentOS 7 VPS mit Nginx, MariaDB und PHP-FPM

  5. Installieren Sie Magento auf CentOS 7 mit Nginx, PHP-FPM und MariaDB

So installieren Sie Jenkins Automation Server mit Nginx unter CentOS 7

Installation und Konfiguration von PhpMyAdmin mit Nginx unter CentOS 7

Installieren Sie Nginx unter CentOS 7 / RHEL 7

So installieren Sie Nginx unter CentOS

So installieren Sie OwnCloud 8 mit Nginx und PHP-FPM auf CentOS 6

So installieren Sie Nginx unter CentOS 6