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 --staging
Flag 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.