Grav CMS met Nginx op Debian 9 te installeren

Grav is eenSnel,Eenvoudig enFlexibel, file-gebaseerd Web-platform. Het volgt gelijkaardige principes als andere flat-file CMS platforms, maar heeft een andere ontwerpfilosofie dan de meeste andere. Grav wordt geleverd met een krachtigPakket Beheer Systeem om eenvoudige installatie en opwaardering van plugins en thema’s mogelijk te maken, en ook eenvoudige bijwerking van Grav zelf.

De onderliggende architectuur van Grav is ontworpen om gevestigde en best-in-class technologieën te gebruiken om te verzekeren dat Grav eenvoudig te gebruiken en gemakkelijk uit te breiden is. Enkele van deze sleuteltechnologieën zijn:

  • Twig Templating: voor krachtige controle over de gebruikersinterface
  • Markdown: voor het eenvoudig maken van inhoud
  • YAML: voor eenvoudige configuratie
  • Parsedown: voor snelle Markdown en Markdown Extra ondersteuning
  • Doctrine Cache: laag voor prestatie
  • Pimple Dependency Injection Container: voor uitbreidbaarheid en onderhoudbaarheid
  • Symfony Event Dispatcher: voor plugin event afhandeling
  • Symfony Console: voor CLI interface
  • Gregwar Image Library: voor dynamische beeldmanipulatie

In deze gids leiden we je stap-voor-stap door het Grav CMS installatieproces op het Debian 9 besturingssysteem met Nginx als webserver, en acme.sh en Let’s Encrypt voor HTTPS.

Vereisten

  • Webserver (Apache, Nginx, LiteSpeed, Lightly of IIS). In deze gids zullen we NGINX gebruiken.
  • PHP 7.1.3 of hoger met de volgende PHP extensies: curl, ctype, dom, gd, json, mbstring, openssl, session, simplexml, xml, zip, apcu(optioneel), opcache(optioneel).

Vereisten

  • Een besturingssysteem met Debian 9.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Debian versie:

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

Stel de tijdzone in:

sudo dpkg-reconfigure tzdata

Werk je besturingssysteem pakketten (software) bij. Dit is een belangrijke eerste stap omdat je er zeker van bent dat je de laatste updates en beveiligingsfixes voor de standaard softwarepakketten van je besturingssysteem hebt:

sudo apt update && sudo apt upgrade -y

Installeer enkele essentiële pakketten die nodig zijn voor het basisbeheer van het Debian besturingssysteem:

sudo apt install -y curl wget vim git unzip socat apt-transport-https

Stap 1 – Installeer PHP en PHP uitbreidingen

Grav CMS vereist PHP versie 7.1of hoger. Debian heeft PHP versie 7 in de standaard repository, je zult dus een repo van derden moeten gebruiken om een nieuwere versie te installeren.

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

Installeer PHP 7.2, en ook de nodige PHP uitbreidingen:

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

Controleer de PHP versie:

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

De PHP-FPM dienst wordt automatisch gestart en ingeschakeld bij het herstarten op een Debian 9 systeem, dus het is niet nodig hem handmatig te starten en in te schakelen. We kunnen overgaan tot de volgende stap, die SSL instellen is.

Stap 2 – Installeer Acme.sh client en verkrijg het Let’s Encrypt certificaat (optioneel)

Je website beveiligen met HTTPS is niet noodzakelijk, maar het is een goed gebruik om je site verkeer te beveiligen. Om een TLS certificaat van Let’s Encrypt te verkrijgen gebruiken we het Acme.sh programma. Acme.sh is een zuivere Unix shell software voor het verkrijgen van TLS certificaten van Let’s Encrypt zonder afhankelijkheden.

Download en installeer 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 ~

Controleer de versie van Acme.sh:

/etc/letsencrypt/acme.sh --version
# v2.8.0

Verkrijg RSA en ECC/ECDSA certificaten voor je domein/hostnaam:

# 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

Na het uitvoeren van de bovenstaande commando’s zijn je certificaten en sleutels zich in:

  • Voor RSA: /etc/letsencrypt/example.com map.
  • Voor ECC/ECDSA: /etc/letsencrypt/example.com_ecc map.

Stap 3 – Installeer en configureer NGINX

Installeer de NGINX webserver:

sudo apt install -y nginx

Controleer de NGINX versie:

nginx -v
# nginx version: nginx/1.10.3

Voer uit sudo vim /etc/nginx/sites-available/grav.conf en vul het bestand met de volgende configuratie:

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;
  }

}

Activeer de nieuwegrav.conf configuratie door het bestand te koppelen aan de map sites-enabled.

sudo ln -s /etc/nginx/sites-available/grav.conf /etc/nginx/sites-enabled

ControleerNGINX configuratie op syntaxisfouten:

sudo nginx -t

HerlaadNGINX dienst opnieuw:

sudo systemctl reload nginx.service

Stap 4 - Installeer Grav CMS

Maak een document root directory waar Grav in moet komen te staan:

sudo mkdir -p /var/www/grav

Verander het eigendom van de /var/www/grav directory in{jouw_gebruiker}. Vervang {jouw_gebruiker} in het onderstaande commando door de gebruikersnaam waarmee je nu in Debian bent ingelogd.:

sudo chown -R {your_user}:{your_user} /var/www/grav

Navigeer naar de hoofdmap van het document:

cd /var/www/grav

Download de nieuwste versie van de officiële pagina en pak het zip bestand uit:

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

OPMERKING: Werk de download URL bij als er een nieuwere versie is.

Verander het eigendom van de /var/www/grav directory in www-data:

sudo chown -R www-data:www-data /var/www/grav

Stap 5 - Voltooi de Grav installatie

Open je site in een webbrowser en je zou een pagina moeten zien die je vraagt een Grav admin account aan te maken. Maak er een aan en ga verder door op de knop "Create User" te klikken:

Dat is het. Je Grav installatie is compleet.

Links