Grav è una piattaforma Web basata su file veloce, semplice e flessibile. Segue principi simili ad altre piattaforme CMS flat-file, ma ha una filosofia di progettazione diversa rispetto alla maggior parte. Grav viene fornito con un potente sistema di gestione dei pacchetti per consentire una semplice installazione e aggiornamento di plug-in e temi, nonché un semplice aggiornamento di Grav stesso.
L'architettura alla base di Grav è progettata per utilizzare tecnologie consolidate e migliori della categoria per garantire che Grav sia semplice da usare e facile da estendere. Alcune di queste tecnologie chiave includono:
- Twig Templating:per un potente controllo dell'interfaccia utente
- Riduzione:per una facile creazione di contenuti
- YAML:per una configurazione semplice
- Parsedown:per un rapido supporto per Markdown e Markdown Extra
- Dottrine Cache:livello per le prestazioni
- Contenitore per iniezione di dipendenza dai brufoli:per estensibilità e manutenibilità
- Symfony Event Dispatcher:per la gestione degli eventi dei plugin
- Console Symfony:per interfaccia CLI
- Libreria di immagini Gregwar:per la manipolazione dinamica delle immagini
In questa guida, ti guideremo passo dopo passo attraverso il processo di installazione di Grav CMS sul sistema operativo Debian 9 utilizzando Nginx come server web e acme.sh e Let's Encrypt per HTTPS.
Requisiti
- Server Web (Apache, Nginx, LiteSpeed, Lightly o IIS). In questa guida utilizzeremo NGINX.
- PHP 7.1.3 o versioni successive con le seguenti estensioni PHP: curl, ctype, dom, gd, json, mbstring, openssl, session, simplexml, xml, zip, apcu (opzionale), opcache (opzionale).
Prerequisiti
- Un sistema operativo che esegue Debian 9.
- Un utente non root con privilegi sudo.
Passaggi iniziali
Controlla la tua versione di Debian:
lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)
Imposta il fuso orario:
sudo dpkg-reconfigure tzdata
Aggiorna i pacchetti del tuo sistema operativo (software). Questo è un primo passo importante perché ti assicura di avere gli ultimi aggiornamenti e correzioni di sicurezza per i pacchetti software predefiniti del tuo sistema operativo:
sudo apt update && sudo apt upgrade -y
Installa alcuni pacchetti essenziali che sono necessari per l'amministrazione di base del sistema operativo Debian:
sudo apt install -y curl wget vim git unzip socat apt-transport-https
Passaggio 1:installazione di estensioni PHP e PHP
Grav CMS richiede PHP versione 7.1 o successiva. Debian ha la versione 7 di PHP nel repository predefinito, quindi dovrai utilizzare repository di terze parti per installare una versione più recente.
sudo apt install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
Installa PHP 7.2 e le estensioni PHP necessarie:
sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-xml php7.2-zip php7.2-opcache php-apcu
Controlla la versione PHP:
php --version
# PHP 7.2.18-1+0~20190503103213.21+stretch~1.gbp101320 (cli) (built: May 3 2019 10:32:13) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.18-1+0~20190503103213.21+stretch~1.gbp101320, Copyright (c) 1999-2018, by Zend Technologies
Il servizio PHP-FPM viene avviato e abilitato automaticamente al riavvio sul sistema Debian 9, quindi non è necessario avviarlo e abilitarlo manualmente. Possiamo passare al passaggio successivo, che è la configurazione SSL.
Passaggio 2:installa il client Acme.sh e ottieni il certificato Let's Encrypt (opzionale)
Proteggere il tuo sito web con HTTPS non è necessario, ma è una buona pratica per proteggere il traffico del tuo sito. Per ottenere il certificato TLS da Let's Encrypt utilizzeremo il client Acme.sh. Acme.sh è un puro software shell Unix per ottenere certificati TLS 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 example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256
Dopo aver eseguito i comandi precedenti, i tuoi certificati e chiavi sarà in:
- Per RSA :
/etc/letsencrypt/example.com
directory. - Per ECC/ECDSA :
/etc/letsencrypt/example.com_ecc
directory.
Passaggio 3:installa e configura NGINX
Installa il server web NGINX:
sudo apt install -y nginx
Controlla la versione di NGINX:
nginx -v
# nginx version: nginx/1.10.3
Esegui sudo vim /etc/nginx/sites-available/grav.conf
e popolare il file con la seguente configurazione:
server {
listen 80;
server_name example.com;
root /var/www/grav;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
Attiva il nuovo grav.conf
configurazione collegando il file a sites-enabled
directory.
sudo ln -s /etc/nginx/sites-available/grav.conf /etc/nginx/sites-enabled
Controlla la configurazione di NGINX per errori di sintassi:
sudo nginx -t
Ricarica servizio NGINX:
sudo systemctl reload nginx.service
Passaggio 4: Installa Grav CMS
Crea una directory principale del documento in cui Grav dovrebbe risiedere:
sudo mkdir -p /var/www/grav
Modifica la proprietà del /var/www/grav
directory in {tuo_utente}. Sostituisci {your_user} nel comando seguente con il nome utente con cui sei attualmente connesso a Debian.:
sudo chown -R {your_user}:{your_user} /var/www/grav
Vai alla directory principale del documento:
cd /var/www/grav
Scarica l'ultima versione dalla pagina ufficiale ed estrai il file zip:
wget https://getgrav.org/download/core/grav-admin/1.6.9
unzip 1.6.9
mv grav-admin/* . && mv grav-admin/.* .
rm -rf grav-admin 1.6.9
NOTA: Aggiorna l'URL di download se è disponibile una versione più recente.
Cambia la proprietà del /var/www/grav
directory in www-data:
sudo chown -R www-data:www-data /var/www/grav
Passaggio 5:completa la configurazione di Grav
Apri il tuo sito in un browser web e dovresti vedere una pagina che ti chiede di creare un account amministratore Grav. Creane uno e procedi cliccando sul pulsante "Crea utente":
Ecco fatto. L'installazione di Grav è completa.
Link
- https://getgrav.org/
- https://github.com/getgrav/grav