Cachet è un bellissimo e potente sistema di pagine di stato open source scritto in PHP che ti consente di comunicare meglio tempi di inattività e interruzioni del sistema per i tuoi clienti, team e azionisti. L'applicazione offre molte funzionalità, le più importanti tra queste sono:una potente API JSON, report sugli incidenti, metriche, supporto per il markdown per i messaggi degli incidenti, notifiche agli abbonati via e-mail, autenticazione a due fattori. In questo tutorial, installeremo il sistema della pagina di stato della cache utilizzando PHP, Nginx, MariaDB e Composer.
Requisiti
- Versione PHP 5.5.9 o successiva
- Server HTTP con supporto PHP (es:Nginx, Apache, Caddy)
- Compositore
- Un database supportato:MySQL, PostgreSQL o SQLite
Prerequisiti
- Un server che esegue Debian 9.
Un utente non root con privilegi sudo.
Passaggi iniziali
Controlla la versione di Debian:
lsb_release -ds
# Debian GNU/Linux 9.5 (stretch)
Imposta il fuso orario:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Aggiorna i pacchetti del tuo sistema operativo:
sudo apt update && sudo apt upgrade -y
Installa i pacchetti vim, git e socat:
sudo apt install -y vim git socat sudo
Passaggio 1 - Installa PHP
Installa PHP e le estensioni PHP richieste:
sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-common php7.0-xml php7.0-gd php7.0-zip php7.0-mbstring php7.0-mysql php7.0-pgsql php7.0-sqlite3 php7.0-mcrypt php-apcu
Controlla la versione PHP:
php --version
# PHP 7.0.30-0+deb9u1 (cli) (built: Jun 14 2018 13:50:25) ( NTS )
Passaggio 2:installa MariaDB e crea un database per Cachet
Cachet supporta database MySQL/MariaDB, PostgreSQL e SQLite3. In questo tutorial, utilizzeremo MariaDB come server di database.
Installa il server del database MariaDB:
sudo apt install -y mariadb-server
Controlla la versione di MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Esegui mysql_secure installation
script per migliorare la sicurezza di MariaDB e impostare la password per MySQL root
utente:
sudo mysql_secure_installation
Rispondi a ciascuna delle domande:
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
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
Connettiti alla shell MySQL come utente root:
mysql -u root -p
# Enter password
Crea un database e un utente MariaDB vuoti per Cachet e ricorda le credenziali:
MariaDB [(none)]> CREATE DATABASE dbname;
MariaDB [(none)]> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
Esci da MariaDB:
MariaDB [(none)]> exit
Sostituisci dbname, username e password con i tuoi nomi.
Passaggio 3:installa il client Acme.sh e ottieni il certificato Let's Encrypt (opzionale)
Proteggere la tua pagina di stato con HTTPS non è necessario, ma è una buona pratica per proteggere il traffico del tuo sito. Per ottenere il certificato SSL da Let's Encrypt utilizzeremo il client Acme.sh. Acme.sh è un puro software shell unix per ottenere certificati SSL da Let's Encrypt con zero dipendenze.
Scarica e installa Acme.sh:
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Controlla la versione di Acme.sh:
/etc/letsencrypt/acme.sh --version
# v2.8.0
Ottieni RSA e ECC/ECDSA certificati per il tuo dominio/nome host:
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d status.example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d status.example.com --ocsp-must-staple --keylength ec-256
Dopo aver eseguito i comandi precedenti, i tuoi certificati e chiavi sarà in:
- Per RSA :
/etc/letsencrypt/status.example.com
directory. - Per ECC/ECDSA :
/etc/letsencrypt/status.example.com_ecc
directory.
Passaggio 4:installa e configura Nginx
Cachet può funzionare bene con molti server web. In questo tutorial, abbiamo selezionato Nginx.
Installa Nginx:
sudo apt install -y nginx
Controlla la versione di Nginx:
sudo nginx -v
# nginx version: nginx/1.10.3
Configura Nginx per Cachet eseguendo:
sudo vim /etc/nginx/sites-available/cachet.conf
E popolare il file con la seguente configurazione:
server {
listen 80;
listen [::]:80;
server_name status.example.com;
root /var/www/cachet/public;
index index.php;
ssl_certificate /etc/letsencrypt/status.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com/status.example.com.key;
ssl_certificate /etc/letsencrypt/status.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com_ecc/status.example.com.key;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_keep_conn on;
}
}
Attiva il nuovo cachet.conf
configurazione collegando il file a sites-enabled
directory:
sudo ln -s /etc/nginx/sites-available/cachet.conf /etc/nginx/sites-enabled/
Prova la configurazione di NGINX:
sudo nginx -t
Ricarica Nginx:
sudo systemctl reload nginx.service
Passaggio 5 - Installa Composer
Installa Composer, il gestore delle dipendenze PHP a livello globale:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { 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
Controlla la versione del compositore:
composer --version
# Composer version 1.7.2 2018-08-16 16:57:12
Passaggio 6:installa Cachet
Crea una directory radice del documento in cui dovrebbe risiedere Cachet:
sudo mkdir -p /var/www/cachet
Vai alla directory principale del documento:
cd /var/www/cachet
Scarica il codice sorgente di Cachet con Git e verifica l'ultima versione con tag:
git clone https://github.com/cachethq/Cachet.git .
git tag -l
git checkout v2.3.15
Copia .env.example
a .env
archiviare e configurare il database e APP_URL
impostazioni in .env
file:
cp .env.example .env
vim .env
Installa le dipendenze Cachet con Composer:
composer install --no-dev -o
Configura la chiave dell'applicazione eseguendo:
php artisan key:generate
Installa cache:
php artisan app:install
Modifica la proprietà del /var/www/cachet
directory in www-data:
sudo chown -R www-data:www-data /var/www/cachet
Apri il tuo sito in un browser web e segui le istruzioni sullo schermo per completare l'installazione di Cachet.
Passaggio 7:completa la configurazione della cache
Seleziona cache e driver di sessione e configura le opzioni di posta:
Configura le impostazioni generali del sito come il nome del sito, il dominio del sito, il fuso orario e la lingua:
Crea un account utente amministrativo:
Successivamente, dovresti ricevere un messaggio che Cachet è stato configurato correttamente. Puoi aprire la dashboard di Cachet premendo il pulsante "Vai alla dashboard":
L'installazione e la configurazione della cache sono state completate.
Per accedere alla dashboard di Cachet, aggiungi /dashboard
all'URL del tuo sito web.
Link
- https://cachethq.io/