So installierst du das Cachet-Statusseiten-System unter FreeBSD 12

Cachet ist ein wunderschönes und leistungsstarkes, in PHP geschriebenes Open-Source-Statusseitensystem, mit dem du deinen Kunden, Teams und Aktionären Ausfallzeiten und Systemfehler besser mitteilen kannst. Die Anwendung bietet viele Funktionen, von denen die wichtigsten sind: eine leistungsstarke JSON-API, Ereignisberichte, Metriken, Transkriptionsunterstützung für Ereignismeldungen, Abonnentenbenachrichtigungen per E-Mail, Zwei-Faktor-Authentifizierung. In diesem Lernprogramm werden wir das Cachet-Statusseitensystem mit PHP, Nginx, MariaDB und Composer auf dem FreeBSD 12-System installieren.

Voraussetzungen

Um Cachet auf deinem FreeBSD 12 System zu betreiben, benötigst du einige Dinge:

  • PHP Version 7.1 oder höher
  • HTTP-Server mit PHP-Unterstützung (z.B. Nginx, Apache, Caddy). In diesem Tutorial wird Nginx verwendet.
  • Composer
  • Eine unterstützte Datenbank: MySQL/MariaDB, PostgreSQL oder SQLite. In diesem Lehrgang wird MariaDB verwendet.
  • Git
  • Acme.sh

Voraussetzungen

  • Ein FreeBSD 12-Betriebssystem.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.

Erste Schritte

Überprüfe deine FreeBSD-Version:

uname -ro
# FreeBSD 12.0-RELEASE

Richte die Zeitzone ein:

tzsetup

Aktualisiere die Pakete deines Betriebssystems (Software). Dies ist ein wichtiger erster Schritt, denn er stellt sicher, dass du die neuesten Updates und Sicherheitsfixes für die Standardpakete deines Betriebssystems hast:

freebsd-update fetch install
pkg update && pkg upgrade -y

Installiere einige wichtige Pakete, die für die grundlegende Verwaltung des FreeBSD 12.0 Betriebssystems notwendig sind:

pkg install -y sudo vim unzip wget bash

Schritt 1 – Installiere PHP und die benötigten PHP-Erweiterungen

Installiere PHP sowie die notwendigen PHP-Erweiterungen:

sudo pkg install -y php72 php72-ctype php72-curl php72-dom php72-hash php72-iconv php72-gd php72-json php72-mbstring php72-openssl php72-session php72-simplexml php72-xml php72-zip php72-zlib php72-pdo php72-pdo_mysql php72-mysqli php72-pgsql php72-sqlite3 php72-filter php72-ftp php72-tokenizer php72-calendar php72-pecl-APCu php72-opcache php72-pecl-redis php72-phar php72-fileinfo

Überprüfe die PHP-Version:

php --version

 

# PHP 7.2.7 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies

Aktiviere und starte den PHP-FPM-Dienst:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Wir können mit dem nächsten Schritt fortfahren, nämlich mit der Beschaffung von kostenlosen SSL-Zertifikaten von Let’s Encrypt CA.

Schritt 2 – MariaDB installieren und eine Datenbank für Cachet erstellen

Cachetunterstützt MySQL, MariaDB,PostgreSQL und SQLiteDatenbanken. In diesem Tutorial werden wirMariaDB als Datenbankserver verwenden.

Installiere den MariaDB-Datenbankserver:

sudo pkg install -y mariadb102-client mariadb102-server

Überprüfe die MariaDB-Version:

mysql --version
# mysql Ver 15.1 Distrib 10.2.17-MariaDB, for FreeBSD11.2 (amd64) using readline 5.1

Aktiviere und starte den MariaDB-Dienst:

sudo sysrc mysql_enable="yes"
sudo service mysql-server start

Führe das mysql_secure installation Skript aus, um die MariaDB-Sicherheit zu verbessern und das Passwort für den MariaDB root Benutzer:

sudo mysql_secure_installation

Beantworte jede der Fragen:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_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

Verbinde dich mit der MariaDB-Shell als Root-Benutzer:

sudo mysql -u root -p
# Enter password

Erstelle eine leere MariaDB-Datenbank und einen Benutzer für Cachet und merke dir die Anmeldedaten:

CREATE DATABASE dbname;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Ersetze dbname, username und password durch deine Namen.

Beende MariaDB:

exit

Schritt 3 – Installiere den acme.sh Client und erhalte das Let’s Encrypt Zertifikat(optional)

Es ist nicht notwendig, deine Website mit HTTPS zu sichern, aber es ist eine gute Praxis, um den Datenverkehr auf deiner Website zu schützen. Um ein TLS-Zertifikat von Let’s Encrypt zu erhalten, werden wir den acme.sh-Client verwenden. Acme.sh ist eine reine UNIX-Shell-Software, mit der du TLS-Zertifikate von Let’s Encrypt beziehen kannst, ohne dass Abhängigkeiten bestehen.

Lade acme.sh herunter und installiere es:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail your_email@example.com
source ~/.bashrc
cd ~

Prüfe die Version von acme.sh:

acme.sh --version
# v2.8.0

Beziehe RSA- und ECC/ECDSA-Zertifikate für deinen Domain-/Hostnamen:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Wenn du gefälschte Zertifikate zum Testen möchtest, kannst du den obigen Befehlen das --stagingFlag zu den oben genannten Befehlen hinzufügen.

Nachdem du die oben genannten Befehle ausgeführt hast, befinden sich deine Zertifikate und Schlüssel in:

  • Für RSA: /home/username/example.com Verzeichnis.
  • Für ECC/ECDSA: /home/username/example.com_ecc Verzeichnis.

Um deine ausgestellten Zertifikate aufzulisten, kannst du Folgendes ausführen:

acme.sh --list

Erstelle ein Verzeichnis zum Speichern deiner Zertifikate. Wir werden das Verzeichnis /etc/letsencrypt verwenden.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installiere/Kopiere die Zertifikate in das /etc/letsencrypt Verzeichnis.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Alle Zertifikate werden automatisch alle 60 Tage erneuert.

Nachdem du die Zertifikate erhalten hast, verlasse den Root-Benutzer und kehre zum normalen sudo-Benutzer zurück:

exit

Schritt 4 – Installiere NGINX und konfiguriere NGINX für Matomo

Cachet kann mit vielen Webservern zusammenarbeiten. In diesem Lernprogramm haben wir uns fürNGINX.Wenn du Apache Webserver gegenüber NGINX bevorzugst, besuche https://docs.cachethq.io/docs/installing-cachet#section-running-cachet-on-apacheum mehr zu erfahren.

Lade die neueste Version von Nginx aus dem FreeBSD Repository herunter und installiere sie:

sudo pkg install -y nginx-devel

Überprüfe die Nginx-Version:

nginx -v
# nginx version: nginx/1.17.2

Aktiviere und starte Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Konfiguriere Nginx für Cachet durch Ausführen von:

sudo vim /usr/local/etc/nginx/cachet.conf

Und fülle die Datei mit der folgenden Konfiguration:

upstream php {
  server 127.0.0.1:9000;
}

server {
  listen [::]:443 ssl;
  listen 443 ssl;
  listen [::]:80;
  listen 80;

  server_name example.com;

  root /usr/local/www/cachet/public;
  index index.php;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/sexample.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  location / {
    try_files $uri /index.php$is_args$args;
  }

  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
    fastcgi_keep_conn on;
  }
}

Führe sudo vim /usr/local/etc/nginx/nginx.conf aus und füge die folgende Zeile zum http {} Block hinzu, um die Cachet-Konfiguration einzubinden.

include cachet.conf;

Überprüfe die Nginx-Konfiguration auf Syntaxfehler:

sudo nginx -t

Lade den Nginx-Dienst neu:

sudo service nginx reload

Schritt 5 – Composer installieren

Installiere Composer, den PHP-Abhängigkeitsmanager, global:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Überprüfe die Composer-Version:

composer --version
# Composer version 1.9.0 2019-02-11 10:52:10

Schritt 6 – Cachet installieren

Erstelle ein Dokumentenstammverzeichnis, in dem Cachet liegen soll:

sudo mkdir -p /usr/local/www/cachet

Ändere die Eigentümerschaft des Verzeichnisses /usr/local/www/cachet in your_user:

sudo chown -R your_user:your_user /usr/local/www/cachet

HINWEIS: Ersetze jour_user durch deinen ursprünglich erstellten Nicht-Root-Benutzernamen.

Navigiere in das Stammverzeichnis des Dokuments:

cd /usr/local/www/cachet

Lade den Quellcode von Cachet mit Git herunter:

git clone -b 2.4 --single-branch https://github.com/cachethq/Cachet.git .

Kopiere .env.example in die .env Datei und konfiguriere die Datenbank und APP_URL Einstellungen in .env Datei:

cp .env.example .env
vim .env

Installiere die Cachet-Abhängigkeiten mit Composer:

composer install --no-dev -o

Richte den Anwendungsschlüssel ein, indem du ihn ausführst:

php artisan key:generate

Installiere Cachet:

php artisan cachet:install

Gib die entsprechenden Eigentumsrechte an:

sudo chown -R www:www /usr/local/www/cachet

Öffne deine Website in einem Webbrowser und folge den Anweisungen auf dem Bildschirm, um die Installation von Cachet abzuschließen.

Schritt 7 – Vervollständige die Cachet-Einrichtung

Wähle die Cache- und Session-Treiber aus und konfiguriere die Mail-Optionen:


Konfiguriere die allgemeinen Website-Einstellungen wie Website-Name, Website-Domäne, Zeitzone und Sprache:


Erstelle ein administratives Benutzerkonto:


Danach solltest du eine Meldung erhalten, dass Cachet erfolgreich konfiguriert wurde. Du kannst das Cachet Dashboard öffnen, indem du auf die Schaltfläche „Zum Dashboard“ klickst:


Die Installation und Einrichtung von Cachet wurde abgeschlossen.

Um auf das Cachet Dashboard zuzugreifen, hänge /dashboard an die URL deiner Website an.

Links

Das könnte dich auch interessieren …