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.